assign('breadcrumb1','系统'); $this->assign('breadcrumb2','权限管理'); } /** * 初始化 * * */ public function index(){ // 查询列表数据 $list = DB::table('auth_group')->select()->paginate(config('page_num',10))->appends(request()->all()); // 分配数据 $this->assign('list',$list); // 加载模板 return $this->fetch(); } /** * 新增 * * */ public function add(Request $request){ if(request()->isMethod('post')){ // 验证参数 $request->scene('add')->validate(); // 接收参数 $data['title'] = request('title',''); $data['description'] = request('description',''); $data['group_pid'] = request('group_pid',0); // 返回结果 $result = DB::table('auth_group')->insert($data); // 如果状态停用 if( !$result ) return json_send(['code'=>'error','msg'=>'添加失败']); // 结果 return json_send(['code'=>'success','msg'=>'添加成功','action'=>'add']); } // 查询用户组 $group = DB::table('auth_group')->whereNotIn('id',explode(',',config('CUSTOM_GROUP')))->select(['id','title'])->get()->toArray(); // 错误告知 if( !$group ) $this->error('请先添加用户组'); $this->assign('crumbs','新增'); $this->assign('group',$group); return $this->fetch(); } /** * 编辑 * * */ public function edit(Request $request){ if(request()->isMethod('post')){ // 验证参数 $request->scene('edit')->validate(); // 接收参数 $id = request('id',0); $data['title'] = request('title',''); $data['description'] = request('description',''); $data['group_pid'] = request('group_pid',0); // 返回结果 $result = DB::table('auth_group')->where(['id'=>$id])->update($data); // 如果状态停用 if( !$result ) return json_send(['code'=>'error','msg'=>'编辑失败']); // 结果 return json_send(['code'=>'success','msg'=>'编辑成功','action'=>'edit']); } $group = DB::table('auth_group')->find((int)request('id')); $merge_group = explode(',',config('CUSTOM_GROUP')); array_push($merge_group,$group['id']); //dd($merge_group); // 查询用户组 $groups = DB::table('auth_group')->where(['group_pid'=>0])->whereNotIn('id',$merge_group)->select(['id','title'])->get()->toArray(); // 错误告知 if( !$groups ) $this->error('请先添加用户组'); $this->assign('group',$group); $this->assign('crumbs','编辑'); $this->assign('groups',$groups ); return $this->fetch(); } /** * 删除 * * */ public function del(Request $request){ // 验证参数 $request->scene('del')->validate(); // 接收参数 $id = request('id',0); // 执行删除 $result = DB::table('auth_group')->delete($id); // 错误告知 if( !$result ) return json_send(['code'=>'error','msg'=>'删除失败']); // 结果 return json_send(['code'=>'success','msg'=>'删除成功']); } /** * 授权 * * */ public function access(Request $request){ // 验证参数 $request->scene('del')->validate(); // 如果是post if(request()->isMethod('post')){ // 接收参数 $data['rules'] = (array) request('rules',[]); // 权限组Id $group_id = (int) request('id',0); // 删除权限 DB::table('auth_rule')->where(['group_id'=>$group_id])->delete(); // 存在权限 if( isset($data['rules']) ){ // 排序 sort($data['rules']); // 切割 $data['rules'] = implode( ',' , array_unique($data['rules'])); } // 修改权限 $result = DB::table('auth_group')->where(['id'=>$group_id])->update($data); // 告知结果 if( !$result ) return json_send(['code'=>'success','msg'=>'权限组修改失败','action'=>'edit']); // 权限组菜单 $group_menu = DB::table('auth_group')->find($group_id); // 菜单ID $menu_id = explode(',', $group_menu['rules']); // 获得菜单列表 $menu_list = DB::table('menu')->get()->toArray(); // 循环菜单ID foreach ($menu_id as $v) { // 循环菜单列表 foreach ($menu_list as $v1) { // 如果对应的菜单 if( $v == $v1['id'] ){ // 组合菜单权限数据 $m['menu_id'] = $v; $m['group_id'] = $group_id; $m['name'] = !empty($v1['url']) ? $v1['url'] : ''; // 写入菜单权限规则表 DB::table('auth_rule')->insert($m); } } } // 告知结果 return json_send(['code'=>'success','msg'=>'编辑成功','action'=>'edit']); } // 接收参数 $id = request('id',0); // 获取菜单 $menu = DB::table('menu')->orderBy('sort_order')->get()->toArray(); // 获取规则 $rules = DB::table('auth_group')->select('rules')->find($id); // 树形 $menu = array_sort(list_to_tree($menu,'id','pid','child',0),'module',SORT_ASC); // 权限菜单 $this->assign('access_menu',$menu); // 规则 $this->assign('rules',$rules); // 加载模板 return $this->fetch(); } /** * 状态 * * */ public function set_status(Request $request){ // 验证参数 $request->scene('set_status')->validate(); // 接收参数 $id = request('id',0); $status = request('status',0); // 执行删除 $result = DB::table('auth_group')->where(['id'=>$id])->update(['status'=>$status]); // 错误告知 if( !$result ) return json_send(['code'=>'error','msg'=>'操作失败','path'=>'']); // 结果 return json_send(['code'=>'success','msg'=>'操作成功','path'=>'']); } } ?>