mirror of
https://github.com/discourse/discourse.git
synced 2025-09-06 09:10:25 +08:00
Merge pull request #5635 from techAPJ/invite-muted
FIX: do not allow invite notifications from muted user/topic
This commit is contained in:
commit
334ed74346
2 changed files with 44 additions and 0 deletions
|
@ -791,6 +791,8 @@ SQL
|
|||
raise UserExists.new(I18n.t("topic_invite.user_exists"))
|
||||
end
|
||||
|
||||
return true if target_user && invite_existing_muted?(target_user, invited_by)
|
||||
|
||||
if target_user && private_message? && topic_allowed_users.create!(user_id: target_user.id)
|
||||
add_small_action(invited_by, "invited_user", target_user.username)
|
||||
|
||||
|
@ -835,6 +837,26 @@ SQL
|
|||
Invite.invite_by_email(email, invited_by, self, group_ids, custom_message)
|
||||
end
|
||||
|
||||
def invite_existing_muted?(target_user, invited_by)
|
||||
if invited_by.id &&
|
||||
MutedUser.where(user_id: target_user.id, muted_user_id: invited_by.id)
|
||||
.joins(:muted_user)
|
||||
.where('NOT admin AND NOT moderator')
|
||||
.exists?
|
||||
return true
|
||||
end
|
||||
|
||||
if TopicUser.where(
|
||||
topic: self,
|
||||
user: target_user,
|
||||
notification_level: TopicUser.notification_levels[:muted]
|
||||
).exists?
|
||||
return true
|
||||
end
|
||||
|
||||
false
|
||||
end
|
||||
|
||||
def email_already_exists_for?(invite)
|
||||
invite.email_already_exists && private_message?
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue