Class: UserPrivilege
- Inherits:
-
ApplicationRecord
- Object
- ActiveRecord::Base
- ApplicationRecord
- UserPrivilege
- Includes:
- HasOwner
- Defined in:
- app/models/user_privilege.rb
Class Method Summary collapse
- .ids(user) ⇒ Array<Integer>
- .user_has_any_privilege?(user, administrative = true) ⇒ Boolean
- .user_has_privilege?(user, privilege_name, region_ids = []) ⇒ Boolean
- .user_in_group?(user, group_name) ⇒ Boolean
Methods included from HasOwner
Class Method Details
.ids(user) ⇒ Array<Integer>
11 12 13 14 15 |
# File 'app/models/user_privilege.rb', line 11 def self.ids(user) privileges = user&.privileges return [] if privileges.blank? privileges.map(&:subbranch_ids).flatten.uniq end |
.user_has_any_privilege?(user, administrative = true) ⇒ Boolean
29 30 31 32 33 34 35 36 37 |
# File 'app/models/user_privilege.rb', line 29 def self.user_has_any_privilege?(user, administrative = true) return false if user.nil? return true if user.super_user? criteria = { user: user } if administrative criteria[:privilege_id] = Privilege.administrative.pluck(:id) end exists?(criteria) end |
.user_has_privilege?(user, privilege_name, region_ids = []) ⇒ Boolean
20 21 22 23 24 25 |
# File 'app/models/user_privilege.rb', line 20 def self.user_has_privilege?(user, privilege_name, region_ids = []) return false if user.nil? return true if user.super_user? privilege = Privilege.find_by(slug: privilege_name) privilege&.has_user?(user, region_ids) end |
.user_in_group?(user, group_name) ⇒ Boolean
41 42 43 44 45 46 47 |
# File 'app/models/user_privilege.rb', line 41 def self.user_in_group?(user, group_name) return false if user.nil? return true if user.super_user? privilege_ids = PrivilegeGroup.ids(group_name) return false if privilege_ids.blank? exists?(user: user, privilege_id: privilege_ids) end |