示例#1
0
 /**
  * 返回内容区域的菜单
  */
 protected function getContentMenu()
 {
     $this->list = SC::getUserPermissionSession();
     foreach ($this->list as $key => $value) {
         if ($value['display'] == self::DISABLE_NONE) {
             unset($this->list[$key]);
         }
     }
     $this->menuTree = (array) Tree::genTree($this->list);
     $son = \App\Services\Admin\Tree::getSonKey();
     $mcaName = \App\Services\Admin\MCAManager::MAC_BIND_NAME;
     $MCA = app()->make($mcaName);
     foreach ($this->menuTree as $key => $value) {
         if (isset($value[$son]) and is_array($value[$son])) {
             foreach ($value[$son] as $skey => $svalue) {
                 if (!$MCA->matchSecondMenu($svalue['module'], $svalue['class'], $svalue['action'])) {
                     continue;
                 }
                 if (isset($svalue[$son]) and is_array($svalue[$son])) {
                     return $svalue[$son];
                 }
             }
         }
     }
     return [];
 }
示例#2
0
文件: Menu.php 项目: pfdtk/bmsys
 /**
  * 取回登录所保存的权限信息并生成树形结构
  */
 protected function generalData()
 {
     $this->list = SC::getUserPermissionSession();
     foreach ($this->list as $key => $value) {
         if ($value['display'] == self::DISABLE_NONE) {
             unset($this->list[$key]);
         }
     }
     $this->menuTree = (array) Tree::genTree($this->list);
     return $this;
 }
示例#3
0
 /**
  * return user permission
  */
 private function getUserPermission()
 {
     if (!$this->userPermission) {
         $this->userPermission = SC::getUserPermissionSession();
     }
     return $this->userPermission;
 }
示例#4
0
文件: Acl.php 项目: pfdtk/bmsys
 /**
  * 判断当前操作是不是有权限
  * 
  * @param  string  $module   模块
  * @param  string  $class    类
  * @param  string  $function 函数
  * @return boolean           是|否
  */
 public function checkIfHasPermission($module, $class, $function)
 {
     $module = (string) $module;
     $class = (string) $class;
     $function = (string) $function;
     //判断是不是超级用户
     if ($this->isSystemManager()) {
         return true;
     }
     //默认为配置文件中指定的后台模块
     if (!$module) {
         $module = '';
     }
     //是否不需要验证的操作
     if ($this->isNoNeedCheckPermission($module, $class, $function)) {
         return true;
     }
     //取回保存在session中的权限信息
     $permissionList = SC::getUserPermissionSession();
     //验证用户权限
     foreach ($permissionList as $value) {
         if ($this->matchAction($value, $module, $class, $function)) {
             return true;
         }
     }
     return false;
 }
示例#5
0
 /**
  * 对用户组进行权限设置
  * 
  * @access public
  */
 public function group()
 {
     if (Request::method() == 'POST') {
         return $this->saveGroupPermissionToDatabase();
     }
     $id = url_param_decode(Request::input('id'));
     if (!$id or !is_numeric($id)) {
         return Js::error(Lang::get('common.illegal_operation'), true);
     }
     $info = (new GroupModel())->getOneGroupById(intval($id));
     if (empty($info)) {
         return Js::error(Lang::get('common.illegal_operation'), true);
     }
     if (!(new Acl())->checkGroupLevelPermission($id, Acl::GROUP_LEVEL_TYPE_GROUP)) {
         return Js::error(Lang::get('common.account_level_deny'), true);
     }
     //取回用户组所拥有的权限列表
     $list = (array) SC::getUserPermissionSession();
     //当前所要编辑的用户组的权限,用于标识是否已经勾选
     $groupAcl = (new AccessModel())->getGroupAccessPermission(intval($id));
     $hasPermissions = array();
     foreach ($groupAcl as $key => $value) {
         $hasPermissions[] = $value['permission_id'];
     }
     //为ztree做数据准备
     $zTree = [];
     $all = [];
     foreach ($list as $key => $value) {
         $arr = ['id' => $value['id'], 'pId' => $value['pid'], 'name' => $value['name'], 'open' => true];
         if (in_array($value['id'], $hasPermissions)) {
             $arr['checked'] = true;
         }
         $zTree[] = $arr;
         $all[] = $value['id'];
     }
     $router = 'group';
     return view('admin.acl.setpermission', compact('zTree', 'id', 'info', 'router', 'all'));
 }
示例#6
0
文件: Process.php 项目: pfdtk/bmsys
 /**
  * 为权限赋予页面准备ztree插件需要的数据
  * 
  * @return array
  */
 public function prepareUserPermissionIds()
 {
     $list = SC::getUserPermissionSession();
     $all = [];
     foreach ($list as $key => $value) {
         $all[] = $value['id'];
     }
     return $all;
 }