LewaimaiAdminPingtaiAuth.php 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. <?php
  2. use DB;
  3. use DbCriteria;
  4. use Useradmin;
  5. use Yii;
  6. /**
  7. * 这个类主要是用来处理admin平台的账号权限
  8. */
  9. class LewaimaiAdminPingtaiAuth
  10. {
  11. public static $authIds = [];
  12. /**
  13. * @var array 不需要登入的 routers
  14. */
  15. public static array $noLoginRouters = [
  16. 'site/login',
  17. ];
  18. /**
  19. * @var array 不需要权限检测的 routers
  20. */
  21. public static array $noAuthCheckRouters = [
  22. 'useradmin/info', // 用户信息
  23. 'useradmin/setting', // 密码修改
  24. 'useradmin/checkpwd', // 密码修改检测
  25. ];
  26. /**
  27. * @var array 超级管理员才能有操作的 routers
  28. */
  29. public static array $superAdminRouters = [
  30. ];
  31. public static function getAuth($num = 0)
  32. {
  33. if (empty($num)) {
  34. return false;
  35. }
  36. if (in_array($num, self::$authIds)) {
  37. return true;
  38. }
  39. return false;
  40. }
  41. public static function adminAuth($controller, $action)
  42. {
  43. // 跳过不需要检测的
  44. if (in_array($controller, ["site", "common"])) {
  45. return true;
  46. }
  47. $page = strtolower($controller.'/'.$action);
  48. if (in_array($page, self::$noAuthCheckRouters)) {
  49. return true;
  50. }
  51. /**
  52. * @var array $pageAuth 权限集开始检测 权限ID 和 asyncRoutes.ts 保持一致
  53. * @link ./web/src/router/routes/asyncRoutes.ts
  54. */
  55. $pageAuth = [
  56. // =================== 用户及角色管理 =======================
  57. 'useradmin/rolelist' => 110200, // 角色列表
  58. 'useradmin/saveroleauth' => 110201, // 菜单权限
  59. 'useradmin/editrole' => 110202, // 编辑角色
  60. 'useradmin/deleterole' => 110203, // 删除角色
  61. 'useradmin/userlist' => 110100, // 用户列表
  62. 'useradmin/edituser' => 110101, // 编辑用户
  63. 'useradmin/deleteuser' => 110102, // 删除用户
  64. // =================== 学校 =======================
  65. 'school/list' => 120100,
  66. 'school/info' => 120100,
  67. 'school/add' => 120101,
  68. 'school/edit' => 120102,
  69. 'school/updateattr' => 120102,
  70. 'school/delete' => 120103,
  71. // =================== 学校关系 =======================
  72. 'schoolrelation/list' => 120200,
  73. 'schoolrelation/info' => 120200,
  74. 'schoolrelation/add' => 120201,
  75. 'schoolrelation/edit' => 120202,
  76. 'schoolrelation/updateattr' => 120202,
  77. 'schoolrelation/delete' => 120203,
  78. // =================== 学校跟进 =======================
  79. 'follow/schoollist' => 120300,
  80. 'follow/schoolall' => 120300,
  81. 'follow/schoolinfo' => 120300,
  82. 'follow/schooladd' => 120301,
  83. // =================== 食堂 =======================
  84. 'canteen/list' => 130100,
  85. 'canteen/info' => 130100,
  86. 'canteen/add' => 130101,
  87. 'canteen/edit' => 130102,
  88. 'canteen/updateattr' => 130102,
  89. 'canteen/delete' => 130103,
  90. // =================== 食堂跟进 =======================
  91. 'follow/canteenlist' => 130300,
  92. 'follow/canteenall' => 130300,
  93. 'follow/canteeninfo' => 130300,
  94. 'follow/canteenadd' => 130301,
  95. // =================== 餐饮公司 =======================
  96. 'company/list' => 140100,
  97. 'company/info' => 140100,
  98. 'company/add' => 140101,
  99. 'company/edit' => 140102,
  100. 'company/updateattr' => 140102,
  101. 'company/delete' => 140103,
  102. // =================== 餐饮公司关系 =======================
  103. 'companyrelation/list' => 140200,
  104. 'companyrelation/info' => 140200,
  105. 'companyrelation/add' => 140201,
  106. 'companyrelation/edit' => 140202,
  107. 'companyrelation/updateattr' => 140202,
  108. 'companyrelation/delete' => 140203,
  109. // =================== 餐饮公司跟进 =======================
  110. 'follow/companylist' => 140300,
  111. 'follow/companyall' => 140300,
  112. 'follow/companyinfo' => 140300,
  113. 'follow/companyadd' => 140301,
  114. ];
  115. return !empty($pageAuth[$page]) && self::getAuth($pageAuth[$page]);
  116. }
  117. }