@musnows/scriverse 0.3.8 → 0.3.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/user-auth.js CHANGED
@@ -5,9 +5,27 @@ import { sanitizeRequestPath } from "./http-logging.js";
5
5
  import { accountReference, logger } from "./logger.js";
6
6
  import { paginated, paginationSql } from "./pagination.js";
7
7
  import { runWithRequestActor } from "./request-context.js";
8
+ import { canReadWorkModule, canWriteWorkModule, classifyWorkModulePermissions, fullWorkModulePermissions, settingsEditorModulePermissions, storedMembershipForPermissions, storedWorkModulePermissions, workPermissionModuleLabels, workPermissionModules } from "./work-permissions.js";
8
9
  const sessionCookieName = "scriverse_session";
9
10
  const sessionLifetimeMs = 30 * 24 * 60 * 60_000;
10
11
  const apiKeyPrefix = "scrv_";
12
+ function membershipAccessRole(row) {
13
+ const role = String(row?.role ?? "");
14
+ if (role === "owner")
15
+ return "owner";
16
+ if (role !== "editor" && role !== "viewer")
17
+ return null;
18
+ return classifyWorkModulePermissions(storedWorkModulePermissions(role, row?.permissions_json));
19
+ }
20
+ function permissionsFromInput(input) {
21
+ if ("permissions" in input)
22
+ return input.permissions;
23
+ if (input.role === "editor")
24
+ return fullWorkModulePermissions();
25
+ if (input.role === "settings-editor")
26
+ return settingsEditorModulePermissions();
27
+ return storedWorkModulePermissions("viewer", "{}");
28
+ }
11
29
  function sha256(value) {
12
30
  return createHash("sha256").update(value).digest("hex");
13
31
  }
@@ -362,44 +380,58 @@ export class UserAuthService {
362
380
  });
363
381
  }
364
382
  listMembers(workId) {
365
- return this.database.all(`SELECT membership.role, membership.created_at, user.id, user.username, user.display_name, user.status, user.avatar_sha256
383
+ return this.database.all(`SELECT membership.role, membership.permissions_json, membership.created_at, user.id, user.username, user.display_name, user.status, user.avatar_sha256
366
384
  FROM work_memberships membership JOIN users user ON user.id = membership.user_id
367
- WHERE membership.work_id = ? ORDER BY CASE membership.role WHEN 'owner' THEN 0 WHEN 'editor' THEN 1 ELSE 2 END, user.username`, workId).map((row) => ({
368
- userId: String(row.id), username: String(row.username), displayName: String(row.display_name),
369
- role: String(row.role), status: String(row.status), createdAt: String(row.created_at),
370
- avatarUrl: row.avatar_sha256
371
- ? `/api/user-avatars/${encodeURIComponent(String(row.id))}?v=${encodeURIComponent(String(row.avatar_sha256))}`
372
- : null
373
- }));
385
+ WHERE membership.work_id = ? ORDER BY CASE membership.role WHEN 'owner' THEN 0 WHEN 'editor' THEN 1 ELSE 2 END, user.username`, workId).map((row) => {
386
+ const permissions = storedWorkModulePermissions(String(row.role), row.permissions_json);
387
+ return {
388
+ userId: String(row.id), username: String(row.username), displayName: String(row.display_name),
389
+ role: membershipAccessRole(row), permissions, status: String(row.status), createdAt: String(row.created_at),
390
+ avatarUrl: row.avatar_sha256
391
+ ? `/api/user-avatars/${encodeURIComponent(String(row.id))}?v=${encodeURIComponent(String(row.avatar_sha256))}`
392
+ : null
393
+ };
394
+ });
374
395
  }
