Module: HasPermissions
- Extended by:
- ActiveSupport::Concern
- Included in:
- ErpUser
- Defined in:
- app/models/concerns/has_permissions.rb
Instance Method Summary collapse
-
#active_permission_groups ⇒ Array<PermissionGroup>
Returns the active permission groups for the user.
- #associate_permission_groups(codes: []) ⇒ Object
-
#has_permission?(code) ⇒ Boolean
Checks if the user has a specific permission.
-
#has_permission_group?(code) ⇒ Boolean
Checks if the user has a specific permission group.
-
#has_permissions?(codes = []) ⇒ Boolean
Checks if the user has the required permissions.
-
#permission_codes ⇒ Array<String>
Returns the permission codes for the user.
-
#update_assigned_permission_groups(current_user:, permission_group_ids: []) ⇒ void
Updates the assigned permission groups for the user.
- #validate_permission_groups_presence ⇒ Object
Instance Method Details
#active_permission_groups ⇒ Array<PermissionGroup>
Returns the active permission groups for the user.
44 45 46 47 48 49 50 |
# File 'app/models/concerns/has_permissions.rb', line 44 def .order(modification_date: :desc) .includes(:permission_group) .where(active: true) .map(&:permission_group) end |
#associate_permission_groups(codes: []) ⇒ Object
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'app/models/concerns/has_permissions.rb', line 52 def ( codes: [] ) codes.each do |code| = PermissionGroup.find_by!(code: code).id UserPermissionGroup.create( user_id: erp_user_id, permission_group_header_id: , active: true, creation_date: Time.zone.now, created_by: 'CHARBEL' ) end end |
#has_permission?(code) ⇒ Boolean
Checks if the user has a specific permission.
18 19 20 21 22 |
# File 'app/models/concerns/has_permissions.rb', line 18 def (code) return true if system_record Permission.user_allowed?(erp_user_id: erp_user_id, code: code) end |
#has_permission_group?(code) ⇒ Boolean
Checks if the user has a specific permission group.
28 29 30 31 32 |
# File 'app/models/concerns/has_permissions.rb', line 28 def (code) return true if system_record .exist?(code: code) end |
#has_permissions?(codes = []) ⇒ Boolean
Checks if the user has the required permissions.
8 9 10 11 12 |
# File 'app/models/concerns/has_permissions.rb', line 8 def (codes = []) return true if system_record codes.all? { |code| (code) } end |
#permission_codes ⇒ Array<String>
Returns the permission codes for the user.
37 38 39 |
# File 'app/models/concerns/has_permissions.rb', line 37 def Permission.for_user(erp_user_id: erp_user_id).pluck(:code) end |
#update_assigned_permission_groups(current_user:, permission_group_ids: []) ⇒ void
This method returns an undefined value.
Updates the assigned permission groups for the user.
75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 |
# File 'app/models/concerns/has_permissions.rb', line 75 def ( current_user:, permission_group_ids: [] ) = .pluck(:permission_group_header_id) = - = - .each do || = .find_or_initialize_by( permission_group_header_id: ) .activate(current_user: current_user) .save! end .each do || = .find_or_initialize_by( permission_group_header_id: ) .deactivate(current_user: current_user) .save! end end |
#validate_permission_groups_presence ⇒ Object
100 101 102 103 104 |
# File 'app/models/concerns/has_permissions.rb', line 100 def return unless .empty? errors.add(:permission_groups, 'must be present') end |