From 5d841a56a65d53d46f0344ad833d5f0451b65517 Mon Sep 17 00:00:00 2001 From: gitadmin Date: Thu, 14 May 2026 17:49:09 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=86=85=E7=BD=AE=E8=A7=92=E8=89=B2?= =?UTF-8?q?=E6=97=A7=E6=9D=83=E9=99=90=E8=BF=81=E7=A7=BB=E4=B8=8D=E7=94=9F?= =?UTF-8?q?=E6=95=88=20=E2=80=94=20=E7=A7=BB=E9=99=A4=20builtin=20skip?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 迁移循环中 `if (builtinNames.has(r.name)) continue` 导致 editor/viewer 内置角色的旧 assets:write 权限永远不会被迁移。移除该限制,让权限迁移 对所有角色生效(admin 因持有 * 不受影响)。 --- src/lib/db-schema.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/lib/db-schema.ts b/src/lib/db-schema.ts index 5c38311..44f1dc3 100644 --- a/src/lib/db-schema.ts +++ b/src/lib/db-schema.ts @@ -126,10 +126,9 @@ export function initDatabase() { } } - // 迁移自定义角色中遗留的旧 assets:export 权限(拆分为 selected/all) + // 迁移旧权限(所有角色,包括内置角色) const allRoles = db.prepare('SELECT id, name, permissions FROM roles').all() as { id: number; name: string; permissions: string }[] for (const r of allRoles) { - if (builtinNames.has(r.name)) continue const perms: string[] = JSON.parse(r.permissions) if (perms.includes('assets:export')) { const upgraded = perms.filter(p => p !== 'assets:export')