Sha256: 735cd44ac20a1ee1aae5b9c98dd6bec2c9fb80c341d53676efd66b2fc6e6a3b2
Contents?: true
Size: 1.96 KB
Versions: 9
Compression:
Stored size: 1.96 KB
Contents
module KirguduBase module Security class User < ::KirguduBase::BaseModel include ::KirguduBase::Models::BasicProperties::CreatedBy include ::KirguduBase::Models::BasicProperties::UpdatedBy validates_uniqueness_of :email, case_sensitive: false validates_presence_of :last_name, :first_name, :email validates_presence_of :password, only: [:create, :password_set] validates_confirmation_of :password, only: [:create, :password_set] validates_email_format_of :email, allow_blank: true has_many :authentications, class_name: ::KirguduBase::Security::Authentication, foreign_key: :user_id, dependent: :destroy has_many :user_at_portals, class_name: ::KirguduBase::Common::PortalUser, foreign_key: :user_id, dependent: :destroy #has_many :portals, class_name: ::KirguduBase::Common::Portal, through: :user_at_portals scope :with_status, lambda { |value| where { status_id == value } if value } scope :with_keyword, lambda { |value| if value value = value.gsub('%', '') like_value = "%#{value}%" where { (first_name.like like_value) | (last_name.like like_value) } end } def self.apply_filters_to_query(query, filters={}) filters ||= {} filters.merge!({ order: { last_name: :asc, first_name: :asc } }) super(query, filters) end def self.get_by_email(email) self.where(email: email.to_s).first if email end def full_name nm = self.first_name if self.last_name nm = "#{self.last_name} #{nm}" end nm end def status_name I18n.t(status_id, scope: 'security.users.statuses') end def name_for_breadcrumbs full_name end def to_s self.full_name end def as_json(options = { }) super((options || { }).merge({ :methods => [:full_name], except: :password })) end end end end
Version data entries
9 entries across 9 versions & 1 rubygems