From 1b8d2d50d96fe17ad244736a24d3963a1d52f80d Mon Sep 17 00:00:00 2001 From: zhaoxiang Date: Wed, 10 Jun 2020 18:11:23 +0800 Subject: [PATCH] =?UTF-8?q?modified=20=E5=AE=8C=E6=88=90=E5=89=8D=E7=AB=AF?= =?UTF-8?q?=E5=8A=A8=E6=80=81=E6=95=B0=E6=8D=AE=E5=87=86=E5=A4=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/admin/controller/Login.php | 30 +++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/application/admin/controller/Login.php b/application/admin/controller/Login.php index 4f114f4..054696a 100644 --- a/application/admin/controller/Login.php +++ b/application/admin/controller/Login.php @@ -102,23 +102,43 @@ class Login extends Base { public function getAccessMenu() { $isSupper = Tools::isAdministrator($this->userInfo['id']); if ($isSupper) { - $access = AdminMenu::all(['router' != '']); - $access = Tools::buildArrFromObj($access); + $access = (new AdminMenu())->where('router', '<>', '')->select(); + $access = Tools::listToTree(Tools::buildArrFromObj($access)); return $this->buildSuccess($access); } else { $groups = AdminAuthGroupAccess::get(['uid' => $this->userInfo['id']]); if (isset($groups) && $groups->group_id) { $access = (new AdminAuthRule())->whereIn('group_id', $groups->group_id)->select(); - $access = Tools::buildArrFromObj($access); + $access = array_unique(array_column(Tools::buildArrFromObj($access), 'url')); + array_push($access, ""); + $menus = (new AdminMenu())->whereIn('url', $access)->where('show', 1)->select(); + $menus = Tools::listToTree(Tools::buildArrFromObj($menus)); + $menus = $this->rebuildMenu($menus); - return array_unique(array_column($access, 'url')); + return $this->buildSuccess($menus); } else { - return []; + return $this->buildSuccess(); } } } + private function rebuildMenu($menus) { + foreach ($menus as $key => $menu) { + if (isset($menu['children'])) { + foreach ($menu['children'] as $cKey => $child) { + if (!isset($child['children'])) { + + } + } + } else { + unset($menus[$key]); + } + } + + return $menus; + } + /** * 获取用户权限数据 * @param $uid