diff options
Diffstat (limited to 'users/app/models/identity.rb')
| -rw-r--r-- | users/app/models/identity.rb | 18 | 
1 files changed, 18 insertions, 0 deletions
diff --git a/users/app/models/identity.rb b/users/app/models/identity.rb index 355f67a..e0a24e9 100644 --- a/users/app/models/identity.rb +++ b/users/app/models/identity.rb @@ -1,4 +1,5 @@  class Identity < CouchRest::Model::Base +  include LoginFormatValidation    use_database :identities @@ -10,6 +11,8 @@ class Identity < CouchRest::Model::Base    validate :unique_forward    validate :alias_available +  validate :address_local_email +  validate :destination_email    design do      view :by_user_id @@ -63,6 +66,11 @@ class Identity < CouchRest::Model::Base      write_attribute('keys', keys.merge(type => value))    end +  # for LoginFormatValidation +  def login +    self.address.handle +  end +    protected    def unique_forward @@ -79,4 +87,14 @@ class Identity < CouchRest::Model::Base      end    end +  def address_local_email +    return if address.valid? #this ensures it is LocalEmail +    self.errors.add(:address, address.errors.messages[:email].first) #assumes only one error +  end + +  def destination_email +    return if destination.valid? #this ensures it is Email +    self.errors.add(:destination, destination.errors.messages[:email].first) #assumes only one error #TODO +  end +  end  | 
