AuthorizationContextTrait
Resolves a controller's request-scoped authorization context from the DI container — the capability enforcer and the permission-subject resolver — and wires them in, in one place.
Both DocumentsController and FederatedSearchController (and any other
capability-aware Arango controller) need the exact same boilerplate right
after parent::__construct(): look up CapabilityEnforcerInterface and
PermissionSubjectResolverInterface in the container, guard them with an
instanceof, and hand them to initializeCapabilities() /
initializePermissionSubjectResolver(). This trait factors that out.
The consuming class must:
- expose
$this->container(provided by the baseController) ; - provide
initializeCapabilities()— from CapabilityContextTrait (pulled in by DocumentsControllerCapabilitiesTrait) ; - provide
initializePermissionSubjectResolver()— from PermissionAuthorizerTrait.
Usage:
public function __construct( Container $container , array $init = [] )
{
parent::__construct( $container , $init ) ;
$this->initializeModel( $init )
// ...
->initializeAuthorizationContext( $init ) ;
}
Tags
Table of Contents
Methods
- initializeAuthorizationContext() : static
- Resolves the capability enforcer and the permission-subject resolver from the container (each guarded by an `instanceof`, null when absent) and wires them through `initializeCapabilities()` and `initializePermissionSubjectResolver()`.
Methods
initializeAuthorizationContext()
Resolves the capability enforcer and the permission-subject resolver from the container (each guarded by an `instanceof`, null when absent) and wires them through `initializeCapabilities()` and `initializePermissionSubjectResolver()`.
protected
initializeAuthorizationContext([array<string, mixed> $init = [] ]) : static
Parameters
- $init : array<string, mixed> = []
-
Same array passed to the controller constructor.