45 lines
1.6 KiB
Ruby
45 lines
1.6 KiB
Ruby
class User
|
|
include Mongoid::Document
|
|
rolify
|
|
# Include default devise modules. Others available are:
|
|
# :confirmable, :lockable, :timeoutable and :omniauthable
|
|
devise :database_authenticatable,
|
|
:recoverable, :rememberable, :trackable, :validatable, :registerable
|
|
|
|
## Database authenticatable
|
|
field :email, :type => String, :default => ""
|
|
field :encrypted_password, :type => String, :default => ""
|
|
|
|
## Recoverable
|
|
field :reset_password_token, :type => String
|
|
field :reset_password_sent_at, :type => Time
|
|
|
|
## Rememberable
|
|
field :remember_created_at, :type => Time
|
|
|
|
## Trackable
|
|
field :sign_in_count, :type => Integer, :default => 0
|
|
field :current_sign_in_at, :type => Time
|
|
field :last_sign_in_at, :type => Time
|
|
field :current_sign_in_ip, :type => String
|
|
field :last_sign_in_ip, :type => String
|
|
|
|
## Confirmable
|
|
# field :confirmation_token, :type => String
|
|
# field :confirmed_at, :type => Time
|
|
# field :confirmation_sent_at, :type => Time
|
|
# field :unconfirmed_email, :type => String # Only if using reconfirmable
|
|
|
|
## Lockable
|
|
# field :failed_attempts, :type => Integer, :default => 0 # Only if lock strategy is :failed_attempts
|
|
# field :unlock_token, :type => String # Only if unlock strategy is :email or :both
|
|
# field :locked_at, :type => Time
|
|
has_many :oauth_applications, class_name: 'Doorkeeper::Application', as: :owner
|
|
|
|
def self.authenticate!(email, password)
|
|
user = User.where(email: email).first
|
|
return (user.valid_password?(password) ? user : nil) unless user.nil?
|
|
nil
|
|
end
|
|
end
|