feat: 迁移自定义功能至 1.5.9.9 版本
包含音乐源限制、CI 防 OOM 优化、数据库连接池优化、管理端权限及 UI 细节定制等功能
This commit is contained in:
@@ -0,0 +1,14 @@
|
||||
import { ROLES } from '~~/server/utils/permissions'
|
||||
|
||||
export default defineEventHandler((event) => {
|
||||
const user = event.context.user
|
||||
|
||||
if (!user || user.role !== 'SUPER_ADMIN') {
|
||||
throw createError({
|
||||
statusCode: 403,
|
||||
message: '只有超级管理员可以访问角色配置'
|
||||
})
|
||||
}
|
||||
|
||||
return ROLES
|
||||
})
|
||||
@@ -0,0 +1,46 @@
|
||||
import { ROLES, saveRolesConfig } from '~~/server/utils/permissions'
|
||||
|
||||
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: '角色配置已保存' }
|
||||
})
|
||||
Reference in New Issue
Block a user