/** * Route request to the Controller * @return void */ public function route() { $cfg = Registry::get('backend', 'config'); $controller = $this->_request->getPart(1); $controller = Utils_String::formatClassName(Filter::filterValue('pagecode', $controller)); if (in_array('Backend_' . $controller . '_Controller', $cfg->get('system_controllers'))) { $controller = 'Backend_' . $controller . '_Controller'; } else { $manager = new Backend_Modules_Manager(); $controller = $manager->getModuleController($controller); if ($controller === false) { if (Request::isAjax()) { Response::jsonError(Lang::lang()->get('WRONG_REQUEST') . ' ' . Request::getInstance()->getUri()); } $controller = 'Backend_Index_Controller'; } } $this->runController($controller, $this->_request->getPart(2)); }
/** * List permissions action */ public function permissionsAction() { $user = Request::post('user_id', 'int', 0); $group = Request::post('group_id', 'int', 0); $data = array(); if ($user && $group) { Response::jsonError($this->_lang->get('WRONG_REQUEST')); } if ($group) { $data = Model::factory('Permissions')->getGroupPermissions($group); } if (!empty($data)) { $data = Utils::rekey('module', $data); } $manager = new Backend_Modules_Manager(); $modules = $manager->getRegisteredModules(); foreach ($modules as $name) { if (!isset($data[$name])) { $data[$name] = array('module' => $name, 'view' => false, 'edit' => false, 'delete' => false, 'publish' => false); } } foreach ($data as $k => &$v) { $class = $manager->getModuleController($k); if (!class_exists($class)) { $v['rc'] = false; continue; } $reflector = new ReflectionClass($class); if ($reflector->isSubclassOf('Backend_Controller_Crud_Vc')) { $v['rc'] = true; } else { $v['rc'] = false; } } unset($v); Response::jsonSuccess(array_values($data)); }