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

Version Path
kirgudu_base-0.0.19 app/models/kirgudu_base/security/user.rb
kirgudu_base-0.0.18 app/models/kirgudu_base/security/user.rb
kirgudu_base-0.0.17 app/models/kirgudu_base/security/user.rb
kirgudu_base-0.0.16 app/models/kirgudu_base/security/user.rb
kirgudu_base-0.0.15 app/models/kirgudu_base/security/user.rb
kirgudu_base-0.0.14 app/models/kirgudu_base/security/user.rb
kirgudu_base-0.0.13 app/models/kirgudu_base/security/user.rb
kirgudu_base-0.0.12 app/models/kirgudu_base/security/user.rb
kirgudu_base-0.0.11 app/models/kirgudu_base/security/user.rb