diff options
Diffstat (limited to 'users/app/models/user.rb')
-rw-r--r-- | users/app/models/user.rb | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/users/app/models/user.rb b/users/app/models/user.rb new file mode 100644 index 0000000..fa64f42 --- /dev/null +++ b/users/app/models/user.rb @@ -0,0 +1,49 @@ +class User < CouchRest::Model::Base + + include SRP::Authentication + + property :login, String, :accessible => true + property :email, String, :accessible => true + property :password_verifier, String, :accessible => true + property :password_salt, String, :accessible => true + + validates :login, :password_salt, :password_verifier, :presence => true + validates :login, :uniqueness => true + + timestamps! + + design do + view :by_login + end + + class << self + def find_by_param(login) + return find_by_login(login) || raise(RECORD_NOT_FOUND) + end + + # valid set of attributes for testing + def valid_attributes_hash + { :login => "me", + :password_verifier => "1234", + :password_salt => "4321" } + end + + end + + def to_param + self.login + end + + def to_json(options={}) + super(options.merge(:only => ['login', 'password_salt'])) + end + + def salt + password_salt.hex + end + + def verifier + password_verifier.hex + end + +end |