mirror of
https://github.com/discourse/discourse.git
synced 2025-05-21 18:12:32 +08:00
FEATURE: add setting auto_approve_email_domains
to auto approve users (#9323)
* FEATURE: add setting `auto_approve_email_domains` to auto approve users This commit adds a new site setting `auto_approve_email_domains` to auto approve users based on their email address domain. Note that if a domain already exists in `email_domains_whitelist` then `auto_approve_email_domains` needs to be duplicated there as well, since users won’t be able to register with email address that is not allowed in `email_domains_whitelist`. * Update config/locales/server.en.yml Co-Authored-By: Robin Ward <robin.ward@gmail.com>
This commit is contained in:
@ -22,6 +22,14 @@ class EmailValidator < ActiveModel::EachValidator
|
||||
true
|
||||
end
|
||||
|
||||
def self.can_auto_approve_user?(email)
|
||||
if (setting = SiteSetting.auto_approve_email_domains).present?
|
||||
return !!(EmailValidator.allowed?(email) && email_in_restriction_setting?(setting, email))
|
||||
end
|
||||
|
||||
false
|
||||
end
|
||||
|
||||
def self.email_in_restriction_setting?(setting, value)
|
||||
domains = setting.gsub('.', '\.')
|
||||
regexp = Regexp.new("@(.+\\.)?(#{domains})$", true)
|
||||
|
Reference in New Issue
Block a user