Class: Yes::Auth::Cerbos::ReadResourceAccess::PrincipalAttributes

Inherits:
Object
  • Object
show all
Defined in:
lib/yes/auth/cerbos/read_resource_access/principal_attributes.rb

Overview

Builds principal attributes for Cerbos authorization based on read resource accesses.

Examples:

Building attributes

Yes::Auth::Cerbos::ReadResourceAccess::PrincipalAttributes.call(
  principal: user,
  read_resource_accesses: accesses
)

Class Method Summary collapse

Class Method Details

.call(principal: nil, read_resource_accesses: []) ⇒ HashWithIndifferentAccess

Returns Cerbos principal attributes.

Parameters:

  • principal (Yes::Auth::Principals::User, nil) (defaults to: nil)

    the principal user

  • read_resource_accesses (Array, ActiveRecord::Relation) (defaults to: [])

    read resource accesses

Returns:

  • (HashWithIndifferentAccess)

    Cerbos principal attributes



19
20
21
22
23
24
25
26
# File 'lib/yes/auth/cerbos/read_resource_access/principal_attributes.rb', line 19

def call(principal: nil, read_resource_accesses: [])
  return {} unless principal

  {
    **(principal.auth_attributes || {}),
    read_resource_access: read_attributes(read_resource_accesses)
  }.with_indifferent_access
end