mirror of
https://github.com/jumpserver/jumpserver.git
synced 2026-07-02 15:08:22 +00:00
feat: support via site-msg websocket send popup msg
This commit is contained in:
@@ -14,6 +14,14 @@ class SiteMessage(JMSBaseModel):
|
||||
read_at = models.DateTimeField(default=None, null=True)
|
||||
comment = ''
|
||||
|
||||
def as_data(self):
|
||||
return {
|
||||
'id': str(self.id),
|
||||
'content': self.content.as_data() if self.content else {},
|
||||
'has_read': self.has_read,
|
||||
'date_created': str(self.date_created)
|
||||
}
|
||||
|
||||
|
||||
class MessageContent(JMSBaseModel):
|
||||
DisplayMode = SiteMessageDisplayMode
|
||||
|
||||
@@ -68,8 +68,7 @@ class SiteMessageUtil:
|
||||
def get_user_display_msgs(cls, user_id):
|
||||
msgs = SiteMessage.objects.filter(user_id=user_id, has_read=False).exclude(
|
||||
content__display_mode=SiteMessageModel.DisplayMode.default
|
||||
).values_list('content', flat=True).distinct()
|
||||
msgs = SiteMessageModel.objects.filter(id__in=msgs)
|
||||
).prefetch_related('content')
|
||||
return msgs
|
||||
|
||||
@classmethod
|
||||
|
||||
@@ -6,7 +6,7 @@ from common.db.utils import safe_db_connection
|
||||
from common.utils import get_logger
|
||||
from .signal_handlers import new_site_msg_chan
|
||||
from .site_msg import SiteMessageUtil
|
||||
from .models.site_msg import MessageContent
|
||||
from .models.site_msg import SiteMessage
|
||||
|
||||
logger = get_logger(__name__)
|
||||
|
||||
@@ -48,8 +48,10 @@ class SiteMsgWebsocket(JsonWebsocketConsumer):
|
||||
def send_site_msg_for_display(self, user_id):
|
||||
msgs = SiteMessageUtil.get_user_display_msgs(user_id)
|
||||
for msg in msgs:
|
||||
msg: MessageContent
|
||||
logger.debug('Send need display site msg to user: {} {} {}'.format(user_id, msg.id, msg.display_mode))
|
||||
msg: SiteMessage
|
||||
logger.debug('Send need display site msg to user: {} {} {}'.format(
|
||||
user_id, msg.id, msg.content.display_mode
|
||||
))
|
||||
msg_data = msg.as_data()
|
||||
self.send_json({'type': 'display', 'site_msg': msg_data})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user