0
0
Fork 0

Add specs for UnreservedUsernameValidator (#9698)

* Add specs for UnreservedUsernameValidator

* Use instance variable
This commit is contained in:
ysksn 2019-01-03 13:10:02 +09:00 committed by Yamagishi Kazutoshi
parent 9790f3b590
commit 19abf4ef0b
2 changed files with 53 additions and 7 deletions

View file

@ -2,20 +2,22 @@
class UnreservedUsernameValidator < ActiveModel::Validator
def validate(account)
return if account.username.nil?
account.errors.add(:username, I18n.t('accounts.reserved_username')) if reserved_username?(account.username)
@username = account.username
return if @username.nil?
account.errors.add(:username, I18n.t('accounts.reserved_username')) if reserved_username?
end
private
def pam_controlled?(value)
def pam_controlled?
return false unless Devise.pam_authentication && Devise.pam_controlled_service
Rpam2.account(Devise.pam_controlled_service, value).present?
Rpam2.account(Devise.pam_controlled_service, @username).present?
end
def reserved_username?(value)
return true if pam_controlled?(value)
def reserved_username?
return true if pam_controlled?
return false unless Setting.reserved_usernames
Setting.reserved_usernames.include?(value.downcase)
Setting.reserved_usernames.include?(@username.downcase)
end
end