diff --git a/files/routes/chat.py b/files/routes/chat.py index 8f9b7408d3..fddb182674 100644 --- a/files/routes/chat.py +++ b/files/routes/chat.py @@ -353,15 +353,14 @@ def messagereply(v): execute_under_siege(v, c, c.body_html, 'message') if user_id and user_id not in {v.id, MODMAIL_ID} | BOT_IDs: - notif = g.db.query(Notification).filter_by(comment_id=c.id, user_id=user_id).one_or_none() - if not notif: - notif = Notification(comment_id=c.id, user_id=user_id) - g.db.add(notif) + if User.can_see(user, v): + notif = g.db.query(Notification).filter_by(comment_id=c.id, user_id=user_id).one_or_none() + if not notif: + notif = Notification(comment_id=c.id, user_id=user_id) + g.db.add(notif) title = f'New message from @{c.author_name}' - url = f'{SITE_FULL}/notifications/messages' - push_notif({user_id}, title, body, url) top_comment = c.top_comment diff --git a/files/routes/comments.py b/files/routes/comments.py index c4999b12c6..d0a5b71fa6 100644 --- a/files/routes/comments.py +++ b/files/routes/comments.py @@ -373,6 +373,9 @@ def comment(v): if parent_user.id != v.id and notify_op: notify_users.add(parent_user.id) + if v.shadowbanned: + notify_users = [x[0] for x in g.db.query(User.id).filter(User.id.in_(notify_users), User.admin_level >= PERMS['USER_SHADOWBAN']).all()] + for x in notify_users-BOT_IDs: n = Notification(comment_id=c.id, user_id=x) g.db.add(n) @@ -723,6 +726,9 @@ def edit_comment(cid, v): if notify_users == 'everyone': alert_everyone(c.id) else: + if v.shadowbanned: + notify_users = [x[0] for x in g.db.query(User.id).filter(User.id.in_(notify_users), User.admin_level >= PERMS['USER_SHADOWBAN']).all()] + for x in notify_users-BOT_IDs: notif = g.db.query(Notification).filter_by(comment_id=c.id, user_id=x).one_or_none() if not notif: diff --git a/files/routes/users.py b/files/routes/users.py index f5b85b815e..c59d04223e 100644 --- a/files/routes/users.py +++ b/files/routes/users.py @@ -665,7 +665,7 @@ def message2(v, username=None, id=None): execute_under_siege(v, c, c.body_html, 'message') c.top_comment_id = c.id - if user.id not in BOT_IDs: + if user.id not in BOT_IDs and User.can_see(user, v): g.db.flush() notif = g.db.query(Notification).filter_by(comment_id=c.id, user_id=user.id).one_or_none() if not notif: