FEATURE: Mention @here to notify users in topic (#14900)

Use @here to mention all users that were allowed to topic directly or
through group, who liked topics or read the topic. Only first 10 users
will be notified.
This commit is contained in:
Bianca Nenciu
2021-11-23 22:25:54 +02:00
committed by GitHub
parent 0ededb1454
commit 73760c77d9
13 changed files with 197 additions and 7 deletions

View File

@@ -541,6 +541,15 @@ class Guardian
UserAuthToken.hash_token(token) if token
end
def can_mention_here?
return false if SiteSetting.here_mention.blank?
return false if SiteSetting.max_here_mentioned < 1
return false if !authenticated?
return false if User.where(username_lower: SiteSetting.here_mention).exists?
@user.has_trust_level_or_staff?(SiteSetting.min_trust_level_for_here_mention)
end
private
def is_my_own?(obj)

View File

@@ -0,0 +1,15 @@
# frozen_string_literal: true
class NotUsernameValidator
def initialize(opts = {})
@opts = opts
end
def valid_value?(val)
val.blank? || !User.where(username: val).exists?
end
def error_message
I18n.t('site_settings.errors.valid_username')
end
end