Exemplo n.º 1
0
 function init($autorization)
 {
     if ($autorization->needAutorization() === true) {
         $type = Project::getUser()->getDbUser()->getUserType();
     } else {
         $this->_guest = true;
         $type = new UserTypeModel();
     }
     // TODO:: need adding cache
     $right_model = new UserRightModel();
     $list = $right_model->loadByUserType($type->id);
     foreach ($list as $item) {
         $controller_id = (int) $item['controller_id'];
         $action_id = (int) $item['action_id'];
         $subaction_id = (int) $item['subaction_id'];
         if (!isset($this->_accessList[$controller_id])) {
             $this->_accessList[$controller_id] = array();
         }
         if (!isset($this->_accessList[$controller_id][$action_id]) && $subaction_id === 0 && (int) $item['access'] > 0) {
             $this->_accessList[$controller_id][$action_id] = true;
         }
         if ($subaction_id > 0) {
             if (!isset($this->_subactions[$action_id])) {
                 $this->_subactions[$action_id] = array();
             }
             if ((int) $item['access'] > 0) {
                 $this->_subactions[$action_id][$subaction_id] = true;
             }
         }
     }
 }
Exemplo n.º 2
0
 function ChangeAccessAction()
 {
     $request = Project::getRequest();
     $group_model = new UserTypeModel();
     $group_data = $group_model->load($request->gid);
     if (!count($group_data)) {
         // Bad request:: group not exists
         return;
     }
     $controller_model = new ControllerModel();
     $controller_data = $controller_model->load($request->cid);
     if (!count($controller_data)) {
         // Bad request:: controller not exists
         return;
     }
     $action_model = new ActionModel();
     $action_data = $action_model->load($request->id);
     if (!count($action_data)) {
         // Bad request:: action not exists
         return;
     }
     $right_model = new UserRightModel();
     $right_data = $right_model->loadByTypeControllerAction($request->gid, $request->cid, $request->id);
     if (!count($right_data)) {
         $right_model->user_type_id = $request->gid;
         $right_model->controller_id = $request->cid;
         $right_model->action_id = $request->id;
         $right_model->access = 1;
     } else {
         $right_model->access = 1 - (int) $right_model->access;
     }
     $right_model->save();
 }