PermissionServices.php 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. <?php
  2. namespace App\Services;
  3. //use App\AdminLinks;
  4. //use App\Http\Controllers\Channel\ChannelCommonController;
  5. //use App\PayrollOrder;
  6. //use App\SettleAccountLog;
  7. //use App\UserInfoCheck;
  8. //use App\Withdrawal;
  9. //use App\WithdrawalBatch;
  10. class PermissionService{
  11. //不要权限就能访问的组
  12. public static function getIgnorePermissionGroups(){
  13. return [
  14. 'login', 'upload_to_tester', 'logout', 'index'
  15. ];
  16. }
  17. //不要权限就能访问的页面
  18. public static function getIgnorePermissions(){
  19. return [
  20. 'admin.dashboard.index', 'admin.upload_to_tester', 'admin.login', 'admin.index', 'admin.logout','admin.merchant.index'
  21. ];
  22. }
  23. //不是权限组的页面
  24. public static function getIgnoreGroups(){
  25. return [
  26. 'dashboard', 'index'
  27. ];
  28. }
  29. //需要获取权限的组数组
  30. public static function getPermissionGroupsMap(){
  31. return [
  32. '统计管理' => 'dashboard',
  33. '支部管理' => 'team',
  34. '党员管理' => 'member',
  35. '转出管理' => 'rollout',
  36. '收费管理' => 'charge',
  37. '承诺书管理' => 'book',
  38. '后台管理' => 'adminer',
  39. ];
  40. }
  41. public static function isIgnored($permission){
  42. return in_array($permission, self::getIgnorePermissions());
  43. }
  44. public static function getAdminRoutesGroups()
  45. {
  46. // 获取组名映射表
  47. $groups_map = self::getPermissionGroupsMap();
  48. // 获取或有路由->getRoutesByName()
  49. $all_routes = app()['router']->getRoutes();
  50. // 过滤总后台路由
  51. $admin_routes = array_filter($all_routes, function ($route) {
  52. $a= app('Dingo\Api\Routing\Router');
  53. $aa=$a->getPrefix();
  54. $c=app();
  55. var_dump($c);
  56. var_dump($a,$aa);exit;
  57. return $route->getPrefix() === '/admin';
  58. });
  59. $routes_groups = [];
  60. // 按模块分组
  61. foreach ($admin_routes as $route) {
  62. $group = $route->action['group'] ?? false;
  63. // 过滤指定组
  64. if ($group && array_key_exists($group, $groups_map)) {
  65. $routes_groups[$group][] = $route;
  66. }
  67. }
  68. return $routes_groups;
  69. }
  70. }