post =$this->request->post(); $this->validateToken(); } public function validateToken() { $token = isset($this->post['token']) ? trim($this->post['token']) : ""; if($token==""){ return error_show(101,'token不能为空'); } $effetc = VerifyTokens($token); if(!empty($effetc) && $effetc['code']!=0) { return error_show($effetc['code'], $effetc['message']); } $this->uid=isset($effetc['data']['user']['id']) ?$effetc['data']['user']['id']:""; } public function checkRole(){ $uid = Db::name("user_role")->where(['uid'=>$this->uid,"is_del"=>0,"status"=>1])->find(); if($uid==false){ return []; } $action=[]; $role =Db::name("role_action")->where(["role_id"=>$uid['roleid'],"status"=>1])->find(); $action['action_conllect']=isset($role['action_conllect'])? $role['action_conllect']:''; $action['write'][]=$this->uid; $group=[]; $group = Db::name("role_group")->where("FIND_IN_SET($this->uid,group_user) > 0")->column("id"); // echo Db::name("role_group")->getLastSql(); $where="to_user=$this->uid"; if(!empty($group)){ $where.=" or to_group in (".implode(",",$group).")"; } // var_dump($group); $share =Db::name("role_share")->where(["is_del"=>0,"status"=>1])->where($where) ->select(); // echo Db::name("role_share")->getLastSql(); if(!empty($share)){ foreach ($share as $value){ if($value['action']==1){ if($value['share_user']!=""){ $action['write'][]=$value['share_user']; $user=Db::name("user_role")->where(['uid'=>$value['share_user'],"is_del"=>0,"status"=>1])->find(); if($user!=false){ $role =Db::name("role_action")->where(["role_id"=>$user['roleid'],"status"=>1])->find(); if($role!=false){ $conlect =Db::name("action")->where(['menuid'=>explode(",",$value['action_collect'])])->column("id"); $shar=explode(",",$value['action_collect']); $wish =array_intersect($conlect,$shar); $action['action_conllect'].=empty($wish)?"":",".implode(",",$wish); } } } } if($value['action']===0){ if($value['share_user']!="") $action['write'][]=$value['share_user']; if($value['action_collect']!=''){ $act =Db::name("action")->where(['menuid'=>explode(",",$value['action_collect']),"action_code"=>'001'])->column("id"); $action['action_conllect'].=empty($act)?"":",".implode(",",$act); } } if($value['action']===''){ if($value['action_collect']!=''){ $act =Db::name("action")->where(['menuid'=>explode(",",$value['action_collect']),"action_code"=>'001'])->column("id"); $action['action_conllect'].=empty($act)?"":",".implode(",",$act); } } } } /** * 离职交接权限 */ $resgin= Db::name("resign_info")->where([["hand_uid","=",$this->uid],["is_del","=",0],['status',"=",4]]) ->column(['resign_uid']); if(!empty($resgin)){ $resgin['write']= array_unique(array_merge($resgin['write'],$resgin)); } /** * 超级管理员看到所有人的数据 */ if($uid['roleid']==1){ $action['write']=[]; } $action['action_conllect']=implode(",",array_unique(explode(",",$action['action_conllect']))); return $action; } }