示例#1
0
 protected function getComponentInstance($component = false)
 {
     return $this->controller->getComponentInstance($component);
 }
示例#2
0
 public static function error($message, $subTitle = null, $type = null, $showTrace = true, $trace = false)
 {
     Ntentan::$errorDepth++;
     if (isset(Ntentan::$config[Ntentan::$context]['error_handler']) && Ntentan::$debug === false && Ntentan::$errorDepth < Ntentan::MAX_ERROR_DEPTH) {
         controllers\Controller::load(Ntentan::$config[Ntentan::$context]['error_handler']);
     } else {
         ob_clean();
         echo Ntentan::message($message, $subTitle, $type, $showTrace, $trace);
     }
 }
示例#3
0
 public function setPermissions()
 {
     $arguments = func_get_args();
     $id = array_shift($arguments);
     $role = $this->model->getFirstWithId($id);
     if (count($_POST) > 0) {
         foreach ($_POST as $permissionName => $path) {
             $permission = Model::load('system.permissions')->getFirst(array('conditions' => array('role_id' => $id, 'permission' => $permissionName)));
             if ($permission->count() == 0 && $path != 'no') {
                 $permission->setData(array('role_id' => $id, 'permission' => $permissionName, 'path' => $path, 'access' => true));
                 $permission->save();
             } else {
                 if ($path == 'no') {
                     $permission->access = false;
                     $permission->update();
                 } else {
                     $permission->access = true;
                     $permission->update();
                 }
             }
         }
         $role->menu_tree = json_encode($this->getMenuTree($role));
         $role->update();
     }
     $permissionItems = array();
     $baseRoute = implode('/', $arguments) . (count($arguments) > 0 ? '/' : '');
     $baseDirectory = Ntentan::$namespace . "/modules/{$baseRoute}";
     $dir = dir($baseDirectory);
     while (false !== ($entry = $dir->read())) {
         if ($entry == '.' || $entry == '..') {
             continue;
         }
         $path = getcwd() . "/{$baseDirectory}{$entry}";
         $class = Ntentan::camelize($entry) . 'Controller';
         if (file_exists("{$path}/{$class}.php")) {
             $controller = Controller::load("{$baseRoute}{$entry}", true);
             if (is_a($controller, "\\ntentan\\plugins\\wyf\\lib\\WyfController")) {
                 $permissionItem = array('type' => 'permission', 'label' => Ntentan::toSentence($entry), 'permissions' => array(), 'path' => "{$baseRoute}{$entry}");
                 foreach ($controller->getPermissions() as $permission => $description) {
                     $active = $role->getPermission($permission);
                     $permissionItem['permissions'][] = array('name' => $permission, 'description' => $description, 'active' => $active);
                 }
                 $permissionItems[] = $permissionItem;
             }
             continue;
         }
         $class = Ntentan::camelize($entry);
         if (file_exists("{$path}/{$class}.php")) {
             continue;
         }
         if (is_dir($path)) {
             $permissionItems[] = array('type' => 'link', 'label' => Ntentan::toSentence($entry), 'link' => Ntentan::getUrl("{$this->route}/set_permissions/{$id}/{$entry}"));
         }
     }
     $this->set('permission_items', $permissionItems);
     $this->set('role', (string) $role);
 }