private function checkPermission($name) { $moduleName = $this->router->getModuleName(); if (trim($moduleName) == false) { return; } $permission = Permission\Manager::checkPermission($moduleName, $name); $className = $this->router->getNamespaceName(); dump('module ' . $moduleName . ' in namespace ' . $className . ' wanna get ' . $name); if (Service::isService($name) && Engine::getInstance()->isRegisteredModule($moduleName) && !$permission) { //dump ( 'doesn\'t have permission for ' . $name . ' ' . $moduleName . ' ' . ( int ) $permission ); Engine::throwException($name, 300); } return true; }
public function afterStartModule($event, $engine) { dump('after start module'); $this->wrongModule = false; $router = $engine->getService(Service::ROUTER); $moduleName = $router->getModuleName(); $namespace = $router->getNamespaceName(); $controller = ucfirst($router->getControllerName()) . 'Controller'; $className = $namespace . '\\' . $controller; $moduleClassName = $engine->getModuleDefinition($moduleName)['className']; if (class_exists($moduleClassName) && !is_subclass_of($moduleClassName, 'Thunderhawk\\API\\Adapters\\Module')) { Engine::throwException($moduleName, 550); } if (class_exists($className) && !is_subclass_of($className, 'Thunderhawk\\API\\Mvc\\Controller')) { Engine::throwException($controller, 400); } if (!class_exists($moduleClassName)) { //wrong module call... undefined index $this->wrongModule = true; } }