Sha256: 9e17d86f22525742034a42f0adcafd323f38e2394bc46a7f40e2930f07f47dde
Contents?: true
Size: 1.32 KB
Versions: 1
Compression:
Stored size: 1.32 KB
Contents
class User < Forest::ApplicationRecord # Include default devise modules. Others available are: # :confirmable, :lockable, :timeoutable and :omniauthable devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable store :settings, accessors: [:page_settings], coder: JSON before_create :assign_default_user_groups has_and_belongs_to_many :user_groups scope :by_email, -> (orderer = :asc) { order(email: orderer) } scope :by_first_name, -> (orderer = :asc) { order(first_name: orderer) } scope :by_last_name, -> (orderer = :asc) { order(last_name: orderer) } scope :for_user_group_name, -> (group_name) { joins(:user_groups).where('user_groups.name = ?', group_name).limit(1) } def self.resource_description "Users are the website editors, administrators and content managers who have access to the CMS. Users are organized by user groups." end def display_name [first_name, email].reject(&:blank?).first end def name [first_name, last_name].reject(&:blank?).join(' ') end def admin? in_group? 'admin' end def in_group?(name) user_groups.any? { |ug| ug.name == name } end private def assign_default_user_groups if self.class.count == 0 self.user_groups << UserGroup.find_by_name('admin') end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
forest_cms-0.98.1 | app/models/user.rb |