瀏覽代碼

权限优化

huangsanjia 2 年之前
父節點
當前提交
5e8883deb6

+ 55 - 2
application/admin/controller/Entrust.php

@@ -33,6 +33,56 @@ class Entrust extends Backend
      * 因此在当前控制器中可不用编写增删改查的代码,除非需要自己控制这部分逻辑
      * 需要将application/admin/library/traits/Backend.php中对应的方法复制到当前控制器,然后进行修改
      */
+    /**
+     * 查看
+     *
+     * @return string|Json
+     * @throws \think\Exception
+     * @throws DbException
+     */
+    public function index()
+    {
+        //设置过滤方法
+        $this->request->filter(['strip_tags', 'trim']);
+        if (false === $this->request->isAjax()) {
+            return $this->view->fetch();
+        }
+        //如果发送的来源是 Selectpage,则转发到 Selectpage
+        if ($this->request->request('keyField')) {
+            return $this->selectpage();
+        }
+        [$where, $sort, $order, $offset, $limit] = $this->buildparams();
+        $user_id = Session::get('admin')['id'];
+        if ($user_id == 1){//超级管理员
+            $list = $this->model
+                ->where($where)
+                ->order($sort, $order)
+                ->paginate($limit);
+        }else{
+            $userinfo = Db::name('admin')->where('id',$user_id)->find();
+            $pidList = Db::name('company')->where('pid',$userinfo['company'])->select();
+            $map = [];
+            if (!empty($pidList)){//总公司
+                $pid = [];
+                foreach ($pidList as $key=>$value){
+                    $pid[$key] = $value['id'];
+                }
+                $map['work_unit'] = array('in',$pid);
+            }else{//分公司
+                $map['work_unit'] = $userinfo['company'];
+            }
+            $list = $this->model
+                ->where($where)
+                ->where($map)
+                ->order($sort, $order)
+                ->paginate($limit);
+        }
+
+
+        $result = ['total' => $list->total(), 'rows' => $list->items()];
+        return json($result);
+    }
+
     /**
      * 添加
      *
@@ -50,8 +100,10 @@ class Entrust extends Backend
         }
         $params['name'] = preg_replace('/\s+/','',$params['name']);//去掉所有空格
         $params['user_id'] = Session::get('admin')['id'];
-        $params['user_name'] = Session::get('admin')['username'];
-//        $params = $this->preExcludeFields($params);
+        $userinfo = Db::name('admin')->where('id',$params['user_id'])->find();
+        $params['user_name'] = $userinfo['username'];
+        $params['work_unit'] = $userinfo['company'];
+        $params['work_name'] = Db::name('company')->where('id',$userinfo['company'])->value('name');
         $is_exit = false;//默认样品编号唯一
         if ($params['is_two'] == 1){//双样
             for ($i=0;$i<2;$i++){
@@ -351,6 +403,7 @@ class Entrust extends Backend
         }
 
     }
+    //检测数据确认
     public function dataSure(){
         $params = input('id');
         if (empty($params)){

+ 15 - 0
application/admin/controller/auth/Admin.php

@@ -9,6 +9,7 @@ use fast\Random;
 use fast\Tree;
 use think\Db;
 use think\Validate;
+use \think\Session;
 
 /**
  * 管理员管理
@@ -157,6 +158,13 @@ class Admin extends Backend
             }
             $this->error(__('Parameter %s can not be empty', ''));
         }
+        $user_id = Session::get('admin')['id'];
+        $company = Db::name('company')->where('user_id',$user_id)->select();
+        $list = [];
+        foreach ($company as $key=>$value){
+            $list[$value['id']] = $value['name'];
+        }
+        $this->view->assign("company", $list);
         return $this->view->fetch();
     }
 
@@ -230,6 +238,13 @@ class Admin extends Backend
         foreach ($grouplist as $k => $v) {
             $groupids[] = $v['id'];
         }
+        $user_id = Session::get('admin')['id'];
+        $company = Db::name('company')->where('user_id',$user_id)->select();
+        $list = [];
+        foreach ($company as $key=>$value){
+            $list[$value['id']] = $value['name'];
+        }
+        $this->view->assign("company", $list);
         $this->view->assign("row", $row);
         $this->view->assign("groupids", $groupids);
         return $this->view->fetch();

+ 6 - 0
application/admin/view/auth/admin/add.html

@@ -6,6 +6,12 @@
             {:build_select('group[]', $groupdata, null, ['class'=>'form-control selectpicker', 'multiple'=>'', 'data-rule'=>'required'])}
         </div>
     </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">所属公司</label>
+        <div class="col-xs-12 col-sm-8">
+            {:build_select('row[company]', $company, null, ['class'=>'form-control',  'data-rule'=>'required'])}
+        </div>
+    </div>
     <div class="form-group">
         <label for="username" class="control-label col-xs-12 col-sm-2">{:__('Username')}:</label>
         <div class="col-xs-12 col-sm-8">

+ 6 - 0
application/admin/view/auth/admin/edit.html

@@ -6,6 +6,12 @@
             {:build_select('group[]', $groupdata, $groupids, ['class'=>'form-control selectpicker', 'multiple'=>'', 'data-rule'=>'required'])}
         </div>
     </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">所属公司</label>
+        <div class="col-xs-12 col-sm-8">
+            {:build_select('row[company]', $company, $row['company'], ['class'=>'form-control',  'data-rule'=>'required'])}
+        </div>
+    </div>
     <div class="form-group">
         <label for="username" class="control-label col-xs-12 col-sm-2">{:__('Username')}:</label>
         <div class="col-xs-12 col-sm-8">

+ 1 - 1
application/admin/view/entrust/edit.html

@@ -30,7 +30,7 @@
             <select class="form-control select" name="row[company]" >
                 {foreach name="company" item="vo"}
                 <label for="row[status]-{$key}">
-                    <option class="form-control"  value="{$vo}" {if condition="$vo eq $row.company"}selected{/if} {if condition="$vo eq '亚新'"}disabled{/if}>{$vo}</option>
+                    <option class="form-control"  value="{$vo}" {if condition="$vo eq $row.company"}selected{/if}>{$vo}</option>
                 </label>
                 {/foreach}
             </select>