mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
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:
@@ -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)
|
||||
|
||||
15
lib/validators/not_username_validator.rb
Normal file
15
lib/validators/not_username_validator.rb
Normal 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
|
||||
Reference in New Issue
Block a user