MenuService.php 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <?php
  2. /****************************************************************
  3. * Author: libaojia
  4. * Date: 2017/11/7 上午10:36
  5. * Email: livsyitian@163.com
  6. * QQ: 995265288
  7. * User: 芸众商城 www.yunzshop.com
  8. ****************************************************************/
  9. namespace app\common\services;
  10. use app\common\models\user\User;
  11. use app\common\services\aliyun\Core\Config;
  12. class MenuService
  13. {
  14. //可以进入的路由
  15. public static function canAccess($item)
  16. {
  17. $current_menu = \app\backend\modules\menu\Menu::current()->getItems()[$item];
  18. $url = yzWebFullUrl($current_menu['url']) . ($current_menu['url_params'] ? '&' . $current_menu['url_params'] : '');
  19. if (PermissionService::isFounder()) {
  20. return $url;
  21. }
  22. if (PermissionService::isOwner()) {
  23. return $url;
  24. }
  25. if (PermissionService::isManager()) {
  26. return $url;
  27. }
  28. if (PermissionService::checkNoPermission($item) === true) {
  29. return $url;
  30. }
  31. if (!isset($current_menu['child'])) {
  32. return $url;
  33. }
  34. $userPermission = User::userPermissionCache();
  35. //检测当前 key 下路由是否有权限访问
  36. foreach ($current_menu['child'] as $key => $value) {
  37. if ($value['url'] == $current_menu['url'] && in_array($key, $userPermission)) {
  38. return $url;
  39. break;
  40. }
  41. continue;
  42. }
  43. //上面条件都不满足时,找第一个有权限访问的路由
  44. foreach ($current_menu['child'] as $key => $value) {
  45. if (in_array($key, $userPermission)) {
  46. return yzWebFullUrl($value['url']) . ($value['url_params'] ? '&' . $value['url_params'] : '');
  47. break;
  48. }
  49. continue;
  50. }
  51. return yzWebFullUrl('index.index');
  52. }
  53. }