@kywi-software/core 0.4.0 → 0.6.0
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/admin/field-components.d.ts.map +1 -1
- package/dist/admin/field-components.js +55 -0
- package/dist/admin/field-components.js.map +1 -1
- package/dist/admin/form-builder.js +10 -1
- package/dist/admin/form-builder.js.map +1 -1
- package/dist/admin/form-helpers.d.ts +1 -1
- package/dist/admin/form-helpers.d.ts.map +1 -1
- package/dist/admin/form-helpers.js +21 -0
- package/dist/admin/form-helpers.js.map +1 -1
- package/dist/admin/layout-editor/component-actions.d.ts +43 -1
- package/dist/admin/layout-editor/component-actions.d.ts.map +1 -1
- package/dist/admin/layout-editor/component-actions.js +59 -1
- package/dist/admin/layout-editor/component-actions.js.map +1 -1
- package/dist/admin/layout-editor/editor-canvas.d.ts.map +1 -1
- package/dist/admin/layout-editor/editor-canvas.js +1 -1
- package/dist/admin/layout-editor/editor-canvas.js.map +1 -1
- package/dist/admin/layout-editor/editor-state.d.ts +4 -0
- package/dist/admin/layout-editor/editor-state.d.ts.map +1 -1
- package/dist/admin/layout-editor/editor-state.js +17 -0
- package/dist/admin/layout-editor/editor-state.js.map +1 -1
- package/dist/admin/layout-editor/index.d.ts +1 -1
- package/dist/admin/layout-editor/index.d.ts.map +1 -1
- package/dist/admin/layout-editor/index.js +1 -1
- package/dist/admin/layout-editor/index.js.map +1 -1
- package/dist/admin/layout-editor/layout-editor.d.ts.map +1 -1
- package/dist/admin/layout-editor/layout-editor.js +95 -2
- package/dist/admin/layout-editor/layout-editor.js.map +1 -1
- package/dist/admin/layout-editor/overlay-shell.d.ts.map +1 -1
- package/dist/admin/layout-editor/overlay-shell.js +8 -0
- package/dist/admin/layout-editor/overlay-shell.js.map +1 -1
- package/dist/admin/layout-editor/props-panel.d.ts +12 -2
- package/dist/admin/layout-editor/props-panel.d.ts.map +1 -1
- package/dist/admin/layout-editor/props-panel.js +30 -14
- package/dist/admin/layout-editor/props-panel.js.map +1 -1
- package/dist/admin/layout-editor/section-overlay.d.ts +6 -1
- package/dist/admin/layout-editor/section-overlay.d.ts.map +1 -1
- package/dist/admin/layout-editor/section-overlay.js +11 -2
- package/dist/admin/layout-editor/section-overlay.js.map +1 -1
- package/dist/admin/layout-editor/section-template-picker.d.ts +8 -1
- package/dist/admin/layout-editor/section-template-picker.d.ts.map +1 -1
- package/dist/admin/layout-editor/section-template-picker.js +31 -2
- package/dist/admin/layout-editor/section-template-picker.js.map +1 -1
- package/dist/admin/server.d.ts +1 -0
- package/dist/admin/server.d.ts.map +1 -1
- package/dist/admin/server.js +7 -0
- package/dist/admin/server.js.map +1 -1
- package/dist/admin/surfaces/contentTypes/content-types-designer.d.ts.map +1 -1
- package/dist/admin/surfaces/contentTypes/content-types-designer.js +12 -2
- package/dist/admin/surfaces/contentTypes/content-types-designer.js.map +1 -1
- package/dist/admin/surfaces/dashboard/dashboard-index.d.ts.map +1 -1
- package/dist/admin/surfaces/dashboard/dashboard-index.js +23 -1
- package/dist/admin/surfaces/dashboard/dashboard-index.js.map +1 -1
- package/dist/admin/webhook-manager.d.ts.map +1 -1
- package/dist/admin/webhook-manager.js +1 -0
- package/dist/admin/webhook-manager.js.map +1 -1
- package/dist/api/admin-features-routes.d.ts.map +1 -1
- package/dist/api/admin-features-routes.js +7 -1
- package/dist/api/admin-features-routes.js.map +1 -1
- package/dist/api/audience-preview-routes.d.ts.map +1 -1
- package/dist/api/audience-preview-routes.js +20 -2
- package/dist/api/audience-preview-routes.js.map +1 -1
- package/dist/api/audience-routes.d.ts.map +1 -1
- package/dist/api/audience-routes.js +44 -3
- package/dist/api/audience-routes.js.map +1 -1
- package/dist/api/auth-routes.d.ts.map +1 -1
- package/dist/api/auth-routes.js +16 -0
- package/dist/api/auth-routes.js.map +1 -1
- package/dist/api/auth.d.ts.map +1 -1
- package/dist/api/auth.js +34 -1
- package/dist/api/auth.js.map +1 -1
- package/dist/api/bulk-routes.d.ts.map +1 -1
- package/dist/api/bulk-routes.js +44 -12
- package/dist/api/bulk-routes.js.map +1 -1
- package/dist/api/category-routes.d.ts.map +1 -1
- package/dist/api/category-routes.js +10 -1
- package/dist/api/category-routes.js.map +1 -1
- package/dist/api/changeset-routes.d.ts +9 -0
- package/dist/api/changeset-routes.d.ts.map +1 -1
- package/dist/api/changeset-routes.js +13 -2
- package/dist/api/changeset-routes.js.map +1 -1
- package/dist/api/comment-routes.d.ts.map +1 -1
- package/dist/api/comment-routes.js +27 -1
- package/dist/api/comment-routes.js.map +1 -1
- package/dist/api/component-routes.d.ts.map +1 -1
- package/dist/api/component-routes.js +16 -1
- package/dist/api/component-routes.js.map +1 -1
- package/dist/api/content-routes.d.ts.map +1 -1
- package/dist/api/content-routes.js +59 -20
- package/dist/api/content-routes.js.map +1 -1
- package/dist/api/content-schemas.d.ts.map +1 -1
- package/dist/api/content-schemas.js +39 -0
- package/dist/api/content-schemas.js.map +1 -1
- package/dist/api/content-type-routes.d.ts.map +1 -1
- package/dist/api/content-type-routes.js +25 -5
- package/dist/api/content-type-routes.js.map +1 -1
- package/dist/api/dashboard-routes.d.ts.map +1 -1
- package/dist/api/dashboard-routes.js +4 -1
- package/dist/api/dashboard-routes.js.map +1 -1
- package/dist/api/experiment-routes.d.ts.map +1 -1
- package/dist/api/experiment-routes.js +24 -2
- package/dist/api/experiment-routes.js.map +1 -1
- package/dist/api/feed-routes.d.ts +4 -4
- package/dist/api/feed-routes.d.ts.map +1 -1
- package/dist/api/feed-routes.js +12 -2
- package/dist/api/feed-routes.js.map +1 -1
- package/dist/api/form-routes.d.ts +18 -0
- package/dist/api/form-routes.d.ts.map +1 -1
- package/dist/api/form-routes.js +207 -14
- package/dist/api/form-routes.js.map +1 -1
- package/dist/api/group-routes.d.ts.map +1 -1
- package/dist/api/group-routes.js +27 -0
- package/dist/api/group-routes.js.map +1 -1
- package/dist/api/index.d.ts +9 -0
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +25 -2
- package/dist/api/index.js.map +1 -1
- package/dist/api/layout-routes.d.ts.map +1 -1
- package/dist/api/layout-routes.js +13 -1
- package/dist/api/layout-routes.js.map +1 -1
- package/dist/api/media-routes.d.ts.map +1 -1
- package/dist/api/media-routes.js +19 -0
- package/dist/api/media-routes.js.map +1 -1
- package/dist/api/scheduler-routes.d.ts +10 -0
- package/dist/api/scheduler-routes.d.ts.map +1 -1
- package/dist/api/scheduler-routes.js +13 -2
- package/dist/api/scheduler-routes.js.map +1 -1
- package/dist/api/search-routes.d.ts.map +1 -1
- package/dist/api/search-routes.js +11 -2
- package/dist/api/search-routes.js.map +1 -1
- package/dist/api/section-template-routes.d.ts.map +1 -1
- package/dist/api/section-template-routes.js +16 -1
- package/dist/api/section-template-routes.js.map +1 -1
- package/dist/api/site-context.d.ts +30 -1
- package/dist/api/site-context.d.ts.map +1 -1
- package/dist/api/site-context.js +41 -0
- package/dist/api/site-context.js.map +1 -1
- package/dist/api/tag-routes.d.ts.map +1 -1
- package/dist/api/tag-routes.js +10 -1
- package/dist/api/tag-routes.js.map +1 -1
- package/dist/api/translation-routes.d.ts.map +1 -1
- package/dist/api/translation-routes.js +19 -4
- package/dist/api/translation-routes.js.map +1 -1
- package/dist/api/user-routes.d.ts.map +1 -1
- package/dist/api/user-routes.js +13 -0
- package/dist/api/user-routes.js.map +1 -1
- package/dist/api/version-routes.d.ts.map +1 -1
- package/dist/api/version-routes.js +1 -0
- package/dist/api/version-routes.js.map +1 -1
- package/dist/api/webhook-routes.d.ts.map +1 -1
- package/dist/api/webhook-routes.js +31 -2
- package/dist/api/webhook-routes.js.map +1 -1
- package/dist/api/workflow-routes.d.ts.map +1 -1
- package/dist/api/workflow-routes.js +45 -1
- package/dist/api/workflow-routes.js.map +1 -1
- package/dist/auth/tokens.d.ts.map +1 -1
- package/dist/auth/tokens.js +14 -1
- package/dist/auth/tokens.js.map +1 -1
- package/dist/config/types.d.ts +29 -2
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js.map +1 -1
- package/dist/db/bulk-queries.d.ts +8 -0
- package/dist/db/bulk-queries.d.ts.map +1 -1
- package/dist/db/bulk-queries.js +16 -0
- package/dist/db/bulk-queries.js.map +1 -1
- package/dist/db/changeset-queries.d.ts +27 -1
- package/dist/db/changeset-queries.d.ts.map +1 -1
- package/dist/db/changeset-queries.js +56 -2
- package/dist/db/changeset-queries.js.map +1 -1
- package/dist/db/content-permission-dedupe.d.ts +24 -0
- package/dist/db/content-permission-dedupe.d.ts.map +1 -0
- package/dist/db/content-permission-dedupe.js +69 -0
- package/dist/db/content-permission-dedupe.js.map +1 -0
- package/dist/db/content-permission-queries.d.ts +8 -0
- package/dist/db/content-permission-queries.d.ts.map +1 -1
- package/dist/db/content-permission-queries.js +29 -1
- package/dist/db/content-permission-queries.js.map +1 -1
- package/dist/db/content-queries.d.ts +7 -0
- package/dist/db/content-queries.d.ts.map +1 -1
- package/dist/db/content-queries.js +9 -0
- package/dist/db/content-queries.js.map +1 -1
- package/dist/db/content-type-queries.d.ts.map +1 -1
- package/dist/db/content-type-queries.js +3 -1
- package/dist/db/content-type-queries.js.map +1 -1
- package/dist/db/dynamic-schema.d.ts.map +1 -1
- package/dist/db/dynamic-schema.js +1 -0
- package/dist/db/dynamic-schema.js.map +1 -1
- package/dist/db/index.d.ts +1 -0
- package/dist/db/index.d.ts.map +1 -1
- package/dist/db/index.js +3 -0
- package/dist/db/index.js.map +1 -1
- package/dist/db/schema-apply.d.ts.map +1 -1
- package/dist/db/schema-apply.js +1 -0
- package/dist/db/schema-apply.js.map +1 -1
- package/dist/db/schema-field-queries.d.ts +2 -0
- package/dist/db/schema-field-queries.d.ts.map +1 -1
- package/dist/db/schema-field-queries.js +4 -0
- package/dist/db/schema-field-queries.js.map +1 -1
- package/dist/db/site-membership-queries.d.ts +6 -0
- package/dist/db/site-membership-queries.d.ts.map +1 -1
- package/dist/db/site-membership-queries.js +9 -0
- package/dist/db/site-membership-queries.js.map +1 -1
- package/dist/db/user-search.d.ts +8 -0
- package/dist/db/user-search.d.ts.map +1 -1
- package/dist/db/user-search.js +14 -8
- package/dist/db/user-search.js.map +1 -1
- package/dist/db/workflow-queries.d.ts +1 -0
- package/dist/db/workflow-queries.d.ts.map +1 -1
- package/dist/db/workflow-queries.js +24 -0
- package/dist/db/workflow-queries.js.map +1 -1
- package/dist/forms/types.d.ts +5 -0
- package/dist/forms/types.d.ts.map +1 -1
- package/dist/forms/validation.d.ts +20 -0
- package/dist/forms/validation.d.ts.map +1 -1
- package/dist/forms/validation.js +45 -2
- package/dist/forms/validation.js.map +1 -1
- package/dist/hooks/ax-invalidation.d.ts.map +1 -1
- package/dist/hooks/ax-invalidation.js +1 -0
- package/dist/hooks/ax-invalidation.js.map +1 -1
- package/dist/hooks/dispatch.d.ts +1 -0
- package/dist/hooks/dispatch.d.ts.map +1 -1
- package/dist/hooks/dispatch.js +6 -0
- package/dist/hooks/dispatch.js.map +1 -1
- package/dist/hooks/webhook-dispatch.d.ts.map +1 -1
- package/dist/hooks/webhook-dispatch.js +1 -0
- package/dist/hooks/webhook-dispatch.js.map +1 -1
- package/dist/layout/index.d.ts +1 -1
- package/dist/layout/index.d.ts.map +1 -1
- package/dist/layout/index.js.map +1 -1
- package/dist/layout/renderer.d.ts +15 -2
- package/dist/layout/renderer.d.ts.map +1 -1
- package/dist/layout/renderer.js +49 -3
- package/dist/layout/renderer.js.map +1 -1
- package/dist/layout/types.d.ts +9 -0
- package/dist/layout/types.d.ts.map +1 -1
- package/dist/layout/types.js +5 -0
- package/dist/layout/types.js.map +1 -1
- package/dist/schema/base.d.ts +74 -0
- package/dist/schema/base.d.ts.map +1 -1
- package/dist/schema/base.js +16 -0
- package/dist/schema/base.js.map +1 -1
- package/dist/schema/content-permissions.d.ts.map +1 -1
- package/dist/schema/content-permissions.js +23 -2
- package/dist/schema/content-permissions.js.map +1 -1
- package/dist/schema/mapper.d.ts.map +1 -1
- package/dist/schema/mapper.js +1 -0
- package/dist/schema/mapper.js.map +1 -1
- package/dist/schema/mysql-tables.d.ts +68 -0
- package/dist/schema/mysql-tables.d.ts.map +1 -1
- package/dist/schema/mysql-tables.js +7 -0
- package/dist/schema/mysql-tables.js.map +1 -1
- package/dist/scope/kywi-form.d.ts.map +1 -1
- package/dist/scope/kywi-form.js +51 -6
- package/dist/scope/kywi-form.js.map +1 -1
- package/dist/scope/kywi-wizard-form.d.ts.map +1 -1
- package/dist/scope/kywi-wizard-form.js +29 -3
- package/dist/scope/kywi-wizard-form.js.map +1 -1
- package/dist/versioning/scheduler.d.ts +10 -2
- package/dist/versioning/scheduler.d.ts.map +1 -1
- package/dist/versioning/scheduler.js +13 -5
- package/dist/versioning/scheduler.js.map +1 -1
- package/package.json +7 -4
package/dist/api/auth.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { jwtVerify } from 'jose';
|
|
2
2
|
import { resolveApiKey } from '../db/api-key-queries.js';
|
|
3
3
|
import { getUserById, getUserGroups, buildUserContext } from '../db/user-queries.js';
|
|
4
|
+
import { getUserSiteIds } from '../db/site-membership-queries.js';
|
|
4
5
|
import { effectiveApiKeyRole } from '../auth/roles.js';
|
|
5
6
|
export async function verifyAuthHeader(authHeader, secret) {
|
|
6
7
|
if (!authHeader) {
|
|
@@ -23,6 +24,13 @@ export async function verifyAuthHeader(authHeader, secret) {
|
|
|
23
24
|
? payload.groups
|
|
24
25
|
: [],
|
|
25
26
|
};
|
|
27
|
+
// Per-site authorization (#73): carry the `sites` claim through as
|
|
28
|
+
// `siteMemberships`. An ABSENT claim (old token) is left undefined here —
|
|
29
|
+
// `resolveAuth` does the one-shot DB fallback since it holds the db handle;
|
|
30
|
+
// a PRESENT-but-empty claim is an explicit "zero rows" and is preserved.
|
|
31
|
+
if (Array.isArray(payload.sites)) {
|
|
32
|
+
user.siteMemberships = payload.sites;
|
|
33
|
+
}
|
|
26
34
|
return { user };
|
|
27
35
|
}
|
|
28
36
|
catch (err) {
|
|
@@ -45,6 +53,9 @@ export async function resolveAuth(authHeader, secret, db) {
|
|
|
45
53
|
return { user: null, error: 'API key owner not found or inactive' };
|
|
46
54
|
const groups = await getUserGroups(db, user.id);
|
|
47
55
|
const ctx = buildUserContext(user, groups);
|
|
56
|
+
// #73: this branch already does DB lookups, so resolve per-site memberships
|
|
57
|
+
// here directly (there is no JWT to carry a `sites` claim for API keys).
|
|
58
|
+
ctx.siteMemberships = await getUserSiteIds(db, user.id);
|
|
48
59
|
// #54: enforce the key's declared scopes as a ceiling on the owner's role.
|
|
49
60
|
// The effective permission is intersection(owner role, key scopes) — NOT a
|
|
50
61
|
// fallback to the owner's role. Otherwise a read-scoped key (the kind handed
|
|
@@ -55,6 +66,28 @@ export async function resolveAuth(authHeader, secret, db) {
|
|
|
55
66
|
// it is unaffected.
|
|
56
67
|
return { user: { ...ctx, role: effectiveApiKeyRole(ctx.role, result.scopes) }, viaApiKey: true };
|
|
57
68
|
}
|
|
58
|
-
|
|
69
|
+
const result = await verifyAuthHeader(authHeader, secret);
|
|
70
|
+
// #73 old-token fallback: a valid session JWT minted before the `sites` claim
|
|
71
|
+
// existed leaves `siteMemberships` undefined. Do ONE DB lookup so the token is
|
|
72
|
+
// authorized against real memberships.
|
|
73
|
+
//
|
|
74
|
+
// This must FAIL CLOSED. Only two states may pass site scoping as
|
|
75
|
+
// "unrestricted": a legacy user with zero membership rows (the lookup returns
|
|
76
|
+
// `[]`), and an old token whose lookup we successfully performed. If the lookup
|
|
77
|
+
// itself THROWS we cannot distinguish "zero rows" from "unknown", so we must
|
|
78
|
+
// NOT leave `siteMemberships` undefined (which reads as unrestricted) — that
|
|
79
|
+
// would let a DB blip re-open cross-site access. Deny instead (drop the user →
|
|
80
|
+
// authenticated routes 401), matching the API-key branch, which has no catch
|
|
81
|
+
// and likewise refuses to grant access it could not authorize. A successful
|
|
82
|
+
// lookup returning `[]` still passes as legacy-unrestricted, as intended.
|
|
83
|
+
if (result.user && result.user.siteMemberships === undefined) {
|
|
84
|
+
try {
|
|
85
|
+
result.user.siteMemberships = await getUserSiteIds(db, result.user.id);
|
|
86
|
+
}
|
|
87
|
+
catch {
|
|
88
|
+
return { user: null, error: 'Failed to resolve site memberships' };
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return result;
|
|
59
92
|
}
|
|
60
93
|
//# sourceMappingURL=auth.js.map
|
package/dist/api/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/api/auth.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/api/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bulk-routes.d.ts","sourceRoot":"","sources":["../../src/api/bulk-routes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,WAAW,EAAe,MAAM,oBAAoB,CAAA;AACjG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAM7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"bulk-routes.d.ts","sourceRoot":"","sources":["../../src/api/bulk-routes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,WAAW,EAAe,MAAM,oBAAoB,CAAA;AACjG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAM7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AA4CxD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,UAAU,CAAA;IAClB,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;IAC9C,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAA;IACpD,YAAY,EAAE,YAAY,CAAA;IAC1B,OAAO,EAAE,WAAW,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACnC;AA2BD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,gBAAgB,GAAG,IAAI,CAuN9E"}
|
package/dist/api/bulk-routes.js
CHANGED
|
@@ -2,10 +2,10 @@ import { z } from 'zod';
|
|
|
2
2
|
import { resolveAuth } from './auth.js';
|
|
3
3
|
import { canAccessContent } from '../auth/roles.js';
|
|
4
4
|
import { checkDocumentMutationAccess } from '../auth/access-control.js';
|
|
5
|
-
import { resolveSiteId } from './site-context.js';
|
|
5
|
+
import { resolveSiteId, assertSiteAccess } from './site-context.js';
|
|
6
6
|
import { createContentHookDispatcher } from '../hooks/dispatch.js';
|
|
7
7
|
import { jsonOk, jsonError, unauthorized, forbidden, notFound, validationError } from './response.js';
|
|
8
|
-
import { bulkCreate, bulkUpdate, bulkPublish, bulkUnpublish, bulkDelete } from '../db/bulk-queries.js';
|
|
8
|
+
import { bulkCreate, bulkUpdate, bulkPublish, bulkUnpublish, bulkDelete, getSiteIdsForIds } from '../db/bulk-queries.js';
|
|
9
9
|
/**
|
|
10
10
|
* Fail-closed content-ACL gate for a bulk mutation (G-J04b-01). Every targeted
|
|
11
11
|
* node must pass the per-document mutation check; if any single id is denied the
|
|
@@ -21,6 +21,22 @@ async function assertBulkDocAccess(db, ids, user, action) {
|
|
|
21
21
|
}
|
|
22
22
|
return null;
|
|
23
23
|
}
|
|
24
|
+
/**
|
|
25
|
+
* Per-site authorization for a bulk mutation (#73). `assertBulkDocAccess` is
|
|
26
|
+
* ACL-only and siteAdmin+ bypasses it, so it does NOT stop a siteAdmin of one
|
|
27
|
+
* site from addressing another site's rows by id. This loads each target's
|
|
28
|
+
* owning site and rejects the whole batch (403) if any lies outside the caller's
|
|
29
|
+
* memberships. superAdmin / legacy (no memberships) callers pass unchanged.
|
|
30
|
+
* Returns a 403 Response when denied, or null to proceed.
|
|
31
|
+
*/
|
|
32
|
+
async function assertBulkSiteAccess(db, ids, user) {
|
|
33
|
+
for (const siteId of await getSiteIdsForIds(db, ids)) {
|
|
34
|
+
const denied = assertSiteAccess(user, siteId);
|
|
35
|
+
if (denied)
|
|
36
|
+
return denied;
|
|
37
|
+
}
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
24
40
|
const MAX_BULK_ITEMS = 100;
|
|
25
41
|
const idsSchema = z.object({
|
|
26
42
|
ids: z.array(z.string()).min(1, 'At least one ID is required'),
|
|
@@ -48,15 +64,17 @@ export function registerBulkRoutes(router, ctx) {
|
|
|
48
64
|
* mutation.
|
|
49
65
|
*
|
|
50
66
|
* `afterPublish` fires the content/feed/nav + AX cache invalidation and webhook
|
|
51
|
-
* subscribers for a publish; `
|
|
52
|
-
*
|
|
67
|
+
* subscribers for a publish; `afterUnpublish` does the same for an unpublish via
|
|
68
|
+
* its own dedicated event so the public cache is invalidated there too.
|
|
53
69
|
*/
|
|
54
|
-
async function dispatchPerRow(rows, method) {
|
|
70
|
+
async function dispatchPerRow(rows, method, user) {
|
|
55
71
|
for (const row of rows) {
|
|
56
72
|
const contentType = contentTypeMap.get(String(row.contentTypeName ?? ''));
|
|
57
73
|
if (!contentType)
|
|
58
74
|
continue;
|
|
59
|
-
|
|
75
|
+
// Per-request context so `kywi.user` carries the authenticated actor (#62)
|
|
76
|
+
// — never mutate the shared kywiCtx.
|
|
77
|
+
const dispatch = createContentHookDispatcher(contentType, ctx.hookRegistry, { ...ctx.kywiCtx, user });
|
|
60
78
|
await dispatch[method](row);
|
|
61
79
|
}
|
|
62
80
|
}
|
|
@@ -82,6 +100,9 @@ export function registerBulkRoutes(router, ctx) {
|
|
|
82
100
|
return validationError(parsed.error.errors.map(e => ({ path: e.path.join('.'), message: e.message })));
|
|
83
101
|
}
|
|
84
102
|
const siteId = resolveSiteId(req, config, ctx.siteIdMap);
|
|
103
|
+
const siteDenied = assertSiteAccess(auth.user, siteId);
|
|
104
|
+
if (siteDenied)
|
|
105
|
+
return siteDenied;
|
|
85
106
|
const customTable = customTableMap.get(contentType.name) ?? null;
|
|
86
107
|
const result = await bulkCreate(db, contentType, customTable, siteId, parsed.data.items, auth.user.id);
|
|
87
108
|
return jsonOk(result, 201);
|
|
@@ -111,6 +132,9 @@ export function registerBulkRoutes(router, ctx) {
|
|
|
111
132
|
const updateDenied = await assertBulkDocAccess(db, updateIds, auth.user, 'write');
|
|
112
133
|
if (updateDenied)
|
|
113
134
|
return updateDenied;
|
|
135
|
+
const updateSiteDenied = await assertBulkSiteAccess(db, updateIds, auth.user);
|
|
136
|
+
if (updateSiteDenied)
|
|
137
|
+
return updateSiteDenied;
|
|
114
138
|
const customTable = customTableMap.get(contentType.name) ?? null;
|
|
115
139
|
const result = await bulkUpdate(db, contentType, customTable, parsed.data.items, auth.user.id);
|
|
116
140
|
return jsonOk(result);
|
|
@@ -139,6 +163,9 @@ export function registerBulkRoutes(router, ctx) {
|
|
|
139
163
|
const deleteDenied = await assertBulkDocAccess(db, parsed.data.ids, auth.user, 'delete');
|
|
140
164
|
if (deleteDenied)
|
|
141
165
|
return deleteDenied;
|
|
166
|
+
const deleteSiteDenied = await assertBulkSiteAccess(db, parsed.data.ids, auth.user);
|
|
167
|
+
if (deleteSiteDenied)
|
|
168
|
+
return deleteSiteDenied;
|
|
142
169
|
const count = await bulkDelete(db, parsed.data.ids);
|
|
143
170
|
return jsonOk({ count });
|
|
144
171
|
});
|
|
@@ -166,11 +193,14 @@ export function registerBulkRoutes(router, ctx) {
|
|
|
166
193
|
const publishDenied = await assertBulkDocAccess(db, parsed.data.ids, auth.user, 'publish');
|
|
167
194
|
if (publishDenied)
|
|
168
195
|
return publishDenied;
|
|
196
|
+
const publishSiteDenied = await assertBulkSiteAccess(db, parsed.data.ids, auth.user);
|
|
197
|
+
if (publishSiteDenied)
|
|
198
|
+
return publishSiteDenied;
|
|
169
199
|
const rows = await bulkPublish(db, parsed.data.ids);
|
|
170
200
|
// Dispatch afterPublish per published row so cache/feed/nav + AX invalidation
|
|
171
201
|
// and webhooks fire — the admin content-list "bulk publish" runs through here,
|
|
172
202
|
// and without this the public site keeps serving stale cache after a publish.
|
|
173
|
-
await dispatchPerRow(rows, 'afterPublish');
|
|
203
|
+
await dispatchPerRow(rows, 'afterPublish', auth.user);
|
|
174
204
|
return jsonOk({ count: rows.length });
|
|
175
205
|
});
|
|
176
206
|
// POST /content/:type/bulk/unpublish — Unpublish multiple items
|
|
@@ -197,12 +227,14 @@ export function registerBulkRoutes(router, ctx) {
|
|
|
197
227
|
const unpublishDenied = await assertBulkDocAccess(db, parsed.data.ids, auth.user, 'publish');
|
|
198
228
|
if (unpublishDenied)
|
|
199
229
|
return unpublishDenied;
|
|
230
|
+
const unpublishSiteDenied = await assertBulkSiteAccess(db, parsed.data.ids, auth.user);
|
|
231
|
+
if (unpublishSiteDenied)
|
|
232
|
+
return unpublishSiteDenied;
|
|
200
233
|
const rows = await bulkUnpublish(db, parsed.data.ids);
|
|
201
|
-
// Dispatch
|
|
202
|
-
// nav + AX projections) is invalidated — otherwise
|
|
203
|
-
// serving from stale cache.
|
|
204
|
-
|
|
205
|
-
await dispatchPerRow(rows, 'afterUpdate');
|
|
234
|
+
// Dispatch the dedicated afterUnpublish event per unpublished row so the
|
|
235
|
+
// public cache (content/feed/nav + AX projections) is invalidated — otherwise
|
|
236
|
+
// an unpublished node keeps serving from stale cache.
|
|
237
|
+
await dispatchPerRow(rows, 'afterUnpublish', auth.user);
|
|
206
238
|
return jsonOk({ count: rows.length });
|
|
207
239
|
});
|
|
208
240
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bulk-routes.js","sourceRoot":"","sources":["../../src/api/bulk-routes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bulk-routes.js","sourceRoot":"","sources":["../../src/api/bulk-routes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"category-routes.d.ts","sourceRoot":"","sources":["../../src/api/category-routes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAoBxD,UAAU,oBAAoB;IAC5B,MAAM,EAAE,UAAU,CAAA;IAClB,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,YAAY,CAAA;CAC3B;AAwBD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,oBAAoB,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"category-routes.d.ts","sourceRoot":"","sources":["../../src/api/category-routes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAoBxD,UAAU,oBAAoB;IAC5B,MAAM,EAAE,UAAU,CAAA;IAClB,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,YAAY,CAAA;CAC3B;AAwBD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,oBAAoB,GAAG,IAAI,CAiLtF"}
|
|
@@ -2,7 +2,7 @@ import { z } from 'zod';
|
|
|
2
2
|
import { createCategoryHookDispatcher } from '../hooks/dispatch.js';
|
|
3
3
|
import { jsonOk, jsonError, notFound, unauthorized, forbidden, validationError } from './response.js';
|
|
4
4
|
import { resolveAuth } from './auth.js';
|
|
5
|
-
import { toSiteUuid } from './site-context.js';
|
|
5
|
+
import { toSiteUuid, assertSiteAccess } from './site-context.js';
|
|
6
6
|
import { hasMinRole, canAccessContent } from '../auth/roles.js';
|
|
7
7
|
import { listCategories, getCategoryById, createCategory, updateCategory, deleteCategory, assignContentToCategory, removeContentFromCategory, listContentByCategory, buildCategoryTree, } from '../db/category-queries.js';
|
|
8
8
|
// ─── Zod schemas ──────────────────────────────────────────────────────────────
|
|
@@ -73,6 +73,9 @@ export function registerCategoryRoutes(router, ctx) {
|
|
|
73
73
|
return validationError(parsed.error.errors.map(e => ({ path: e.path.join('.'), message: e.message })));
|
|
74
74
|
}
|
|
75
75
|
const siteId = await toSiteUuid(db, parsed.data.siteId, config);
|
|
76
|
+
const siteDenied = assertSiteAccess(auth.user, siteId);
|
|
77
|
+
if (siteDenied)
|
|
78
|
+
return siteDenied;
|
|
76
79
|
const createData = {
|
|
77
80
|
siteId,
|
|
78
81
|
name: parsed.data.name,
|
|
@@ -114,6 +117,9 @@ export function registerCategoryRoutes(router, ctx) {
|
|
|
114
117
|
}
|
|
115
118
|
const url = new URL(req.url);
|
|
116
119
|
const siteId = await toSiteUuid(db, url.searchParams.get('siteId'), config);
|
|
120
|
+
const siteDenied = assertSiteAccess(auth.user, siteId);
|
|
121
|
+
if (siteDenied)
|
|
122
|
+
return siteDenied;
|
|
117
123
|
const updateData = {};
|
|
118
124
|
if (parsed.data.name !== undefined)
|
|
119
125
|
updateData.name = parsed.data.name;
|
|
@@ -140,6 +146,9 @@ export function registerCategoryRoutes(router, ctx) {
|
|
|
140
146
|
return forbidden();
|
|
141
147
|
const url = new URL(req.url);
|
|
142
148
|
const siteId = await toSiteUuid(db, url.searchParams.get('siteId'), config);
|
|
149
|
+
const siteDenied = assertSiteAccess(auth.user, siteId);
|
|
150
|
+
if (siteDenied)
|
|
151
|
+
return siteDenied;
|
|
143
152
|
const deleted = await deleteCategory(db, params.id, siteId);
|
|
144
153
|
if (!deleted)
|
|
145
154
|
return notFound('Category not found');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"category-routes.js","sourceRoot":"","sources":["../../src/api/category-routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAKvB,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAA;AACnE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AACrG,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"category-routes.js","sourceRoot":"","sources":["../../src/api/category-routes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,18 @@
|
|
|
1
1
|
import type { Router } from './router.js';
|
|
2
2
|
import type { KywiDb } from '../db/client.js';
|
|
3
|
+
import type { ContentTypeConfig } from '../config/types.js';
|
|
4
|
+
import type { PgTableWithColumns } from 'drizzle-orm/pg-core';
|
|
3
5
|
interface ChangesetRouteContext {
|
|
4
6
|
db: KywiDb;
|
|
5
7
|
authSecret: string;
|
|
6
8
|
defaultSiteId?: string | undefined;
|
|
9
|
+
/**
|
|
10
|
+
* Config-derived maps used to build the type resolver a publish threads into
|
|
11
|
+
* applyContentSnapshot so custom (side-table) fields round-trip (#63). Optional
|
|
12
|
+
* so existing callers keep base-only behaviour.
|
|
13
|
+
*/
|
|
14
|
+
contentTypeMap?: Map<string, ContentTypeConfig>;
|
|
15
|
+
customTableMap?: Map<string, PgTableWithColumns<any>>;
|
|
7
16
|
/**
|
|
8
17
|
* Content-cache invalidation callback (the same one workflow/version routes
|
|
9
18
|
* use). Called for each content node a publish/rollback touches (G-J04a-03).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"changeset-routes.d.ts","sourceRoot":"","sources":["../../src/api/changeset-routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"changeset-routes.d.ts","sourceRoot":"","sources":["../../src/api/changeset-routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAmB7D,UAAU,qBAAqB;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAClC;;;;OAIG;IACH,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;IAC/C,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAA;IACrD;;;OAGG;IACH,iBAAiB,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACnF;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,qBAAqB,GAAG,IAAI,CAuTxF"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { buildChangesetTypeResolver } from '../db/changeset-queries.js';
|
|
1
2
|
import { resolveAuth } from './auth.js';
|
|
2
3
|
import { hasMinRole } from '../auth/roles.js';
|
|
3
4
|
import { jsonOk, jsonError, unauthorized, forbidden, notFound } from './response.js';
|
|
@@ -5,7 +6,13 @@ import { createChangeset, getChangeset, listChangesets, updateChangeset, addChan
|
|
|
5
6
|
import { createChangesetAuditEntry, listChangesetAudit } from '../db/changeset-audit-queries.js';
|
|
6
7
|
import { getContentById } from '../db/content-queries.js';
|
|
7
8
|
export function registerChangesetRoutes(router, ctx) {
|
|
8
|
-
const { db, authSecret, defaultSiteId = '' } = ctx;
|
|
9
|
+
const { db, authSecret, defaultSiteId = '', contentTypeMap, customTableMap } = ctx;
|
|
10
|
+
// Resolve a content type → its custom side-table so a publish round-trips
|
|
11
|
+
// custom fields (#63). Undefined when the maps are absent, which keeps the
|
|
12
|
+
// apply base-only. Shared with the scheduler route + handler surface.
|
|
13
|
+
const resolveType = contentTypeMap && customTableMap
|
|
14
|
+
? buildChangesetTypeResolver(contentTypeMap, customTableMap)
|
|
15
|
+
: undefined;
|
|
9
16
|
// Read each changeset item's content (siteId/slug are stable across a
|
|
10
17
|
// publish/rollback) so callers can clear the right cache keys. Reading before
|
|
11
18
|
// AND after the mutation and merging covers soft-delete transitions in both
|
|
@@ -230,7 +237,11 @@ export function registerChangesetRoutes(router, ctx) {
|
|
|
230
237
|
// Capture affected content before the publish transaction (a `delete` item
|
|
231
238
|
// becomes invisible afterwards), publish, then invalidate its cache.
|
|
232
239
|
const before = await collectItemContent(params.id);
|
|
233
|
-
|
|
240
|
+
// Pass the resolver only when configured so base-only callers (and their
|
|
241
|
+
// tests) keep the unchanged 3-argument publishChangeset contract.
|
|
242
|
+
const changeset = resolveType
|
|
243
|
+
? await publishChangeset(db, params.id, auth.user.id, { resolveType })
|
|
244
|
+
: await publishChangeset(db, params.id, auth.user.id);
|
|
234
245
|
await createChangesetAuditEntry(db, {
|
|
235
246
|
changesetId: params.id,
|
|
236
247
|
siteId: changeset?.siteId ?? defaultSiteId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"changeset-routes.js","sourceRoot":"","sources":["../../src/api/changeset-routes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"changeset-routes.js","sourceRoot":"","sources":["../../src/api/changeset-routes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"comment-routes.d.ts","sourceRoot":"","sources":["../../src/api/comment-routes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAsBxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEtD,UAAU,mBAAmB;IAC3B,MAAM,EAAE,UAAU,CAAA;IAClB,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,YAAY,CAAA;IAC1B,aAAa,CAAC,EAAE,aAAa,GAAG,SAAS,CAAA;IACzC,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAwBD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"comment-routes.d.ts","sourceRoot":"","sources":["../../src/api/comment-routes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAsBxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEtD,UAAU,mBAAmB;IAC3B,MAAM,EAAE,UAAU,CAAA;IAClB,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,YAAY,CAAA;IAC1B,aAAa,CAAC,EAAE,aAAa,GAAG,SAAS,CAAA;IACzC,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAwBD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,GAAG,IAAI,CA4UpF"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { createCommentHookDispatcher } from '../hooks/dispatch.js';
|
|
3
3
|
import { resolveAuth } from './auth.js';
|
|
4
|
-
import { toSiteUuid } from './site-context.js';
|
|
4
|
+
import { toSiteUuid, assertSiteAccess } from './site-context.js';
|
|
5
5
|
import { hasMinRole } from '../auth/roles.js';
|
|
6
6
|
import { listComments, listSiteComments, getCommentById, createComment, updateComment, updateCommentStatus, deleteComment, flagComment, unflagComment, } from '../db/comment-queries.js';
|
|
7
7
|
import { isSpam } from '../comments/spam-filter.js';
|
|
@@ -184,6 +184,9 @@ export function registerCommentRoutes(router, ctx) {
|
|
|
184
184
|
const siteId = await toSiteUuid(db, url.searchParams.get('siteId'), ctx.config);
|
|
185
185
|
if (!siteId)
|
|
186
186
|
return jsonError('BAD_REQUEST', 'No site ID available', 400);
|
|
187
|
+
const siteDenied = assertSiteAccess(auth.user, siteId);
|
|
188
|
+
if (siteDenied)
|
|
189
|
+
return siteDenied;
|
|
187
190
|
const comments = await listSiteComments(db, siteId, statusParam);
|
|
188
191
|
return jsonOk(comments);
|
|
189
192
|
});
|
|
@@ -200,6 +203,11 @@ export function registerCommentRoutes(router, ctx) {
|
|
|
200
203
|
return unauthorized();
|
|
201
204
|
if (!hasMinRole(auth.user.role, 'editor'))
|
|
202
205
|
return forbidden();
|
|
206
|
+
// Elevated (moderation) read of a non-approved comment — confine to the
|
|
207
|
+
// caller's sites. Approved comments remain a fully public read.
|
|
208
|
+
const siteDenied = assertSiteAccess(auth.user, siteId);
|
|
209
|
+
if (siteDenied)
|
|
210
|
+
return siteDenied;
|
|
203
211
|
}
|
|
204
212
|
return jsonOk(comment);
|
|
205
213
|
});
|
|
@@ -209,6 +217,9 @@ export function registerCommentRoutes(router, ctx) {
|
|
|
209
217
|
if (!auth.user)
|
|
210
218
|
return unauthorized();
|
|
211
219
|
const siteId = await toSiteUuid(db, new URL(req.url).searchParams.get('siteId'), ctx.config);
|
|
220
|
+
const siteDenied = assertSiteAccess(auth.user, siteId);
|
|
221
|
+
if (siteDenied)
|
|
222
|
+
return siteDenied;
|
|
212
223
|
const comment = await getCommentById(db, params.id, siteId);
|
|
213
224
|
if (!comment)
|
|
214
225
|
return notFound('Comment not found');
|
|
@@ -248,6 +259,9 @@ export function registerCommentRoutes(router, ctx) {
|
|
|
248
259
|
if (!hasMinRole(auth.user.role, 'editor'))
|
|
249
260
|
return forbidden();
|
|
250
261
|
const siteId = await toSiteUuid(db, new URL(req.url).searchParams.get('siteId'), ctx.config);
|
|
262
|
+
const siteDenied = assertSiteAccess(auth.user, siteId);
|
|
263
|
+
if (siteDenied)
|
|
264
|
+
return siteDenied;
|
|
251
265
|
const updated = await updateCommentStatus(db, params.id, 'approved', siteId);
|
|
252
266
|
if (!updated)
|
|
253
267
|
return notFound('Comment not found');
|
|
@@ -262,6 +276,9 @@ export function registerCommentRoutes(router, ctx) {
|
|
|
262
276
|
if (!hasMinRole(auth.user.role, 'editor'))
|
|
263
277
|
return forbidden();
|
|
264
278
|
const siteId = await toSiteUuid(db, new URL(req.url).searchParams.get('siteId'), ctx.config);
|
|
279
|
+
const siteDenied = assertSiteAccess(auth.user, siteId);
|
|
280
|
+
if (siteDenied)
|
|
281
|
+
return siteDenied;
|
|
265
282
|
const updated = await updateCommentStatus(db, params.id, 'spam', siteId);
|
|
266
283
|
if (!updated)
|
|
267
284
|
return notFound('Comment not found');
|
|
@@ -274,6 +291,9 @@ export function registerCommentRoutes(router, ctx) {
|
|
|
274
291
|
if (!auth.user)
|
|
275
292
|
return unauthorized();
|
|
276
293
|
const siteId = await toSiteUuid(db, new URL(req.url).searchParams.get('siteId'), ctx.config);
|
|
294
|
+
const siteDenied = assertSiteAccess(auth.user, siteId);
|
|
295
|
+
if (siteDenied)
|
|
296
|
+
return siteDenied;
|
|
277
297
|
const flagged = await flagComment(db, params.id, siteId);
|
|
278
298
|
if (!flagged)
|
|
279
299
|
return notFound('Comment not found');
|
|
@@ -287,6 +307,9 @@ export function registerCommentRoutes(router, ctx) {
|
|
|
287
307
|
if (!hasMinRole(auth.user.role, 'editor'))
|
|
288
308
|
return forbidden();
|
|
289
309
|
const siteId = await toSiteUuid(db, new URL(req.url).searchParams.get('siteId'), ctx.config);
|
|
310
|
+
const siteDenied = assertSiteAccess(auth.user, siteId);
|
|
311
|
+
if (siteDenied)
|
|
312
|
+
return siteDenied;
|
|
290
313
|
const unflagged = await unflagComment(db, params.id, siteId);
|
|
291
314
|
if (!unflagged)
|
|
292
315
|
return notFound('Comment not found');
|
|
@@ -300,6 +323,9 @@ export function registerCommentRoutes(router, ctx) {
|
|
|
300
323
|
if (!hasMinRole(auth.user.role, 'editor'))
|
|
301
324
|
return forbidden();
|
|
302
325
|
const siteId = await toSiteUuid(db, new URL(req.url).searchParams.get('siteId'), ctx.config);
|
|
326
|
+
const siteDenied = assertSiteAccess(auth.user, siteId);
|
|
327
|
+
if (siteDenied)
|
|
328
|
+
return siteDenied;
|
|
303
329
|
const deleted = await deleteComment(db, params.id, siteId);
|
|
304
330
|
if (!deleted)
|
|
305
331
|
return notFound('Comment not found');
|