| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227 |
- <?php
- // +----------------------------------------------------------------------
- // | Description: 规则
- // +----------------------------------------------------------------------
- // | Author: Michael_xu | gengxiaoxu@5kcrm.com
- // +----------------------------------------------------------------------
-
- namespace app\admin\controller;
-
- use think\Hook;
- use think\Request;
- use think\Db;
-
- class Rules extends ApiCommon
- {
- /**
- * 用于判断权限
- * @permission 无限制
- * @allow 登录用户可访问
- * @other 其他根据系统设置
- **/
- public function _initialize()
- {
- $action = [
- 'permission'=>[''],
- 'allow'=>['index','groupauth','upgroupauth','getgroupauth','groupauthid']
- ];
- Hook::listen('check_auth',$action);
- $request = Request::instance();
- $a = strtolower($request->action());
- if (!in_array($a, $action['permission'])) {
- parent::_initialize();
- }
-
- $m = $this->m;
- $c = $this->c;
- $a = $this->a;
- }
-
- public function index()
- {
- $ruleModel = model('Rule');
- $param = $this->param;
- $data = $ruleModel->getDataList($param);
- return resultArray(['data' => $data]);
- }
-
- /**
- * 新建规则
- * @param
- * @return
- */
- public function save()
- {
- $ruleModel = model('Rule');
- $param = $this->param;
- $data = $ruleModel->createData($param);
- if (!$data) {
- return resultArray(['error' => $ruleModel->getError()]);
- }
- return resultArray(['data' => '添加成功']);
- }
-
- /**
- * 编辑规则
- * @param
- * @return
- */
- public function update()
- {
- $ruleModel = model('Rule');
- $param = $this->param;
- $data = $ruleModel->updateDataById($param, $param['id']);
- if (!$data) {
- return resultArray(['error' => $ruleModel->getError()]);
- }
- return resultArray(['data' => '编辑成功']);
- }
-
- /**
- * 配置角色查看范围列表
- * @author zjf
- */
- public function groupauth()
- {
- $param = $this->param;
-
- $data = ['0' => ['name' => '系统管理角色','pid' => 1],'1' => ['name' => '办公管理角色','pid' => 6],'2' => ['name' => '客户管理角色','pid' => 2],'3' => ['name' => '项目管理角色','pid' => '9']];
- $list = db('admin_group')->field('id, pid, title')->select();
- // $userInfo=$this->userInfo;
- $authList = db('admin_group_auth')->where('group_id', $param['group_id'])->column('auth_group_id');
- foreach ($data as $key => $value) {
- foreach ($list as $k => $v) {
- $v['is_true'] = in_array($v['id'], $authList) ? 1 : 0;
-
- if($v['pid'] == $value['pid']){
- if($v['id']==1){
- continue;
- }elseif($v['id']==2){
- continue;
- }else{
- $data[$key]['item'][] = $v;
- }
-
- }
- }
- }
-
- return resultArray(['data' => $data]);
- }
-
- /**
- * 配置角色查看范围列表
- * @author zjf
- */
- public function groupauthid()
- {
- $param = $this->param;
-
- $authList = db('admin_group_auth')->where('group_id', $param['group_id'])->column('auth_group_id');
-
- return resultArray(['data' => array_map('intval', $authList)]);
- }
-
- /**
- * 编辑配置角色查看范围
- */
- public function upgroupauth()
- {
- $param = $this->param;
- $group_id = $param['group_id'];
- $auth_group_id = $param['auth_group_id'];
-
- $data = [];
- foreach ($auth_group_id as $key => $value) {
- $data[] = [
- 'group_id' => $param['group_id'],
- 'auth_group_id' => $value
- ];
- }
-
- // 启动事务
- Db::startTrans();
- try{
- db('admin_group_auth')->where('group_id', $param['group_id'])->delete();
- db('admin_group_auth')->insertAll($data);
- // 提交事务
- Db::commit();
- return resultArray(['data' => '编辑成功']);
- } catch (\Exception $e) {
- // 回滚事务
- Db::rollback();
- return resultArray(['data' => '编辑失败']);
- }
- }
-
- /**
- * 配置角色查看范围列表
- * @author zjf
- */
- public function getgroupauth()
- {
- $userInfo = $this->userInfo;
- $userId = $userInfo['id'];
-
- $groupIds = db('admin_access')->where('user_id', $userId)->column('group_id');
- $rules = db('admin_group')->where('id', 'in', $groupIds)->column('rules');
-
- $arr = [];
- foreach ($rules as $key => $value) {
- if($arr){
- $arr = array_merge(explode(",", trim($value, ",")), $arr);
- }else{
- $arr = explode(",", trim($value, ","));
- }
- }
- $data = ['0' => ['name' => '系统管理角色','pid' => 1],'1' => ['name' => '办公管理角色','pid' => 6],'2' => ['name' => '客户管理角色','pid' => 2],'3' => ['name' => '项目管理角色','pid' => '9']];
-
- # 角色权限查看 配置范围对应id
- $rule_authority_id = db('admin_rule')->where(['title' => '角色权限设置', 'name' => 'update'])->value('id');
- if(!in_array($rule_authority_id, $arr) && $userId != 1){
- $auth_group_ids = db('admin_group_auth')->where('group_id', 'in', $groupIds)->column('auth_group_id');
- $list = db('admin_group')->where('id', 'in', $auth_group_ids)->select();
- $arrData = [];
- foreach ($data as $key => $value) {
- $item = [];
- foreach ($list as $k => $v) {
- if($v['pid'] == $value['pid']){
-
- if($v['pid'] == $value['pid']){
- if($userId!=1 && $v['id']==1){
- continue;
- }else{
- $item[] = $v;
- }
- }
- }
- }
- $items = [];
- if(!empty($item)){
- $items = [
- 'name' => $value['name'],
- 'pid' => $value['pid'],
- 'list' => $item,
- ];
- $arrData[] = $items;
- }
- }
- return resultArray(['data' => $arrData]);
- }else{
- $list = db('admin_group')->select();
- foreach ($data as $key => $value) {
- foreach ($list as $k => $v) {
- if($v['pid'] == $value['pid']){
- if($v['id']==1){
- continue;
- }else{
- $data[$key]['list'][] = $v;
- }
- }
- }
- }
- return resultArray(['data' => $data]);
- }
- }
- }
-
|