Sha256: fe676e5351bf3b4bb789efd9e509d79883dc7d0ce25fb301f130584a4a8b10eb

Contents?: true

Size: 997 Bytes

Versions: 10

Compression:

Stored size: 997 Bytes

Contents

class User < ApplicationRecord
  include Authorizable
  # Include default devise modules. Others available are:
  # :registerable, :confirmable, :lockable and :omniauthable

  # Virtual attribute for authenticating by either username or email
  attr_accessor :login

  devise :database_authenticatable, :recoverable, :rememberable, :trackable, :validatable,
         :timeoutable, :omniauthable

  validates :username, presence: true, uniqueness: { scope: :provider, case_sensitive: false }

  def display_name
    fullname.presence || username
  end

  # Devise method overridden to allow sign in with email or username
  def self.find_for_database_authentication(warden_conditions)
    conditions = warden_conditions.dup
    login = conditions.delete(:login)
    if login
      where(conditions).where(['lower(username) = :value OR lower(email) = :value', { value: login.downcase }]).first
    else
      where(conditions).first
    end
  end

  def ldap_user?
    provider == 'ldap'
  end

end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
chaltron-1.1.6 app/models/user.rb
chaltron-0.3.2 app/models/user.rb
chaltron-1.1.5 app/models/user.rb
chaltron-1.1.4 app/models/user.rb
chaltron-0.3.1 app/models/user.rb
chaltron-1.1.3 app/models/user.rb
chaltron-1.1.2 app/models/user.rb
chaltron-1.1.1 app/models/user.rb
chaltron-0.3.0 app/models/user.rb
chaltron-1.1.0 app/models/user.rb