|
@@ -6,41 +6,41 @@ use Illuminate\Support\Facades\DB;
|
|
|
|
|
|
/**
|
|
/**
|
|
* 权限管理
|
|
* 权限管理
|
|
- *
|
|
|
|
|
|
+ *
|
|
* @author 刘相欣
|
|
* @author 刘相欣
|
|
*
|
|
*
|
|
*/
|
|
*/
|
|
class AuthManager extends Auth{
|
|
class AuthManager extends Auth{
|
|
-
|
|
|
|
- /**
|
|
|
|
- * 初始化
|
|
|
|
- *
|
|
|
|
- * */
|
|
|
|
- protected function _initialize(){
|
|
|
|
- parent::_initialize();
|
|
|
|
- $this->assign('breadcrumb1','系统');
|
|
|
|
- $this->assign('breadcrumb2','权限管理');
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * 初始化
|
|
|
|
- *
|
|
|
|
- * */
|
|
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 初始化
|
|
|
|
+ *
|
|
|
|
+ * */
|
|
|
|
+ protected function _initialize(){
|
|
|
|
+ parent::_initialize();
|
|
|
|
+ $this->assign('breadcrumb1','系统');
|
|
|
|
+ $this->assign('breadcrumb2','权限管理');
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 初始化
|
|
|
|
+ *
|
|
|
|
+ * */
|
|
public function index(){
|
|
public function index(){
|
|
$mp = [];
|
|
$mp = [];
|
|
- $session = session('userRule');
|
|
|
|
- if ($session){
|
|
|
|
- $mp['auth_group.company_id'] = $session['company_id'];
|
|
|
|
- $mp['auth_group.menu_type'] = $session['menu_type'];
|
|
|
|
- if ($session['business_id']){
|
|
|
|
- $mp['auth_group.business_id'] = $session['business_id'];
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
if(!in_array(admin('uid'), explode(',', config('administrator')))){
|
|
if(!in_array(admin('uid'), explode(',', config('administrator')))){
|
|
$mp['auth_group.type'] = 1;
|
|
$mp['auth_group.type'] = 1;
|
|
|
|
+ $session = session('userRule');
|
|
|
|
+ if ($session){
|
|
|
|
+ $mp['auth_group.company_id'] = $session['company_id'];
|
|
|
|
+ $mp['auth_group.menu_type'] = $session['menu_type'];
|
|
|
|
+ if ($session['business_id']){
|
|
|
|
+ $mp['auth_group.business_id'] = $session['business_id'];
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
- // 查询列表数据
|
|
|
|
- $list = DB::table('auth_group')
|
|
|
|
|
|
+ // 查询列表数据
|
|
|
|
+ $list = DB::table('auth_group')
|
|
->join('company', 'company.id', '=', 'auth_group.company_id')
|
|
->join('company', 'company.id', '=', 'auth_group.company_id')
|
|
->where($mp)
|
|
->where($mp)
|
|
->select('auth_group.*', 'company.name as company_name')
|
|
->select('auth_group.*', 'company.name as company_name')
|
|
@@ -52,23 +52,23 @@ class AuthManager extends Auth{
|
|
}
|
|
}
|
|
$list[$k] = $v;
|
|
$list[$k] = $v;
|
|
}
|
|
}
|
|
- // 分配数据
|
|
|
|
- $this->assign('list',$list);
|
|
|
|
- // 加载模板
|
|
|
|
- return $this->fetch();
|
|
|
|
- }
|
|
|
|
|
|
+ // 分配数据
|
|
|
|
+ $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','');
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 新增
|
|
|
|
+ *
|
|
|
|
+ * */
|
|
|
|
+ public function add(Request $request){
|
|
|
|
+ if(request()->isMethod('post')){
|
|
|
|
+ // 验证参数
|
|
|
|
+ $request->scene('add')->validate();
|
|
|
|
+ // 接收参数
|
|
|
|
+ $data['title'] = request('title','');
|
|
|
|
+ $data['description'] = request('description','');
|
|
$session = session('userRule');
|
|
$session = session('userRule');
|
|
if ($session){
|
|
if ($session){
|
|
$data['company_id'] = $session['company_id'];
|
|
$data['company_id'] = $session['company_id'];
|
|
@@ -78,144 +78,151 @@ class AuthManager extends Auth{
|
|
}
|
|
}
|
|
}
|
|
}
|
|
$data['type'] = 1;
|
|
$data['type'] = 1;
|
|
- // 返回结果
|
|
|
|
- $result = DB::table('auth_group')->insert($data);
|
|
|
|
- // 如果状态停用
|
|
|
|
- if( !$result ) return json_send(['code'=>'error','msg'=>'添加失败']);
|
|
|
|
- // 结果
|
|
|
|
- return json_send(['code'=>'success','msg'=>'添加成功','action'=>'add']);
|
|
|
|
- }
|
|
|
|
- $this->assign('crumbs','新增');
|
|
|
|
- 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','');
|
|
|
|
- // 返回结果
|
|
|
|
- $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'));
|
|
|
|
|
|
+ // 返回结果
|
|
|
|
+ $result = DB::table('auth_group')->insert($data);
|
|
|
|
+ // 如果状态停用
|
|
|
|
+ if( !$result ) return json_send(['code'=>'error','msg'=>'添加失败']);
|
|
|
|
+ // 结果
|
|
|
|
+ return json_send(['code'=>'success','msg'=>'添加成功','action'=>'add']);
|
|
|
|
+ }
|
|
|
|
+ $this->assign('crumbs','新增');
|
|
|
|
+ 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','');
|
|
|
|
+ // 返回结果
|
|
|
|
+ $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']);
|
|
|
|
- $this->assign('group',$group);
|
|
|
|
- $this->assign('crumbs','编辑');
|
|
|
|
- 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'=>'删除成功']);
|
|
|
|
- }
|
|
|
|
|
|
+ $merge_group = explode(',',config('CUSTOM_GROUP'));
|
|
|
|
+ array_push($merge_group,$group['id']);
|
|
|
|
+ $this->assign('group',$group);
|
|
|
|
+ $this->assign('crumbs','编辑');
|
|
|
|
+ return $this->fetch();
|
|
|
|
+ }
|
|
|
|
|
|
- /**
|
|
|
|
- * 授权
|
|
|
|
- *
|
|
|
|
- * */
|
|
|
|
- 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 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);
|
|
|
|
+ // 获取菜单
|
|
|
|
+ // 如果是超管
|
|
|
|
+ if( in_array(admin('uid'), explode(',', config('administrator')))){
|
|
|
|
+ // 获取菜单
|
|
|
|
+ $menu = DB::table('menu')->orderBy('sort_order')->get()->toArray();
|
|
|
|
+ }else{
|
|
|
|
+ // 仅获取允许的菜单
|
|
|
|
+ $menu = DB::table('menu')->join('auth_rule','menu.id','=','auth_rule.menu_id')->whereIn('auth_rule.group_id',admin('group_id'))->orderBy('sort_order')->get(['menu.*'])->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'=>'']);
|
|
|
|
- }
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 状态
|
|
|
|
+ *
|
|
|
|
+ * */
|
|
|
|
+ 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'=>'']);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
?>
|
|
?>
|