375
396
  listMembersPage(workId, pagination) {
376
397
  const page = paginationSql(pagination);
377
- const rows = this.database.all(`SELECT membership.role, membership.created_at, user.id, user.username, user.display_name, user.status, user.avatar_sha256
398
+ const rows = this.database.all(`SELECT membership.role, membership.permissions_json, membership.created_at, user.id, user.username, user.display_name, user.status, user.avatar_sha256
378
399
  FROM work_memberships membership JOIN users user ON user.id = membership.user_id
379
400
  WHERE membership.work_id = ? ORDER BY CASE membership.role WHEN 'owner' THEN 0 WHEN 'editor' THEN 1 ELSE 2 END, user.username${page.sql}`, workId, ...page.params);
380
- return paginated(rows.map((row) => ({
381
- userId: String(row.id), username: String(row.username), displayName: String(row.display_name),
382
- role: String(row.role), status: String(row.status), createdAt: String(row.created_at),
383
- avatarUrl: row.avatar_sha256
384
- ? `/api/user-avatars/${encodeURIComponent(String(row.id))}?v=${encodeURIComponent(String(row.avatar_sha256))}`
385
- : null
386
- })), pagination);
387
- }
388
- addMember(workId, userId, role, invitedByUserId) {
401
+ return paginated(rows.map((row) => {
402
+ const permissions = storedWorkModulePermissions(String(row.role), row.permissions_json);
403
+ return {
404
+ userId: String(row.id), username: String(row.username), displayName: String(row.display_name),
405
+ role: membershipAccessRole(row), permissions, status: String(row.status), createdAt: String(row.created_at),
406
+ avatarUrl: row.avatar_sha256
407
+ ? `/api/user-avatars/${encodeURIComponent(String(row.id))}?v=${encodeURIComponent(String(row.avatar_sha256))}`
408
+ : null
409
+ };
410
+ }), pagination);
411
+ }
412
+ addMember(workId, userId, input, invitedByUserId) {
413
+ const work = this.database.get("SELECT owner_user_id FROM works WHERE id = ?", workId);
414
+ if (!work)
415
+ throw notFound("作品");
416
+ if (String(work.owner_user_id ?? "") === userId)
417
+ throw new AppError(409, "OWNER_REQUIRED", "不能修改作品创建者权限");
389
418
  const user = this.getUser(userId);
390
419
  if (user.status !== "active")
391
420
  throw new AppError(409, "USER_DISABLED", "不能邀请已停用用户");
392
- this.database.run(`INSERT INTO work_memberships (work_id, user_id, role, invited_by_user_id, created_at)
393
- VALUES (?, ?, ?, ?, ?) ON CONFLICT(work_id, user_id) DO UPDATE SET role = excluded.role, invited_by_user_id = excluded.invited_by_user_id`, workId, userId, role, invitedByUserId, new Date().toISOString());
421
+ const stored = storedMembershipForPermissions(permissionsFromInput(input));
422
+ this.database.run(`INSERT INTO work_memberships (work_id, user_id, role, permissions_json, invited_by_user_id, created_at)
423
+ VALUES (?, ?, ?, ?, ?, ?) ON CONFLICT(work_id, user_id) DO UPDATE SET
424
+ role = excluded.role, permissions_json = excluded.permissions_json, invited_by_user_id = excluded.invited_by_user_id`, workId, userId, stored.role, stored.permissionsJson, invitedByUserId, new Date().toISOString());
394
425
  return this.listMembers(workId);
395
426
  }
396
- updateMemberRole(workId, userId, role) {
427
+ updateMemberPermissions(workId, userId, input) {
397
428
  const work = this.database.get("SELECT owner_user_id FROM works WHERE id = ?", workId);
398
429
  if (!work)
399
430
  throw notFound("作品");
400
431
  if (String(work.owner_user_id ?? "") === userId)
401
432
  throw new AppError(409, "OWNER_REQUIRED", "不能修改作品创建者权限");
402
- const result = this.database.run("UPDATE work_memberships SET role = ? WHERE work_id = ? AND user_id = ? AND role <> 'owner'", role, workId, userId);
433
+ const stored = storedMembershipForPermissions(permissionsFromInput(input));
434
+ const result = this.database.run("UPDATE work_memberships SET role = ?, permissions_json = ? WHERE work_id = ? AND user_id = ? AND role <> 'owner'", stored.role, stored.permissionsJson, workId, userId);
403
435
  if (result.changes === 0)
404
436
  throw notFound("作品成员");
405
437
  return this.listMembers(workId);
@@ -421,11 +453,23 @@ export class UserAuthService {
421
453
  throw notFound("作品");
422
454
  if (String(work.owner_user_id ?? "") === user.userId)
423
455
  return "owner";
424
- const membership = this.database.get("SELECT role FROM work_memberships WHERE work_id = ? AND user_id = ?", workId, user.userId);
425
- const role = String(membership?.role ?? "");
426
- return role === "editor" || role === "viewer" ? role : null;
456
+ const membership = this.database.get("SELECT role, permissions_json FROM work_memberships WHERE work_id = ? AND user_id = ?", workId, user.userId);
457
+ return membershipAccessRole(membership);
427
458
  }
428
- assertWorkAccess(user, workId, write = false, ownerOnly = false, allowAdminAccess = true) {
459
+ workModulePermissions(user, workId, allowAdminAccess = true) {
460
+ if (allowAdminAccess && user.role === "admin")
461
+ return fullWorkModulePermissions();
462
+ const work = this.database.get("SELECT owner_user_id FROM works WHERE id = ?", workId);
463
+ if (!work)
464
+ throw notFound("作品");
465
+ if (String(work.owner_user_id ?? "") === user.userId)
466
+ return fullWorkModulePermissions();
467
+ const membership = this.database.get("SELECT role, permissions_json FROM work_memberships WHERE work_id = ? AND user_id = ?", workId, user.userId);
468
+ if (!membership)
469
+ return null;
470
+ return storedWorkModulePermissions(String(membership.role), membership.permissions_json);
471
+ }
472
+ assertWorkAccess(user, workId, requirements = {}, ownerOnly = false, allowAdminAccess = true) {
429
473
  if (workId === PLATFORM_AI_WORK_ID && (!allowAdminAccess || user.role !== "admin"))
430
474
  throw new AppError(403, "ADMIN_REQUIRED", "该操作仅限系统管理员");
431
475
  const role = this.workRole(user, workId, allowAdminAccess);
@@ -433,8 +477,26 @@ export class UserAuthService {
433
477
  throw new AppError(403, "WORK_ACCESS_DENIED", "你没有访问这部作品的权限");
434
478
  if (ownerOnly && role !== "admin" && role !== "owner")
435
479
  throw new AppError(403, "WORK_OWNER_REQUIRED", "该操作仅限作品创建者或系统管理员");
436
- if (write && !["admin", "owner", "editor"].includes(role))
437
- throw new AppError(403, "WORK_EDIT_DENIED", "你没有编辑这部作品的权限");
480
+ if (role === "admin" || role === "owner")
481
+ return;
482
+ const permissions = this.workModulePermissions(user, workId, allowAdminAccess);
483
+ if (!permissions)
484
+ throw new AppError(403, "WORK_ACCESS_DENIED", "你没有访问这部作品的权限");
485
+ for (const module of requirements.read ?? []) {
486
+ if (!canReadWorkModule(permissions, module)) {
487
+ throw new AppError(403, "WORK_MODULE_READ_DENIED", `你没有读取“${workPermissionModuleLabels[module]}”模块的权限`);
488
+ }
489
+ }
490
+ for (const module of requirements.write ?? []) {
491
+ if (canWriteWorkModule(permissions, module))
492
+ continue;
493
+ if (role === "viewer")
494
+ throw new AppError(403, "WORK_EDIT_DENIED", "你没有编辑这部作品的权限");
495
+ if (role === "settings-editor") {
496
+ throw new AppError(403, "WORK_PROSE_EDIT_DENIED", "你只能编辑已授权的设定资料,不能执行此操作");
497
+ }
498
+ throw new AppError(403, "WORK_MODULE_WRITE_DENIED", `你没有编辑“${workPermissionModuleLabels[module]}”模块的权限`);
499
+ }
438
500
  }
439
501
  }
440
502
  export function setSessionCookie(response, token, secure) {
@@ -523,6 +585,128 @@ export function createCliApiScopeMiddleware(disabled = false) {
523
585
  response.status(403).json({ error: { code: "CLI_SCOPE_DENIED", message: "API Key 不能访问用户管理、系统管理或未开放给 CLI 的接口" } });
524
586
  };
525
587
  }
588
+ const contentPermissionModules = workPermissionModules.filter((module) => !["reviews", "ai", "ai-settings"].includes(module));
589
+ function requestBodyRecord(request) {
590
+ return request.body && typeof request.body === "object" && !Array.isArray(request.body)
591
+ ? request.body
592
+ : {};
593
+ }
594
+ function hasBodyField(request, field) {
595
+ return Object.prototype.hasOwnProperty.call(requestBodyRecord(request), field);
596
+ }
597
+ function aiContextReadModules(request) {
598
+ const scope = requestBodyRecord(request).scope;
599
+ if (!scope || typeof scope !== "object" || Array.isArray(scope) || scope.type === "none")
600
+ return [];
601
+ return [...contentPermissionModules];
602
+ }
603
+ function workModuleRequirements(request, write) {
604
+ const pathname = request.path;
605
+ const direct = (module, extraWrite = []) => (write ? { write: [module, ...extraWrite] } : { read: [module] });
606
+ if (/^\/api\/works\/[^/]+$/u.test(pathname))
607
+ return write ? { ownerOnly: true } : {};
608
+ if (/^\/api\/works\/[^/]+\/cover$/u.test(pathname))
609
+ return write ? { ownerOnly: true } : {};
610
+ if (/^\/api\/works\/[^/]+\/members(?:\/[^/]+)?$/u.test(pathname))
611
+ return { ownerOnly: true };
612
+ if (/^\/api\/works\/[^/]+\/audit-logs$/u.test(pathname))
613
+ return { ownerOnly: true };
614
+ if (/^\/api\/works\/[^/]+\/models$/u.test(pathname))
615
+ return { read: ["ai"] };
616
+ if (/^\/api\/chapters\/[^/]+\/outline$/u.test(pathname))
617
+ return direct("outlines");
618
+ if (/^\/api\/entity-versions\/[^/]+\/[^/]+(?:\/restore)?$/u.test(pathname)) {
619
+ const entityType = pathname.split("/")[3] ?? "";
620
+ const moduleByEntityType = {
621
+ volume: "prose",
622
+ setting: "settings",
623
+ race: "races",
624
+ organization: "organizations",
625
+ "timeline-track": "timeline",
626
+ "timeline-event": "timeline",
627
+ relationship: "relationships",
628
+ "chapter-outline": "outlines",
629
+ foreshadow: "outlines"
630
+ };
631
+ const module = moduleByEntityType[entityType];
632
+ if (entityType === "work")
633
+ return { ownerOnly: true };
634
+ if (!module)
635
+ return { ownerOnly: true };
636
+ if (write && (entityType === "race" || entityType === "organization"))
637
+ return direct(module, ["characters"]);
638
+ return direct(module);
639
+ }
640
+ if (/^\/api\/(?:works\/[^/]+\/characters|characters\/[^/]+)(?:\/|$)/u.test(pathname)) {
641
+ const extraWrite = [];
642
+ if (write) {
643
+ const mergeOrRestore = /^\/api\/characters\/[^/]+\/(?:merge|restore)$/u.test(pathname);
644
+ const deleting = request.method === "DELETE" && /^\/api\/characters\/[^/]+$/u.test(pathname);
645
+ if (mergeOrRestore || deleting || hasBodyField(request, "raceId") || hasBodyField(request, "species"))
646
+ extraWrite.push("races");
647
+ if (mergeOrRestore || deleting || hasBodyField(request, "organizationIds"))
648
+ extraWrite.push("organizations");
649
+ if (mergeOrRestore || deleting)
650
+ extraWrite.push("timeline", "relationships");
651
+ }
652
+ return direct("characters", extraWrite);
653
+ }
654
+ if (/^\/api\/(?:works\/[^/]+\/races|races\/[^/]+)(?:\/|$)/u.test(pathname)) {
655
+ const body = requestBodyRecord(request);
656
+ const memberIds = Array.isArray(body.memberIds) ? body.memberIds : [];
657
+ const createsMembers = request.method === "POST" && /^\/api\/works\/[^/]+\/races$/u.test(pathname) && memberIds.length > 0;
658
+ const updatesMembers = request.method === "PATCH" && (hasBodyField(request, "memberIds") || hasBodyField(request, "name"));
659
+ const replacesMembers = request.method === "DELETE" || /^\/api\/races\/[^/]+\/merge$/u.test(pathname);
660
+ return direct("races", write && (createsMembers || updatesMembers || replacesMembers) ? ["characters"] : []);
661
+ }
662
+ if (/^\/api\/(?:works\/[^/]+\/organizations|organizations\/[^/]+)(?:\/|$)/u.test(pathname)) {
663
+ const body = requestBodyRecord(request);
664
+ const memberIds = Array.isArray(body.memberIds) ? body.memberIds : [];
665
+ const createsMembers = request.method === "POST" && /^\/api\/works\/[^/]+\/organizations$/u.test(pathname) && memberIds.length > 0;
666
+ const updatesMembers = request.method === "PATCH" && hasBodyField(request, "memberIds");
667
+ const replacesMembers = request.method === "DELETE" || /^\/api\/organizations\/[^/]+\/merge$/u.test(pathname);
668
+ return direct("organizations", write && (createsMembers || updatesMembers || replacesMembers) ? ["characters"] : []);
669
+ }
670
+ const rules = [
671
+ [/^\/api\/works\/[^/]+\/(?:file-versions|import|volumes|chapters)(?:\/|$)/u, "prose"],
672
+ [/^\/api\/(?:volumes|chapters)\/[^/]+(?:\/|$)/u, "prose"],
673
+ [/^\/api\/works\/[^/]+\/(?:settings|attachments)(?:\/|$)/u, "settings"],
674
+ [/^\/api\/(?:settings|attachments)\/[^/]+(?:\/|$)/u, "settings"],
675
+ [/^\/api\/character-sections\/[^/]+(?:\/|$)/u, "characters"],
676
+ [/^\/api\/works\/[^/]+\/(?:timeline-tracks|timeline)(?:\/|$)/u, "timeline"],
677
+ [/^\/api\/(?:timeline-tracks|timeline)\/[^/]+(?:\/|$)/u, "timeline"],
678
+ [/^\/api\/works\/[^/]+\/relationships(?:\/|$)/u, "relationships"],
679
+ [/^\/api\/relationships\/[^/]+(?:\/|$)/u, "relationships"],
680
+ [/^\/api\/works\/[^/]+\/(?:outlines|foreshadows)(?:\/|$)/u, "outlines"],
681
+ [/^\/api\/(?:foreshadows|foreshadow-occurrences)\/[^/]+(?:\/|$)/u, "outlines"],
682
+ [/^\/api\/works\/[^/]+\/ai-settings(?:\/|$)/u, "ai-settings"],
683
+ [/^\/api\/works\/[^/]+\/task-defaults(?:\/|$)/u, "ai-settings"]
684
+ ];
685
+ for (const [pattern, module] of rules)
686
+ if (pattern.test(pathname))
687
+ return direct(module);
688
+ if (write && /^\/api\/reviews\/[^/]+\/character-resolution$/u.test(pathname)) {
689
+ const merging = requestBodyRecord(request).action === "merge";
690
+ return merging
691
+ ? { write: ["reviews", "characters", "races", "organizations", "timeline", "relationships"] }
692
+ : { write: ["reviews"] };
693
+ }
694
+ if (/^\/api\/(?:works\/[^/]+\/reviews|reviews\/[^/]+)(?:\/|$)/u.test(pathname)) {
695
+ return direct("reviews");
696
+ }
697
+ if (write && /^\/api\/suggestions\/[^/]+\/accept$/u.test(pathname)) {
698
+ return { write: ["ai", "prose"] };
699
+ }
700
+ if (/^\/api\/(?:works\/[^/]+\/(?:tasks|suggestions|ai-calls|ai-context-usage|ai-conversations|chat)|tasks\/[^/]+|ai-conversations\/[^/]+|suggestions\/[^/]+)(?:\/|$)/u.test(pathname)) {
701
+ const contextRead = aiContextReadModules(request);
702
+ if (/^\/api\/works\/[^/]+\/ai-context-usage$/u.test(pathname))
703
+ return { read: ["ai", ...contextRead] };
704
+ return write ? { read: contextRead, write: ["ai"] } : { read: ["ai"] };
705
+ }
706
+ if (/^\/api\/works\/[^/]+\/(?:search|export)$/u.test(pathname))
707
+ return { read: [...contentPermissionModules] };
708
+ return { ownerOnly: true };
709
+ }
526
710
  export function createWorkAuthorizationMiddleware(auth, disabled = false) {
527
711
  return (request, _response, next) => {
528
712
  if (disabled || !request.path.startsWith("/api/") || request.path.startsWith("/api/auth/") || request.path === "/api/health")
@@ -549,10 +733,8 @@ export function createWorkAuthorizationMiddleware(auth, disabled = false) {
549
733
  if (!workId)
550
734
  return next();
551
735
  const write = !["GET", "HEAD", "OPTIONS"].includes(request.method);
552
- const ownerOnly = write && (/^\/api\/works\/[^/]+$/u.test(request.path)
553
- || /^\/api\/works\/[^/]+\/cover$/u.test(request.path)
554
- || /^\/api\/works\/[^/]+\/members(?:\/[^/]+)?$/u.test(request.path));
555
- auth.assertWorkAccess(user, workId, write, ownerOnly, request.authMethod !== "api-key");
736
+ const requirements = workModuleRequirements(request, write);
737
+ auth.assertWorkAccess(user, workId, requirements, requirements.ownerOnly === true, request.authMethod !== "api-key");
556
738
  next();
557
739
  };
558
740
  }
@@ -1 +1 @@
1
- {"version":3,"file":"user-auth.js","sourceRoot":"","sources":["../src/user-auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"user-auth.js","sourceRoot":"","sources":["../src/user-auth.ts"],"names":[],"mappings":"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"}
package/dist/version.js CHANGED
@@ -1,2 +1,2 @@
1
- export const APP_VERSION = "0.3.8";
1
+ export const APP_VERSION = "0.3.10";
2
2
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,QAAQ,CAAC"}
@@ -0,0 +1,128 @@
1
+ export const workPermissionModules = [
2
+ "prose",
3
+ "settings",
4
+ "characters",
5
+ "races",
6
+ "organizations",
7
+ "timeline",
8
+ "relationships",
9
+ "outlines",
10
+ "reviews",
11
+ "ai",
12
+ "ai-settings"
13
+ ];
14
+ export const workPermissionModuleLabels = {
15
+ prose: "正文",
16
+ settings: "设定库",
17
+ characters: "角色",
18
+ races: "种族",
19
+ organizations: "组织",
20
+ timeline: "时间轴",
21
+ relationships: "关系",
22
+ outlines: "大纲与伏笔",
23
+ reviews: "审核",
24
+ ai: "AI 对话与分析",
25
+ "ai-settings": "AI 设置"
26
+ };
27
+ const settingsEditorWriteModules = new Set([
28
+ "settings",
29
+ "characters",
30
+ "races",
31
+ "organizations",
32
+ "timeline",
33
+ "relationships",
34
+ "outlines"
35
+ ]);
36
+ function permissionRecord(access) {
37
+ return Object.fromEntries(workPermissionModules.map((module) => [module, access]));
38
+ }
39
+ function isRecord(value) {
40
+ return Boolean(value) && typeof value === "object" && !Array.isArray(value);
41
+ }
42
+ function parsedPermissions(value) {
43
+ if (isRecord(value))
44
+ return value;
45
+ if (typeof value !== "string")
46
+ return {};
47
+ try {
48
+ const parsed = JSON.parse(value);
49
+ return isRecord(parsed) ? parsed : {};
50
+ }
51
+ catch {
52
+ return {};
53
+ }
54
+ }
55
+ export function fullWorkModulePermissions() {
56
+ return permissionRecord("write");
57
+ }
58
+ export function readOnlyWorkModulePermissions() {
59
+ return permissionRecord("read");
60
+ }
61
+ export function emptyWorkModulePermissions() {
62
+ return permissionRecord("none");
63
+ }
64
+ export function settingsEditorModulePermissions() {
65
+ const permissions = readOnlyWorkModulePermissions();
66
+ for (const module of settingsEditorWriteModules)
67
+ permissions[module] = "write";
68
+ return permissions;
69
+ }
70
+ export function normalizeWorkModulePermissions(value) {
71
+ if (!isRecord(value))
72
+ return null;
73
+ const permissions = emptyWorkModulePermissions();
74
+ for (const module of workPermissionModules) {
75
+ const access = value[module];
76
+ if (access !== "none" && access !== "read" && access !== "write")
77
+ return null;
78
+ permissions[module] = access;
79
+ }
80
+ return permissions;
81
+ }
82
+ export function storedWorkModulePermissions(role, permissionsValue) {
83
+ if (role === "owner")
84
+ return fullWorkModulePermissions();
85
+ const parsed = parsedPermissions(permissionsValue);
86
+ const explicit = normalizeWorkModulePermissions(parsed.modules);
87
+ if (explicit)
88
+ return explicit;
89
+ if ("modules" in parsed) {
90
+ const permissions = emptyWorkModulePermissions();
91
+ if (!isRecord(parsed.modules))
92
+ return permissions;
93
+ for (const module of workPermissionModules) {
94
+ const access = parsed.modules[module];
95
+ if (access === "none" || access === "read" || access === "write")
96
+ permissions[module] = access;
97
+ }
98
+ return permissions;
99
+ }
100
+ if (role === "viewer")
101
+ return readOnlyWorkModulePermissions();
102
+ if (role === "editor" && parsed.editScope === "settings")
103
+ return settingsEditorModulePermissions();
104
+ if (role === "editor")
105
+ return fullWorkModulePermissions();
106
+ return emptyWorkModulePermissions();
107
+ }
108
+ export function storedMembershipForPermissions(permissions) {
109
+ const role = workPermissionModules.some((module) => permissions[module] === "write") ? "editor" : "viewer";
110
+ return { role, permissionsJson: JSON.stringify({ modules: permissions }) };
111
+ }
112
+ export function classifyWorkModulePermissions(permissions) {
113
+ if (workPermissionModules.every((module) => permissions[module] === "write"))
114
+ return "editor";
115
+ if (workPermissionModules.every((module) => permissions[module] === "read"))
116
+ return "viewer";
117
+ const settingsEditor = settingsEditorModulePermissions();
118
+ if (workPermissionModules.every((module) => permissions[module] === settingsEditor[module]))
119
+ return "settings-editor";
120
+ return "custom";
121
+ }
122
+ export function canReadWorkModule(permissions, module) {
123
+ return permissions[module] === "read" || permissions[module] === "write";
124
+ }
125
+ export function canWriteWorkModule(permissions, module) {
126
+ return permissions[module] === "write";
127
+ }
128
+ //# sourceMappingURL=work-permissions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"work-permissions.js","sourceRoot":"","sources":["../src/work-permissions.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@musnows/scriverse",
3
- "version": "0.3.8",
3
+ "version": "0.3.10",
4
4
  "description": "Command-line client and local server for the Scriverse long-form fiction workspace",
5
5
  "license": "MIT",
6
6
  "author": "musnows",