From ebbfe3d77efddbe8f97fa82c171632ac4cfcf6da Mon Sep 17 00:00:00 2001 From: Azul Date: Thu, 27 Sep 2012 22:39:08 +0200 Subject: added in leap web users - one repo to rule them all --- users/app/models/.gitkeep | 0 users/app/models/unauthenticated_user.rb | 4 +++ users/app/models/user.rb | 49 ++++++++++++++++++++++++++++++++ 3 files changed, 53 insertions(+) create mode 100644 users/app/models/.gitkeep create mode 100644 users/app/models/unauthenticated_user.rb create mode 100644 users/app/models/user.rb (limited to 'users/app/models') diff --git a/users/app/models/.gitkeep b/users/app/models/.gitkeep new file mode 100644 index 0000000..e69de29 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 -- cgit v1.2.3