Sha256: 07d21c4f0d52104fefa65b691bdd00a89c563f2b2e5bdaf4434f8156e064cfbb
Contents?: true
Size: 1.46 KB
Versions: 5
Compression:
Stored size: 1.46 KB
Contents
require 'model/flag_from_time_range_concern' module Ecm::Rbac class Permission < ActiveRecord::Base include Model::FlagFromTimeRangeConcern DEFAULTS = { enabled_from: '01.01.1900 00:00:00', enabled_to: '31.12.9999 23:59:59' } # associations has_many :role_permissions, class_name: 'Ecm::Rbac::RolePermission', dependent: :destroy has_many :roles, class_name: 'Ecm::Rbac::Role', through: :role_permissions has_many :user_roles, through: :roles, class_name: 'Ecm::Rbac::UserRole' has_many :users, through: :user_roles, class_name: Ecm::Rbac::Configuration.user_class_name has_many :enabled_roles, -> { enabled }, class_name: 'Ecm::Rbac::Role', through: :role_permissions, source: :permission has_many :enabled_user_roles, class_name: 'Ecm::Rbac::UserRole', through: :enabled_roles, source: :role_permissions has_many :enabled_users, through: :enabled_user_roles, class_name: Ecm::Rbac::Configuration.user_class_name, source: :user flag_from_time_range :enabled? # validations validates :identifier, presence: true, uniqueness: true validates :enabled_from, presence: true validates :enabled_to, presence: true # callbacks after_initialize :set_defaults def human "#{self.class.model_name.human}: #{identifier}" end private def set_defaults return if persisted? self.enabled_from = DEFAULTS[:enabled_from] self.enabled_to = DEFAULTS[:enabled_to] end end end
Version data entries
5 entries across 5 versions & 1 rubygems