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; } } } }
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(); }