Class: Yes::Auth::Cerbos::WriteResourceAccess::PrincipalAttributes

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

Overview

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

Examples:

Building attributes

Yes::Auth::Cerbos::WriteResourceAccess::PrincipalAttributes.call(
  principal: user,
  write_resource_accesses: accesses
)

Class Method Summary collapse

Class Method Details

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

Returns Cerbos principal attributes.

Parameters:

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

    the principal user

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

    write resource accesses

Returns:

  • (HashWithIndifferentAccess)

    Cerbos principal attributes



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

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

  {
    **(principal.auth_attributes || {}),
    write_resource_access: write_attributes(write_resource_accesses)
  }.with_indifferent_access
end