fix: 移除 middleware adminPaths,解决非 admin 角色 Forbidden 问题

- 移除 middleware 中的 adminPaths: ['/settings'] 配置
- settings 页面权限由各 API 端点自行检查,middleware 仅负责认证
- 修复 viewer/operator 等非 admin 角色访问 /settings/* 返回 403 的问题
- 侧边栏 hasAnyAdminPerm 增加 audit-logs 和 monitor 权限检查
This commit is contained in:
gitadmin 2026-07-02 18:02:12 +08:00
parent f507adfaa1
commit 6bba264927
2 changed files with 6 additions and 2 deletions

View File

@ -22,7 +22,10 @@ const settingsItems = [
]
function hasAnyAdminPerm(permissions: string[]): boolean {
return permissions.includes('*') || permissions.some(p => p.startsWith('users:') || p.startsWith('roles:') || p.startsWith('api-keys:'))
return permissions.includes('*') || permissions.some(p =>
p.startsWith('users:') || p.startsWith('roles:') || p.startsWith('api-keys:') ||
p.startsWith('audit-logs:') || p.startsWith('monitor:')
)
}
export default function Sidebar() {

View File

@ -1,9 +1,10 @@
// issue-ai/src/middleware.ts — 使用共享 middleware 工厂
// 注意:移除 adminPathssettings 页面的权限由各 API 自行检查
// middleware 仅负责认证(登录检查),不负责角色鉴权
import { createMiddleware } from '@shared/lib/auth/middleware'
export const middleware = createMiddleware({
localCookieName: 'session_issue',
adminPaths: ['/settings'],
enableApiKey: true,
})