ith5 пре 5 месеци
родитељ
комит
a8969edb55
1 измењених фајлова са 21 додато и 20 уклоњено
  1. 21 20
      plugin/saiadmin/basic/BaseLogic.php

+ 21 - 20
plugin/saiadmin/basic/BaseLogic.php

@@ -342,11 +342,6 @@ class BaseLogic
 
 
         $userAuthCache = new UserInfoCache(getCurrentInfo()['id']);
         $userAuthCache = new UserInfoCache(getCurrentInfo()['id']);
         $userInfo = $userAuthCache->getUserInfo();
         $userInfo = $userAuthCache->getUserInfo();
-        // Todo 如果角色权限,超过跳过权限限制
-        $roleIds = array_column($userInfo['roleList'], 'id');
-        if (in_array(1, $roleIds)) {
-            return $data;
-        }
 
 
         // Todo 1、游戏权限
         // Todo 1、游戏权限
         $authGameList = $userInfo['deptList']['game_list'];
         $authGameList = $userInfo['deptList']['game_list'];
@@ -362,15 +357,19 @@ class BaseLogic
             }
             }
         }
         }
 
 
-        // Todo 2、广告数据权限
-        $userId = $userInfo['id'];
-        $deptId = $userInfo['deptList']['id'];
-        // 广告权限,自己 or 全部
-        $authAdPermission = $userInfo['ad_permission'];
-        if ($authAdPermission) {
-            if ($authAdPermission == 1) { // Todo 1、仅自己
+        // Todo 2、 如果自定义了数据权限
+        if($userInfo['data_permission']){
+            // Todo 2.1、广告数据权限
+            $userId = $userInfo['id'];
+            $deptId = $userInfo['deptList']['id'];
+            // 广告权限,自己 or 全部
+            $authAdPermission = $userInfo['ad_permission'];
+
+            // Todo 2.1.1、仅自己
+            if ($authAdPermission == 1) {
                 $data['auth_id'] = [$userId];
                 $data['auth_id'] = [$userId];
-            } elseif ($authAdPermission == 2) { // Todo 2、自己部门
+            } else{
+                // Todo 2.1.2、自己部门
                 $underUserIds = Db::connect('db_system')->table('sa_system_user')->where('dept_id', 'in', $deptId)->column('id');
                 $underUserIds = Db::connect('db_system')->table('sa_system_user')->where('dept_id', 'in', $deptId)->column('id');
                 if (!empty($data['auth_id'])) { // 如果传入了负责人ID,则取交集
                 if (!empty($data['auth_id'])) { // 如果传入了负责人ID,则取交集
                     $data['auth_id'] = array_values(array_intersect($data['auth_id'], array_values($underUserIds)));
                     $data['auth_id'] = array_values(array_intersect($data['auth_id'], array_values($underUserIds)));
@@ -378,14 +377,16 @@ class BaseLogic
                     $data['auth_id'] = array_values($underUserIds);
                     $data['auth_id'] = array_values($underUserIds);
                 }
                 }
             }
             }
-        }
 
 
-
-        // 看指定游戏的自然量
-        $authNormalGameList = $userInfo['normal_game_list']; // 可看自然量的游戏
-        if ($authNormalGameList != '*' && $authNormalGameList != '-1' && !empty($data['game_id'])) {
-            // 则取auth_normal_game_list交集
-            $data['normal_game_id'] = array_values(array_intersect(explode(',', $authNormalGameList), $data['game_id']));
+            // Todo 2.2、看指定游戏的自然量
+            $authNormalGameList = $userInfo['normal_game_list']; // 可看自然量的游戏
+            if($data['game_id'] && $authNormalGameList){
+                if($authNormalGameList=="*"){
+                    $data['normal_game_id'] = $data['game_id'];
+                }else{
+                    $data['normal_game_id'] = array_values(array_intersect(explode(',', $authNormalGameList), $data['game_id']));
+                }
+            }
         }
         }
 
 
         return $data;
         return $data;