wugg 8 months ago
parent
commit
5fdaaea126
3 changed files with 24 additions and 4 deletions
  1. 22 2
      app/admin/controller/Base.php
  2. 1 1
      app/admin/controller/Menu.php
  3. 1 1
      app/user/model/CompanyItem.php

+ 22 - 2
app/admin/controller/Base.php

@@ -41,6 +41,10 @@ class Base extends BaseController
    	  	if($this->roleid==='') throw new \Exception( '没有该公司的角色','101');
    	   }
    }
+   /**校验所有权限
+   *合并共享 及分享出去的权限
+   * @return array
+   */
    public function checkRole(){
       $action = [
                       'action_conllect'=>'',
@@ -63,17 +67,33 @@ class Base extends BaseController
           if(!$share->isEmpty()){
               $share->each(function ($item) use (&$action) {
                     switch ($item->action) {
+                        case '':
+                        case 0:
+                           if ($item->share_user!='') $action['write'][] =$item->share_user;
+                           if($item->action_conllect!=''){
+                               $conllect = \app\admin\model\Action::whereIn("menuid",$item->action_conllect)->where(["action_code"=>"001"])->column("id");
+                               $action['action_conllect'] = array_unique(array_merge($action['action_conllect'],$conllect)) ;
+                           }
+                            break;
                         case 1:
-                            if($item->share_user==''){
+                            if($item->share_user!=''){
                                 $action['write'][] =$item->share_user;
                                 $user = \app\admin\model\UserRole::where(["uid"=>$item->share_user,"is_del"=>0,"status"=>1])->findOrEmpty();
                                 if(!$user->isEmpty()){
-                                    $action['write'][] =$user->roleid;
+                                    $conllect = \app\admin\model\Action::whereIn("menuid",$item->action_conllect)->column("id");
+                                    $action['action_conllect'] = array_unique(array_merge($action['action_conllect'],array_intersect($conllect, $item->action_conllect))) ;
                                 }
                             }
+                            break;
                     }
               });
           }
+            $resign = \app\admin\model\ResignInfo::where(['hand_uid'=>$this->uid,'is_del'=>0,'status'=>4])->column(['resign_uid']);
+              if(!empty($resign)){
+                  $action['write'] = array_unique(array_merge($action['write'],$resign));
+              }
+              $action['roleid'] = $this->roleid;
+              return $action;
       }
    }
 }

+ 1 - 1
app/admin/controller/Menu.php

@@ -42,7 +42,7 @@ class Menu extends Base{
                 'route|菜单地址'=>'max:255',
                 'pid|父级id'=>'require|number|egt:0',
                 'id|菜单id'=>'number|egt:0',
-                'level|菜单路由'=>'require|number|egt:0',
+                'level|菜单等级'=>'require|number|egt:0',
                 'is_display|菜单是否显示'=>'require|number|in:0,1',
                 'weight|菜单排序权重'=>'require|number',
                 'private|菜单是否私有'=>'require|number|in:0,1',

+ 1 - 1
app/user/model/CompanyItem.php

@@ -22,7 +22,7 @@ class CompanyItem extends Base
     protected $updateTime='updatetime';
     protected $createTime='addtime';
     public function companyInfo(){
-    	return $this->belongsTo(Headquarters::class,"code","companyNo")->bind(["companyName"=>"name"]);
+    	return $this->belongsTo(Headquarters::class,"companyNo","code")->bind(["companyName"=>"name"]);
     }
     
     public function getDepartLinkAttr($v){