Class ControllerAuthorize
An authorization adapter for AuthComponent. Provides the ability to authorize using a controller callback. Your controller's isAuthorized() method should return a boolean to indicate whether or not the user is authorized.
 public function isAuthorized($user)
 {
     if ($this->request->param('admin')) {
         return $user['role'] === 'admin';
     }
     return !empty($user);
 }The above is simple implementation that would only authorize users of the 'admin' role to access admin routing.
Property Summary
- 
        $_Controller protectedCake\Controller\ControllerController for the request. 
- 
        $_config protectedarrayRuntime config 
- 
        $_configInitialized protectedboolWhether the config property has already been configured with defaults 
- 
        $_defaultConfig protectedarrayDefault config for authorize objects. 
- 
        $_registry protectedCake\Controller\ComponentRegistryComponentRegistry instance for getting more components. 
Method Summary
- 
          __construct() publicConstructor 
- 
          _configDelete() protectedDelete a single config key 
- 
          _configRead() protectedRead a config variable 
- 
          _configWrite() protectedWrite a config variable 
- 
          authorize() publicChecks user authorization using a controller callback. 
- 
          config() publicUsage
- 
          configShallow() publicMerge provided config with existing config. Unlike config()which does a recursive merge for nested keys, this method does a simple merge.
- 
          controller() publicGet/set the controller this authorize object will be working with. Also checks that isAuthorized is implemented. 
Method Detail
__construct() ¶ public
__construct(Cake\Controller\ComponentRegistry $registry, array $config = [])Constructor
Parameters
- 
                Cake\Controller\ComponentRegistry$registry
- 
                array$config optional
_configDelete() ¶ protected
_configDelete(string $key): voidDelete a single config key
Parameters
- 
                string$key
- Key to delete. 
Returns
voidThrows
Cake\Core\Exception\Exceptionif attempting to clobber existing config
_configRead() ¶ protected
_configRead(string|null $key): mixedRead a config variable
Parameters
- 
                string|null$key
- Key to read. 
Returns
mixed_configWrite() ¶ protected
_configWrite(string|array $key, mixed $value, bool|string $merge = false): voidWrite a config variable
Parameters
- 
                string|array$key
- Key to write to. 
- 
                mixed$value
- Value to write. 
- 
                bool|string$merge optional
- True to merge recursively, 'shallow' for simple merge, false to overwrite, defaults to false. 
Returns
voidThrows
Cake\Core\Exception\Exceptionif attempting to clobber existing config
authorize() ¶ public
authorize(array|ArrayAccess $user, Cake\Network\Request $request): boolChecks user authorization using a controller callback.
Parameters
- 
                array|ArrayAccess$user
- Active user data 
- 
                Cake\Network\Request$request
- Request instance. 
Returns
boolconfig() ¶ public
config(string|array|null $key = null, mixed|null $value = null, bool $merge = true): mixedUsage
Reading the whole config:
$this->config();Reading a specific value:
$this->config('key');Reading a nested value:
$this->config('some.nested.key');Setting a specific value:
$this->config('key', $value);Setting a nested value:
$this->config('some.nested.key', $value);Updating multiple config settings at the same time:
$this->config(['one' => 'value', 'another' => 'value']);Parameters
- 
                string|array|null$key optional
- The key to get/set, or a complete array of configs. 
- 
                mixed|null$value optional
- The value to set. 
- 
                bool$merge optional
- Whether to recursively merge or overwrite existing config, defaults to true. 
Returns
mixedConfig value being read, or the object itself on write operations.
Throws
Cake\Core\Exception\ExceptionWhen trying to set a key that is invalid.
configShallow() ¶ public
configShallow(string|array $key, mixed|null $value = null): $thisMerge provided config with existing config. Unlike config() which does
a recursive merge for nested keys, this method does a simple merge.
Setting a specific value:
$this->config('key', $value);Setting a nested value:
$this->config('some.nested.key', $value);Updating multiple config settings at the same time:
$this->config(['one' => 'value', 'another' => 'value']);Parameters
- 
                string|array$key
- The key to set, or a complete array of configs. 
- 
                mixed|null$value optional
- The value to set. 
Returns
$thisThe object itself.
controller() ¶ public
controller(Cake\Controller\Controller|null $controller = null): Cake\Controller\ControllerGet/set the controller this authorize object will be working with. Also checks that isAuthorized is implemented.
Parameters
- 
                Cake\Controller\Controller|null$controller optional
- null to get, a controller to set. 
Returns
Cake\Controller\ControllerThrows
Cake\Core\Exception\ExceptionIf controller does not have method `isAuthorized()`.
