Bläddra i källkod

管理员权限

Jonlin 6 år sedan
förälder
incheckning
927a017c02

+ 19 - 13
application/admin/controller/Admins.php

@@ -213,26 +213,31 @@ class Admins extends Base
     // 编辑权限组
     public function editpower()
     {
+        // 权限组id
+        $id = input('param.id/d');
         if (request()->isAjax()) {
 
+            $menu = db('menu')->select();
             $param = input('post.');
-            //return $param;
-
-            // 检测用户修改的权限组是否重复
-            $has = db('admingroup')->where('group_name', $param['group_name'])->where('group_id', '<>', $param['group_id'])->find();
-            if (!empty($has)) {
-                return json(['code' => -1, 'data' => '', 'msg' => '该权限组已经存在']);
+            $data=array();
+            for($i=0;$i<count($menu);$i++){
+                if($param[$menu[$i]['name_cn']] != 0){
+                    $data[]  = [
+                        'group_id' => $param['group_id'],
+                        'menu_id' => $param[$menu[$i]['name_cn']],
+                    ] ;
+                }
             }
-
-            try {
-                db('admingroup')->where('group_id', $param['group_id'])->update($param);
-            } catch (\Exception $e) {
-                return json(['code' => -2, 'data' => '', 'msg' => $e->getMessage()]);
+            if(!empty($data)){
+                try {
+                    db('admingrouppower')->where('group_id',$param['group_id'])->delete();
+                    db('admingrouppower')->insertAll($data);
+                } catch (\Exception $e) {
+                    return json(['code' => -2, 'data' => '', 'msg' => $e->getMessage()]);
+                }
             }
-
             return json(['code' => 1, 'data' => '', 'msg' => '编辑权限组成功']);
         }
-        $id = input('param.id/d');
         $menu = db('menu')->where('p_id',0)->select();
         $menulist = db('menu')->where('p_id','<>',0)->select();
         $adminmenu = db('admingrouppower')->where('group_id', $id)->select();
@@ -268,6 +273,7 @@ class Admins extends Base
 
         $this->assign([
             'info' => $menu,
+            'id' => $id,
             'status' => config('kf_status')
         ]);
         return $this->fetch();

+ 3 - 2
application/admin/controller/Base.php

@@ -10,8 +10,9 @@ class Base extends Controller
         if (!session('user_id')) {
             $this->redirect('admin/login/index');
         }
-        $menu = db('menu')->where('p_id',0)->select();
-        $menulist = db('menu')->where('p_id','<>',0)->select();
+        $admin = db('admins')->where('id',session('user_id'))->find();
+        $menu = db('menu')->alias('a')->join('admingrouppower b','a.id=b.menu_id')->field('a.id,a.name_cn,a.name_en,a.p_id,a.url,a.ico')->where('b.group_id',$admin['group_id'])->where('a.p_id',0)->select();
+        $menulist = db('menu')->alias('a')->join('admingrouppower b','a.id=b.menu_id')->field('a.id,a.name_cn,a.name_en,a.p_id,a.url,a.ico')->where('b.group_id',$admin['group_id'])->where('a.p_id','<>',0)->select();
         for($i=0;$i<count($menu);$i++){
             for($j=0;$j<count($menulist);$j++){
                 if($menu[$i]['id'] == $menulist[$j]['p_id']){

+ 21 - 8
application/admin/view/admins/editpower.html

@@ -22,23 +22,36 @@
 <body class="gray-bg">
 <div class="wrapper wrapper-content animated fadeInRight">
     <div class="row">
-        <div class="col-sm-8" style="width: 75%;">
+        <div class="col-sm-8">
             <div class="ibox float-e-margins">
                 <div class="ibox-title">
                     <h5>编辑权限组</h5>
                 </div>
                 <div class="ibox-content">
-                    <form class="form-horizontal m-t layui-form" id="commentForm" method="post" action="{:url('admins/editpower')}">
-                        <h5>选择权限:</h5>
+                    <!--<form class="form-horizontal m-t layui-form" id="commentForm" method="post" action="{:url('admins/editpower')}">-->
+                    <form class="form-horizontal m-t" id="commentForm" method="post" action="{:url('admins/editpower')}">
+                        <h4>选择权限:</h4><br>
+                        <input type="text" style="display:none;" name="group_id" value="{$id}">
                         {if !empty($info)}
                         {foreach name="info" item="vo" key="key"}
-                        <input type="checkbox" name="{$vo['id']}" title="{$vo['name_cn']}" {if$vo['power']==1} checked {/if} >
-                            {foreach name="$vo['menulist']" item="vo" key="key"}
-                            <input type="checkbox" name="{$vo['id']}" title="{$vo['name_cn']}" {if$vo['power']==1} checked {/if} >
-                            {/foreach}
-                        <br>
+                        <div class="form-group" style="margin:5px 20px;">
+                            <input type="hidden" name="{$vo['name_cn']}" value="0">
+                            <input type="checkbox" name="{$vo['name_cn']}" value="{$vo['id']}" {if$vo['power']==1} checked {/if} ><span style="font-weight: 600;">{$vo['name_cn']}:</span><br>
+                            <div style="margin:5px 20px;">
+                                {foreach name="$vo['menulist']" item="vo" key="key"}
+                                <input type="hidden" name="{$vo['name_cn']}" value="0">
+                                <input class="menulist" type="checkbox" name="{$vo['name_cn']}" value="{$vo['id']}" {if$vo['power']==1} checked {/if} >{$vo['name_cn']}
+                                {/foreach}
+                            </div>
+                        </div>
                         {/foreach}
                         {/if}
+                        <div class="form-group">
+                            <div class="col-sm-4 col-sm-offset-6">
+                                <a class="layui-btn layui-btn-sm lay-btn-diy" href="javascript:history.go(-1)" style="background-color:#1E9FFF;margin-bottom: 5px;height: 35px;line-height: 35px;">返回</a>
+                                <button class="btn btn-primary" type="submit">提交</button>
+                            </div>
+                        </div>
                     </form>
                 </div>
             </div>