2
0
Fork 0
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:
Arpit Jalan 2018-03-02 18:10:17 +04:00 committed by GitHub
commit 334ed74346
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 44 additions and 0 deletions

View file

@ -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