Class: RailsIam::Authorization::AuthorizationContext

Inherits:
Object
  • Object
show all
Defined in:
app/services/rails_iam/authorization/authorization_context.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(user:, required_roles: [], required_permissions: [], inferred_permission: nil, role_match: :any, permission_match: :all) ⇒ AuthorizationContext

Returns a new instance of AuthorizationContext.



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'app/services/rails_iam/authorization/authorization_context.rb', line 15

def initialize(
  user:,
  required_roles: [],
  required_permissions: [],
  inferred_permission: nil,
  role_match: :any,
  permission_match: :all
)
  @user = user
  @roles = RoleResolver.call(user)
  @resolved_permissions = PermissionResolver.call(user)
  @required_roles = required_roles.map(&:to_s)
  @required_permissions = required_permissions.map(&:to_s)
  @inferred_permission = inferred_permission
  @role_match = role_match
  @permission_match = permission_match
end

Instance Attribute Details

#inferred_permissionObject (readonly)

Returns the value of attribute inferred_permission.



6
7
8
# File 'app/services/rails_iam/authorization/authorization_context.rb', line 6

def inferred_permission
  @inferred_permission
end

#permission_matchObject (readonly)

Returns the value of attribute permission_match.



6
7
8
# File 'app/services/rails_iam/authorization/authorization_context.rb', line 6

def permission_match
  @permission_match
end

#required_permissionsObject (readonly)

Returns the value of attribute required_permissions.



6
7
8
# File 'app/services/rails_iam/authorization/authorization_context.rb', line 6

def required_permissions
  @required_permissions
end

#required_rolesObject (readonly)

Returns the value of attribute required_roles.



6
7
8
# File 'app/services/rails_iam/authorization/authorization_context.rb', line 6

def required_roles
  @required_roles
end

#resolved_permissionsObject (readonly)

Returns the value of attribute resolved_permissions.



6
7
8
# File 'app/services/rails_iam/authorization/authorization_context.rb', line 6

def resolved_permissions
  @resolved_permissions
end

#role_matchObject (readonly)

Returns the value of attribute role_match.



6
7
8
# File 'app/services/rails_iam/authorization/authorization_context.rb', line 6

def role_match
  @role_match
end

#rolesObject (readonly)

Returns the value of attribute roles.



6
7
8
# File 'app/services/rails_iam/authorization/authorization_context.rb', line 6

def roles
  @roles
end

#userObject (readonly)

Returns the value of attribute user.



6
7
8
# File 'app/services/rails_iam/authorization/authorization_context.rb', line 6

def user
  @user
end

Instance Method Details

#permissions_for_checkObject



33
34
35
36
37
38
# File 'app/services/rails_iam/authorization/authorization_context.rb', line 33

def permissions_for_check
  return required_permissions if required_permissions.any?
  return [inferred_permission] if inferred_permission.present?

  []
end