/** * Init AuthorizationManager variables */ public function init() { if (!ResolvableAuthorizationInstance::getInstance()) { return false; } $this->_initialized = true; return true; }
/** * tearDown method * * @return void */ public function tearDown() { unset($this->Posts); unset($this->Behavior); ResolvableAuthorizationInstance::reset(); TableRegistry::clear(); parent::tearDown(); }
/** * TearDown Function */ public function tearDown() { unset($this->context); unset($this->manager); unset($this->AuthorizationMock); ResolvableAuthorizationInstance::reset(); ResolvableAuthorizationRegistry::reset(); parent::tearDown(); }
/** * Test initialization */ public function testInitilization() { $this->component->startup(new Event("Controller.startup", $this->controller)); $this->assertNotNull(ResolvableAuthorizationInstance::getInstance()); $context = ResolvableAuthorizationInstance::getInstance()->context; $this->assertSame($this->controller->getUser(), $context->user); $this->assertSame($this->controller, $context->controller); $this->assertSame($this->request->params['action'], $context->action); $this->assertSame($this->component, $context->manager); $this->assertSame($this->request, $context->request); }
/** * Main authorization method. * * - Initializes ResolvableAuthorizationInstance * - Calls buildAuthorization method to add authorization rules * - Resolves unregistered ResolvableAuthorizationInterface, * registered authorizations will be resolved later and manually * - Checks authorization rules * * @param Event $event * @return null */ public function startup(Event $event) { $this->_controller = $this->_registry->getController(); $this->_action = $this->_controller->request->params['action']; $this->_user = call_user_func([$this->_controller, $this->config('getUser')]); $context = new AuthorizationContext($this->_controller, $this->_user, $this); ResolvableAuthorizationInstance::init($context, $this->config('resolvableAuthorizations')); EventManager::instance()->on('AuthorizationInternalEvent.AuthorizationResolved', function () { $this->_checkAllRules(); }); $method = $this->config('buildAuthorization'); if (method_exists($this->_controller, $method)) { $this->_controller->{$method}($this); $this->resolveUnregistered($this->_action); } }
public function tearDown() { unset($this->manager); ResolvableAuthorizationRegistry::reset(); ResolvableAuthorizationInstance::reset(); }
/** * Creates instances from an array. * * Example : * $array = [ * ['type', 'param'], * ['Group', 'user'], * 'ignoredAlreadyRegisteredResolvableAuthorization', * $ignoredAlreadyRegisteredResolvableAuthorization * ] * * @param $authorizationArray * @return array * @throws Exception * @throws InvalidArgumentException */ public function createFromArray($authorizationArray) { $resolvables = []; foreach ($authorizationArray as $resolvable) { if (!is_array($resolvable)) { $resolvables[] = ResolvableAuthorizationRegistry::get($resolvable); continue; } $resolvables[] = ResolvableAuthorizationInstance::getInstance()->create($resolvable[0], $resolvable[1]); } return $resolvables; }
/** * @param string $type * @param $params * @return ResolvableAuthorizationInterface */ public function getResolvable($type, $params) { return ResolvableAuthorizationInstance::getInstance()->create(ucwords(strtolower($type)), $params); }
/** * @expectedException InvalidArgumentException */ public function testCreateFromArrayWithUnregistered() { $result = ResolvableAuthorizationInstance::getInstance()->createFromArray(['unregistered']); }