/**
  * 是否有权限
  */
 public static function checkRight($thisRoute = null)
 {
     // 用户资源
     $userData = CSession::get('user');
     if ($userData['groupId'] == 1) {
         return true;
     }
     $userRightList = isset($userData['rightAll']) ? $userData['rightAll'] : array();
     // 附加公共资源
     array_push($userRightList, 'system@welcome');
     array_push($userRightList, 'system@navList');
     array_push($userRightList, 'system@addNav');
     array_push($userRightList, 'system@addNavHandle');
     array_push($userRightList, 'system@ajaxAddNav');
     array_push($userRightList, 'system@editNav');
     array_push($userRightList, 'system@editNavHandle');
     array_push($userRightList, 'system@delNav');
     array_push($userRightList, 'system@changeMyPassword');
     array_push($userRightList, 'system@changeMyPassHandle');
     array_push($userRightList, 'adminRole@messageCenterForClient');
     array_push($userRightList, 'system@seeHelp');
     // 转小写
     foreach ($userRightList as $key => $val) {
         $userRightList[$key] = strtolower($val);
     }
     // 获取当前请求的路由
     if ($thisRoute == null) {
         $route = CRequest::getController() . '@' . str_replace(CConfig::getInstance()->load('ACTION_PREFIX'), '', CRequest::getAction());
     } else {
         $route = $thisRoute;
     }
     return in_array(strtolower($route), $userRightList);
 }
 public function display($templateName = '', $isCache = false, $num = '')
 {
     if (empty($templateName)) {
         $templateName = CRequest::getController() . '/' . str_replace(CConfig::getInstance()->load('ACTION_PREFIX'), '', CRequest::getAction());
     }
     parent::display($templateName, $isCache, $num);
 }
Ejemplo n.º 3
0
 /**
  * 设置基础数据
  */
 public static function setInitData($viewObject)
 {
     $prefix = CConfig::getInstance()->load('ACTION_PREFIX');
     $viewObject->assign('thisUrl', urlencode(CRequest::getUrl()));
     $viewObject->assign('base64Url', CEncrypt::safe_b64encode(CRequest::getUrl()));
     $viewObject->assign('controller', CRequest::getController());
     $viewObject->assign('action', CRequest::getAction());
     $viewObject->assign('actionPre', $prefix);
     $viewObject->assign('ip', CRequest::getIp());
     $viewObject->assign('module', CRequest::getModule());
     $viewObject->assign('time', time());
     $viewObject->assign('sessionID', session_id());
     $viewObject->assign('path', CRequest::getPath());
     $viewObject->assign('staticUrl', CConfig::getInstance('site')->load('staticUrl'));
     $viewObject->assign('uploadStaticUrl', CConfig::getInstance('site')->load('uploadStaticUrl'));
     $viewObject->assign('siteName', CConfig::getInstance('site')->load('siteName'));
 }
Ejemplo n.º 4
0
 /**
  * 编辑角色权限
  */
 public function Action_editRole()
 {
     $id = $this->Args('id', 'int');
     if ($_POST) {
         // 变动参数
         $addData['rightList'] = implode(',', (array) $this->Args('rights', 'array', 'post', true));
         // 产品 渠道
         $addData['parent_id'] = $this->Args('parent_id', 'int');
         if ($addData['parent_id'] == 0) {
             // 判断是否是超级管理员
             $userData = CSession::get('user');
             if ($userData['groupData']['gid'] != 1) {
                 $this->displayAjax(false, '您不是超级管理员账户,您无法创建顶级角色分组');
             }
         }
         $status = CModel::factory('adminRoleModel')->update($addData, array('gid' => $id));
         if (false == $status) {
             $errorMessage = CDatabase::getDatabase()->errorInfo();
             $errorMessage = isset($errorMessage[2]) ? $errorMessage[2] : '';
         }
         $this->assignAjax('redirect_url', $this->createUrl('index', CRequest::getController()));
         $this->displayAjax(true, '更新成功');
     }
     $list = CModel::factory('adminRoleModel')->getCategoryTreeList();
     // 过滤起可控的管理角色
     $list = CModel::factory('adminRoleModel')->filterUserRole($list);
     $rightData = CModel::factory('adminRightsModel')->getAllRights();
     // var_dump($rightData);
     $rightArray = array();
     $rightUndefined = array();
     foreach ($rightData as $key => $item) {
         preg_match('/\\[.*?\\]/', $item['name'], $localPre);
         if (isset($localPre[0])) {
             $arrayKey = trim($localPre[0], '[]');
             $rightArray[$arrayKey][] = $item;
         } else {
             $rightUndefined[] = $item;
         }
     }
     // 获取该角色信息
     $data = CModel::factory('adminRoleModel')->getUserRole($id);
     if ($data) {
         $data['rightList'] = explode(',', $data['rightList']);
     }
     // 按照权限过滤资源表
     $rightArray = CModel::factory('adminRightsModel')->filterRight($rightArray);
     $this->assign('list', $list);
     $this->assign('id', $id);
     $this->assign('data', $data);
     $this->assign('rightArray', $rightArray);
     // []中匹配正确的权限资源
     $this->assign('rightUndefined', $rightUndefined);
     // 未被定义的权限资源
     $this->display();
 }