class AuthFx::UserProfile
Public Class Methods
sign_up(email, pass_phrase)
click to toggle source
# File lib/fx-auth/user_profile.rb, line 55 def self.sign_up email, pass_phrase user = UserProfile.first :email => email raise DuplicateUserError if user user = UserProfile.new :email => email, :pass_phrase => pass_phrase if user.valid? user.status = :online user.save end user end
Public Instance Methods
authenticate?(token)
click to toggle source
# File lib/fx-auth/user_profile.rb, line 132 def authenticate? token authenticated = (self.status == :online and self.pass_key and self.pass_key.authenticate? token ) self.pass_key.reset_timer if authenticated authenticated end
in_role?(role)
click to toggle source
# File lib/fx-auth/user_profile.rb, line 147 def in_role? role found = self.roles.first :name => role !found.nil? end
lock_expired?()
click to toggle source
# File lib/fx-auth/user_profile.rb, line 160 def lock_expired? Time.now > self.locked_until end
sign_off()
click to toggle source
# File lib/fx-auth/user_profile.rb, line 97 def sign_off self.status = :offline save end
sign_on(email, pass_phrase)
click to toggle source
# File lib/fx-auth/user_profile.rb, line 68 def sign_on email, pass_phrase self.status = :offline if self.pass_key and self.pass_key.expired? self.status = :offline if self.status == :locked and self.lock_expired? if self.status == :online self.pass_key elsif self.status == :offline if self.email == email and self.pass_phrase_crypt == pass_phrase self.status = :online save self.pass_key else self.sign_on_attempts += 1 save raise InvalidUserError unless self.sign_on_attempts >= 3 # TODO make configurable self.status = :locked save raise LockedUserError.new self.locked_until end else # :locked raise LockedUserError.new self.locked_until end end
status()
click to toggle source
Calls superclass method
# File lib/fx-auth/user_profile.rb, line 123 def status self.status = :offline if super == :online and self.pass_key and self.pass_key.expires_at and Time.now > self.pass_key.expires_at super end
status=(value)
click to toggle source
Calls superclass method
# File lib/fx-auth/user_profile.rb, line 103 def status=(value) if value == :online self.locked_until = Time.now - 30 * 60 # Unlocked 30 minutes ago - TODO make configurable self.sign_on_attempts = 0 self.pass_key = PassKey.new elsif value == :offline self.locked_until = Time.now - 30 * 60 # Unlocked 30 minutes ago - TODO make configurable self.sign_on_attempts = 0 self.pass_key.destroy if self.pass_key elsif value == :locked self.locked_until = Time.now + 30 * 60 # Lock for 30 minutes - TODO make configurable self.pass_key.destroy if self.pass_key end super end
verify_email?(email, code)
click to toggle source
# File lib/fx-auth/user_profile.rb, line 153 def verify_email? email, code self.email_verified = (self.email == email and self.email_verification_code == code) save self.email_verified end