Sha256: a963be3d29b9ba4a35e932fdd76f4cbc57b4d68a20222a88681a3bd89980917a

Contents?: true

Size: 1.85 KB

Versions: 2

Compression:

Stored size: 1.85 KB

Contents

module Pbw
  class User
    include ::Mongoid::Document
    include ::Mongoid::Timestamps
    
    devise :database_authenticatable, :registerable, :timeoutable, :confirmable,
           :recoverable, :rememberable, :trackable, :validatable, :lockable, :token_authenticatable

    ## 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

    field :name,   :type => String
    validates_presence_of :name
    validates_uniqueness_of :name, :email, :case_sensitive => false
    validates_format_of :email, :with => /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$/
    validates_confirmation_of :password

    belongs_to :role

    ## 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

    ## Token authenticatable
    field :authentication_token, :type => String

    has_many :resource_containers
    has_many :user_tokens

    def super_admin?
      self.role.name == "Super Admin"
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
pbw-0.0.4 app/models/pbw/user.rb
pbw-0.0.3 app/models/pbw/user.rb