FilterPermission.php 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. <?php
  2. namespace app\v1\middleware;
  3. use plugin\saiadmin\app\cache\UserInfoCache;
  4. use Webman\Http\Request;
  5. use Webman\Http\Response;
  6. use Webman\MiddlewareInterface;
  7. /**
  8. * 权限检查中间件
  9. */
  10. class FilterPermission implements MiddlewareInterface
  11. {
  12. public function process(Request $request, callable $handler) : Response
  13. {
  14. // 获取请求方法
  15. $method = strtoupper($request->method());
  16. // 根据用户id获取用户权限
  17. $token = getCurrentInfo();
  18. // 用户权限缓存
  19. $userAuthCache = new UserInfoCache($token['id']);
  20. $user_info = $userAuthCache->getUserInfo();
  21. // $user_info = $this->systemUserLogic->read($token['id']);
  22. // 获取游戏数据权限
  23. $auth_game_list = $user_info['game_list'] ?? '';
  24. // 获取游戏自然量数据权限
  25. $auth_normal_game_list = $user_info['normal_game_list'] ?? '';
  26. // 获取广告投放数据权限
  27. $auth_ad_permission = $user_info['ad_permission'] ?? '';
  28. // 追加参数逻辑
  29. $extraParams = [
  30. 'auth_normal_game_list' => $auth_normal_game_list === '*' ? '' : $auth_normal_game_list,
  31. 'auth_game_list' => $auth_game_list === '*' ? '' : $auth_game_list,
  32. 'auth_ad_permission' => $auth_ad_permission === '*' ? '' : $auth_ad_permission,
  33. ];
  34. // 合并并设置回 request
  35. $origin_header = $request->header();
  36. $request->setHeader(array_merge($origin_header, $extraParams));
  37. return $handler($request);
  38. }
  39. }