AddonLeftWidget.php 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <?php
  2. namespace common\widgets\menu;
  3. use Yii;
  4. use yii\helpers\Json;
  5. use yii\base\Widget;
  6. use common\helpers\Auth;
  7. use common\helpers\ArrayHelper;
  8. /**
  9. * 模块菜单
  10. *
  11. * Class AddonLeftWidget
  12. * @package common\widgets\menu
  13. * @author jianyan74 <751393839@qq.com>
  14. */
  15. class AddonLeftWidget extends Widget
  16. {
  17. /**
  18. * @return string
  19. */
  20. public function run()
  21. {
  22. $addon = ArrayHelper::toArray(Yii::$app->params['addon']);
  23. $menus = Yii::$app->services->menu->findAll(Yii::$app->id, $addon['name']);
  24. if (!Yii::$app->services->rbacAuth->isSuperAdmin()) {
  25. $auth = Auth::getAuth();
  26. foreach ($menus as $kye => $menu) {
  27. // 移除无权限菜单
  28. if (Auth::verify($menu['url'], $auth) === false) {
  29. unset($menus[$kye]);
  30. }
  31. !is_array($menu['pattern']) && $menu['pattern'] = Json::decode($menu['pattern']);
  32. if (!empty($menu['pattern']) && !in_array(Yii::$app->params['devPattern'], $menu['pattern'])) {
  33. unset($menus[$kye]);
  34. }
  35. }
  36. }
  37. foreach ($menus as &$menu) {
  38. !is_array($menu['params']) && $menu['params'] = Json::decode($menu['params']);
  39. $params = [];
  40. if ($menu['params']) {
  41. foreach ($menu['params'] as $param) {
  42. $params[$param['key']] = $param['value'];
  43. }
  44. }
  45. $menu['params'] = $params;
  46. }
  47. return $this->render('addon-left', [
  48. 'addon' => $addon,
  49. 'menus' => $menus,
  50. ]);
  51. }
  52. }
粤ICP备19079148号