getMessage()); } } /** * 获取面包屑导航 */ public function getBreadcrumb() { $loginInfo = checkUserLogin(); if (!$loginInfo) { return json_error([], '请先登录'); } $menuId = Request::get('menu_id', 0, 'intval'); if (!$menuId) { return json_error([], '菜单ID不能为空'); } try { $breadcrumb = MenuService::getBreadcrumb($menuId); return json_success($breadcrumb, '获取面包屑导航成功'); } catch (\Exception $e) { return json_error([], '获取面包屑导航失败:' . $e->getMessage()); } } /** * 获取所有控制器权限配置(用于角色权限分配) */ public function getControllerPermissions() { $loginInfo = checkUserLogin(); if (!$loginInfo) { return json_error([], '请先登录'); } // 检查是否有查看权限配置的权限 if (!checkPermission($loginInfo, 'Permission', 'list')) { return json_error([], '没有查看权限配置的权限'); } try { $permissions = MenuService::getControllerPermissions(); return json_success($permissions, '获取权限配置成功'); } catch (\Exception $e) { return json_error([], '获取权限配置失败:' . $e->getMessage()); } } /** * 根据控制器检查菜单权限 */ public function checkMenuPermission() { $loginInfo = checkUserLogin(); if (!$loginInfo) { return json_error([], '请先登录'); } $controller = Request::get('controller', '', 'trim'); $action = Request::get('action', '', 'trim'); if (empty($controller)) { return json_error([], '控制器名称不能为空'); } $hasPermission = false; if (empty($action)) { // 只检查控制器权限 $hasPermission = checkPermission($loginInfo, $controller, 'list'); } else { // 检查具体操作权限 $hasPermission = checkPermission($loginInfo, $controller, $action); } return json_success([ 'has_permission' => $hasPermission, 'controller' => $controller, 'action' => $action ], $hasPermission ? '有权限访问' : '无权限访问'); } }