Sha256: 9b896c796da327e664805fceef7e0b2e9a615736ae367dfab58bf725c4d60af9

Contents?: true

Size: 1.72 KB

Versions: 12

Compression:

Stored size: 1.72 KB

Contents

class AdminUser
  include Mongoid::Document
  include Mongoid::Timestamps
  include Mongoid::Search
  include Ants::Id

  ## Attributes
  field :name
  field :permissions, type: Array

  # Include default devise modules. Others available are:
  # :confirmable, :lockable, :timeoutable, :registerable and :omniauthable
  devise :database_authenticatable,
         :recoverable,
         :rememberable,
         :trackable,
         :validatable,
         :authentication_keys => [:email]

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

  ## Validations
  validates :name,  presence: true

  ## Search
  search_in :name, :email

  ## Scopes
  default_scope -> { asc(:name) }

  ## Indexes
  index({ name:  1 })
  index({ email: 1 }, { unique: true })

  ## Helpers
  def devise_mailer
    AdminUserMailer
  end

  def _list_item_title
    name.empty? ? email : name
  end

  def _list_item_subtitle
    last_sign_in_ago
  end

  def _list_item_thumbnail
    hex = Digest::MD5.hexdigest(email)
    "//www.gravatar.com/avatar/#{hex}?s=80&d=retro&r=g"
  end

  private

  def last_sign_in_ago
    if current_sign_in_at
      time = ActionController::Base.helpers.time_ago_in_words(current_sign_in_at)
      "Seen #{time} ago"
    else
      "Never seen"
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
ants-0.3.14 app/models/admin_user.rb
ants-0.3.13 app/models/admin_user.rb
ants-0.3.12 app/models/admin_user.rb
ants-0.3.11 app/models/admin_user.rb
ants-0.3.10 app/models/admin_user.rb
ants-0.3.9 app/models/admin_user.rb
ants-0.3.5 app/models/admin_user.rb
ants-0.3.4 app/models/admin_user.rb
ants-0.3.3 app/models/admin_user.rb
ants-0.3.2 app/models/admin_user.rb
ants-0.3.1 app/models/admin_user.rb
ants-0.3.0 app/models/admin_user.rb