import { ROLES, saveRolesConfig } from '../../../utils/permissions.js' export default defineEventHandler(async (event) => { const user = event.context.user if (!user || user.role !== 'SUPER_ADMIN') { throw createError({ statusCode: 403, message: '只有超级管理员可以修改角色配置' }) } const body = await readBody(event) if (!body || typeof body !== 'object') { throw createError({ statusCode: 400, message: '无效的角色配置数据' }) } // 保护 SUPER_ADMIN 的关键权限不被移除 if (body.SUPER_ADMIN) { const requiredPages = ['roles', 'users', 'site-config'] const hasRequired = requiredPages.every(p => body.SUPER_ADMIN.pages.includes(p)) if (!hasRequired) { requiredPages.forEach(p => { if (!body.SUPER_ADMIN.pages.includes(p)) { body.SUPER_ADMIN.pages.push(p) } }) } body.SUPER_ADMIN.canAccessAdmin = true } const success = saveRolesConfig(body) if (!success) { throw createError({ statusCode: 500, message: '保存角色配置失败' }) } return { success: true, message: '角色配置已保存' } })