Sha256: c44245c349fae6f930f0f12799b76e6906181bf5a1b866a6b6fe6b4a9a778580
Contents?: true
Size: 1.11 KB
Versions: 4
Compression:
Stored size: 1.11 KB
Contents
module Gaku class User < ActiveRecord::Base has_many :user_roles has_many :roles, through: :user_roles devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable store :settings, accessors: [:locale] attr_accessor :login before_create :default_language validates :username, presence: true, uniqueness: true roles_table_name = Role.table_name scope :admin, -> { includes(:roles).where("#{roles_table_name}.name" => 'admin') } def self.find_first_by_auth_conditions(warden_conditions) conditions = warden_conditions.dup if login = conditions.delete(:login) where(conditions).where(['lower(username) = :value OR lower(email) = :value', { value: login.downcase }]).first else where(conditions).first end end def has_role?(role_sym) roles.any? { |r| r.name.underscore.to_sym == role_sym } end def role?(role) !!self.roles.find_by_name(role.to_s.camelize) end private def default_language settings[:locale] = Preset.get('language') end end end
Version data entries
4 entries across 4 versions & 2 rubygems
Version | Path |
---|---|
gaku-0.0.2 | core/app/models/gaku/user.rb |
gaku_core-0.0.2 | app/models/gaku/user.rb |
gaku-0.0.1 | core/app/models/gaku/user.rb |
gaku_core-0.0.1 | app/models/gaku/user.rb |