Base.php 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. <?php
  2. namespace app\admin\controller;
  3. use think\App;
  4. use think\facade\Db;
  5. class Base extends \app\BaseController
  6. {
  7. public $post=[];
  8. public $uid='';
  9. public $uname='';
  10. public $roleid='';
  11. public function __construct(App $app)
  12. {
  13. parent::__construct($app);
  14. $this->post =$this->request->post();
  15. $this->validateToken();
  16. }
  17. public function validateToken()
  18. {
  19. $token = isset($this->post['token']) ? trim($this->post['token']) : "";
  20. if($token==""){
  21. return error_show(101,'token不能为空');
  22. }
  23. $effetc = VerifyTokens($token);
  24. if(!empty($effetc) && $effetc['code']!=0) {
  25. return error_show($effetc['code'], $effetc['message']);
  26. }
  27. $this->uid=isset($effetc['data']['user']['id']) ?$effetc['data']['user']['id']:"";
  28. $this->uname=isset($effetc['data']['user']['nickname']) ?$effetc['data']['user']['nickname']:"";
  29. $uid = Db::name("user_role")->where(['uid'=>$this->uid,"is_del"=>0,"status"=>1])->find();
  30. if($uid==false || $uid['status']==0){
  31. return error_show(102,'账户已禁用');
  32. }
  33. }
  34. public function checkRole(){
  35. $uid = Db::name("user_role")->where(['uid'=>$this->uid,"is_del"=>0,"status"=>1])->find();
  36. if($uid==false){
  37. return [];
  38. }
  39. $action=[];
  40. $this->roleid=$uid['roleid'];
  41. $role =Db::name("role_action")->where(["role_id"=>$uid['roleid'],"status"=>1])->find();
  42. $action['action_conllect']=isset($role['action_conllect'])? $role['action_conllect']:'';
  43. $action['write'][]=$this->uid;
  44. $group=[];
  45. $group = Db::name("role_group")->where("FIND_IN_SET($this->uid,group_user) > 0")->column("id");
  46. $where="to_user=$this->uid";
  47. if(!empty($group)){
  48. $where.=" or to_group in (".implode(",",$group).")";
  49. }
  50. $paltform = Db::name("user_platform")->where(["uid"=>$this->uid,"is_del"=>0])->find();
  51. $action['platform']= $paltform!=false ? explode(",",$paltform['platform']) :[];
  52. $share =Db::name("role_share")->where(["is_del"=>0,"status"=>1])->where($where) ->select();
  53. if(!empty($share)){
  54. foreach ($share as $value){
  55. if($value['action']==1){
  56. if($value['share_user']!=""){
  57. $action['write'][]=$value['share_user'];
  58. $user=Db::name("user_role")->where(['uid'=>$value['share_user'],"is_del"=>0,"status"=>1])->find();
  59. if($user!=false){
  60. $role =Db::name("role_action")->where(["role_id"=>$user['roleid'],"status"=>1])->find();
  61. if($role!=false){
  62. $conlect =Db::name("action")->where(['menuid'=>explode(",",$value['action_collect'])])->column("id");
  63. $shar=explode(",",$value['action_collect']);
  64. $wish =array_intersect($conlect,$shar);
  65. $action['action_conllect'].=empty($wish)?"":",".implode(",",$wish);
  66. }
  67. }
  68. }
  69. }
  70. if($value['action']===0){
  71. if($value['share_user']!="") $action['write'][]=$value['share_user'];
  72. if($value['action_collect']!=''){
  73. $act =Db::name("action")->where(['menuid'=>explode(",",$value['action_collect']),"action_code"=>'001'])->column("id");
  74. $action['action_conllect'].=empty($act)?"":",".implode(",",$act);
  75. }
  76. }
  77. if($value['action']===''){
  78. if($value['share_user']!="") $action['write'][]=$value['share_user'];
  79. if($value['action_collect']!=''){
  80. $act =Db::name("action")->where(['menuid'=>explode(",",$value['action_collect']),"action_code"=>'001'])->column("id");
  81. $action['action_conllect'].=empty($act)?"":",".implode(",",$act);
  82. }
  83. }
  84. }
  85. }
  86. /**
  87. * 离职交接权限
  88. */
  89. $resgin= Db::name("resign_info")->where([["hand_uid","=",$this->uid],["is_del","=",0],['status',"=",4]])
  90. ->column(['resign_uid']);
  91. if(!empty($resgin)){
  92. $action['write']= array_unique(array_merge($action['write'],$resgin));
  93. }
  94. /**
  95. * 超级管理员看到所有人的数据
  96. */
  97. if($uid['roleid']==1 || $uid['roleid']==33){
  98. $action['write']=[];
  99. }
  100. $action['roleid']=$uid['roleid'];
  101. $action['action_conllect']=implode(",",array_unique(explode(",",$action['action_conllect'])));
  102. return $action;
  103. }
  104. }