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