Beispiel #1
0
 public function __construct()
 {
     $this->_rules = Modules_Core_Services_Rule::getAclRules();
     $request = Gio_Core_Request::getInstance();
     $phpSessionId = $request->getPost('PHPSESSID');
     $session = Gio_Core_Session::getSessionById($phpSessionId);
     $json = new Services_JSON();
     $user = null == $session || null == $session['data'] ? null : $json->decode($session['data']);
     $this->_user = $user;
 }
Beispiel #2
0
 public function deleteAction()
 {
     $this->setNoRender();
     $this->disableLayout();
     $request = $this->getRequest();
     if (!$request->isPost()) {
         return;
     }
     $roleId = $request->getPost('role_id');
     $role = Modules_Core_Services_Role::getById($roleId);
     $condition = array('role_id' => $roleId);
     if (null == $role || Modules_Core_Services_User::count($condition) > 0) {
         $this->getResponse()->setBody('RESULT_NOT_OK');
         return;
     }
     /**
      * Delete role's rules
      */
     Modules_Core_Services_Rule::deleteByRole($roleId);
     /**
      * Delete role
      */
     Modules_Core_Services_Role::delete($roleId);
     $this->getResponse()->setBody('RESULT_OK');
 }
Beispiel #3
0
 public function roleAction()
 {
     $request = $this->getRequest();
     $roleId = $request->getParam('role_id');
     $role = Modules_Core_Services_Role::getById($roleId);
     if (null == $role) {
         return;
     }
     $this->view->role = $role;
     $act = $request->getParam('act');
     if ($request->isPost()) {
         $this->setNoRender();
         $this->disableLayout();
         $mod = $request->getPost('mod');
         $this->view->mod = $mod;
         $controllers = Modules_Core_Services_Action::getDbActionsByModule($mod);
         switch ($act) {
             case 'save':
                 /**
                  *	Reset rule for user 
                  */
                 Modules_Core_Services_Rule::reset('role', $role['role_id'], $mod);
                 $actions = $request->getPost('actions');
                 if ($controllers) {
                     foreach ($controllers as $index => $controller) {
                         if ($controller['actions']) {
                             foreach ($controller['actions'] as $indexAction => $controllerAction) {
                                 $allow = 0;
                                 if ($actions) {
                                     foreach ($actions as $action) {
                                         if ($mod . '_' . $controller['controller_id'] . '_' . $controllerAction['action_id'] == $action) {
                                             $allow = 1;
                                         }
                                     }
                                 }
                                 $rule = array('module_id' => $mod, 'controller_id' => $controller['controller_id'], 'action_id' => $controllerAction['action_id'], 'object_type' => 'role', 'object_id' => $role['role_id'], 'allow' => $allow);
                                 $ruleId = Modules_Core_Services_Rule::add($rule);
                             }
                         }
                     }
                 }
                 $this->getResponse()->setBody('RESULT_OK');
                 return;
                 break;
             default:
                 $dbRoleRules = Modules_Core_Services_Rule::getRules('role', $role['role_id']);
                 $dbRules = $dbRoleRules;
                 $this->view->dbRules = $dbRules;
                 $this->view->controllers = $controllers;
                 $viewFile = ROOT_DIR . DS . 'templates' . DS . $this->view->APP_TEMPLATE . DS . 'modules' . DS . 'core' . DS . 'permission' . DS . 'role.ajax.phtml';
                 $response = $this->view->render($viewFile);
                 $this->getResponse()->setBody($response);
                 return;
                 break;
         }
     }
     $modules = Modules_Core_Services_Module::getModulesInstalled();
     /**
      * Add module core to the top array 
      */
     $modules = array_pad($modules, -count($modules) - 1, array('module_id' => 'core'));
     $this->view->modules = $modules;
 }