Class: RailsIam::Authorization::Authorizer

Inherits:
RailsIamService show all
Defined in:
app/services/rails_iam/authorization/authorizer.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:, required_roles: [], required_permissions: [], inferred_permission: nil, role_match: :any, permission_match: :all) ⇒ Authorizer

Returns a new instance of Authorizer.



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'app/services/rails_iam/authorization/authorizer.rb', line 6

def initialize(
  user:,
  required_roles: [],
  required_permissions: [],
  inferred_permission: nil,
  role_match: :any,
  permission_match: :all
)
  super()
  @context =
    AuthorizationContext.new(
      user: user,
      required_roles: required_roles,
      required_permissions: required_permissions,
      inferred_permission: inferred_permission,
      role_match: role_match,
      permission_match: permission_match,
    )
end

Instance Method Details

#callObject



26
27
28
29
30
31
32
# File 'app/services/rails_iam/authorization/authorizer.rb', line 26

def call
  DeniedPermissionChecker.call(@context)
  RoleChecker.call(@context)
  PermissionChecker.call(@context)

  true # success is the absence of an exception
end