diff options
author | Azul <azul@riseup.net> | 2012-09-27 22:39:08 +0200 |
---|---|---|
committer | Azul <azul@riseup.net> | 2012-09-27 22:39:08 +0200 |
commit | ebbfe3d77efddbe8f97fa82c171632ac4cfcf6da (patch) | |
tree | b81b55476f4f7889af0e346ebf5dc95afc4a02af /users/app/models | |
parent | 1208257bcc0e2a6648b68433a7b7e24791f92583 (diff) |
added in leap web users - one repo to rule them all
Diffstat (limited to 'users/app/models')
-rw-r--r-- | users/app/models/.gitkeep | 0 | ||||
-rw-r--r-- | users/app/models/unauthenticated_user.rb | 4 | ||||
-rw-r--r-- | users/app/models/user.rb | 49 |
3 files changed, 53 insertions, 0 deletions
diff --git a/users/app/models/.gitkeep b/users/app/models/.gitkeep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/users/app/models/.gitkeep diff --git a/users/app/models/unauthenticated_user.rb b/users/app/models/unauthenticated_user.rb new file mode 100644 index 0000000..99a6874 --- /dev/null +++ b/users/app/models/unauthenticated_user.rb @@ -0,0 +1,4 @@ +# The nil object for the user class +class UnauthenticatedUser < Object + +end 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 |