public function testCatchAll() { $rules = [["class" => "*", "method" => "*", "requiredPermissions" => [self::SOME_PERMISSION]]]; $wikiaAccessRules = new WikiaAccessRules($rules); $result = $wikiaAccessRules->getRequiredPermissionsFor(self::FOO_CONTROLLER, self::FOO_METHOD); $this->assertEquals([self::SOME_PERMISSION], $result); }
/** * @param WikiaApp $app * @param $controller WikiaController * @param $method * @throws PermissionsException */ private function testIfUserHasPermissionsOrThrow(WikiaApp $app, $controller, $method) { $nirvanaAccessRules = WikiaAccessRules::instance(); $permissions = $nirvanaAccessRules->getRequiredPermissionsFor(get_class($controller), $method); foreach ($permissions as $permission) { if (!($app->wg->User->isAllowed($permission) || $controller->isAnonAccessAllowedInCurrentContext())) { throw new PermissionsException($permission); } } }