diff options
author | Azul <azul@leap.se> | 2013-01-17 15:09:58 +0100 |
---|---|---|
committer | Azul <azul@leap.se> | 2013-01-17 15:16:53 +0100 |
commit | a8ec73a0307924610023525786bb3a9eb8b173e1 (patch) | |
tree | 16d937bfea4d18a39aad1eec86edfd4f6467d708 /users/app/models/user.rb | |
parent | 7f7ba4f3d72104d67e9ecf839c9688c0580d4063 (diff) |
unit tests passing
Diffstat (limited to 'users/app/models/user.rb')
-rw-r--r-- | users/app/models/user.rb | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/users/app/models/user.rb b/users/app/models/user.rb index 40e285a..f89d01c 100644 --- a/users/app/models/user.rb +++ b/users/app/models/user.rb @@ -20,7 +20,7 @@ class User < CouchRest::Model::Base :format => { :with => /\A[A-Za-z\d_\.]+\z/, :message => "Only letters, digits, . and _ allowed" } - validate :login_differs_from_email_aliases + validate :login_is_unique_alias validates :password_salt, :password_verifier, :format => { :with => /\A[\dA-Fa-f]+\z/, :message => "Only hex numbers allowed" } @@ -38,7 +38,6 @@ class User < CouchRest::Model::Base load_views(Rails.root.join('users', 'app', 'designs', 'user')) view :by_login view :by_created_at - view :by_email end class << self @@ -93,11 +92,13 @@ class User < CouchRest::Model::Base # Validation Functions ## - def login_differs_from_email_aliases - # If this has not changed but the email aliases let's not mark this invalid. - return if email_aliases.any? and email_aliases.last.errors.any? - if email_aliases.map(&:email).include?(email_address) - errors.add(:login, "may not be the same as an alias") + def login_is_unique_alias + has_alias = User.find_by_login_or_alias(username) + return if has_alias.nil? + if has_alias != self + errors.add(:login, "has already been taken") + elsif has_alias.login != self.login + errors.add(:login, "may not be the same as one of your aliases") end end |