Class: RailsIam::Authorization::PermissionSources::RolePermissionSource

Inherits:
RailsIamService show all
Defined in:
app/services/rails_iam/authorization/permission_sources/role_permission_source.rb

Instance Method Summary collapse

Methods inherited from RailsIamService

call

Methods included from ConfigLoader

#authentication_strategies, #authorization_rule_error, #cookie_options, #jwt_algorithm, #jwt_audience, #jwt_expiry, #jwt_issuer, #jwt_secret_key, #refresh_token_transport, #session_strategy, #user_class

Constructor Details

#initialize(user) ⇒ RolePermissionSource

Returns a new instance of RolePermissionSource.



7
8
9
10
# File 'app/services/rails_iam/authorization/permission_sources/role_permission_source.rb', line 7

def initialize(user)
  super()
  @user = user
end

Instance Method Details

#callObject



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'app/services/rails_iam/authorization/permission_sources/role_permission_source.rb', line 12

def call
  rows = []

  user
    .roles
    .includes(:permissions)
    .find_each do |role|
    role.permissions.each do |permission|
      rows << {
        code: permission.code,
        source: :role,
        role: role.name,
      }
    end
  end

  rows
end