@infuro/cms-core 1.0.41 → 1.0.42
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/README.md +5 -18
- package/dist/admin.cjs +903 -287
- package/dist/admin.d.cts +11 -1
- package/dist/admin.d.ts +11 -1
- package/dist/admin.js +903 -287
- package/dist/api.cjs +35 -35
- package/dist/api.js +3 -3
- package/dist/auth.cjs +51 -51
- package/dist/auth.js +3 -3
- package/dist/{chunk-UXMDSNIG.js → chunk-BLR6H5GL.js} +1 -1
- package/dist/{chunk-P7QCLE5W.js → chunk-DN65KDIA.js} +11 -1
- package/dist/{chunk-QU554KAZ.cjs → chunk-GINYYPXK.cjs} +796 -149
- package/dist/{chunk-4BG7XYSH.js → chunk-I6NH72MO.js} +1 -1
- package/dist/{chunk-ETZN4OQI.cjs → chunk-TAHX46EI.cjs} +6 -6
- package/dist/{chunk-EG4ICILK.js → chunk-W2NL365N.js} +745 -110
- package/dist/{chunk-WMXPKKXU.cjs → chunk-X6UQFV4X.cjs} +11 -1
- package/dist/{chunk-OIGCAGH7.cjs → chunk-ZMRQ72F6.cjs} +7 -7
- package/dist/index.cjs +290 -242
- package/dist/index.d.cts +110 -5
- package/dist/index.d.ts +110 -5
- package/dist/index.js +6 -6
- package/dist/migrations/1781300000000-BrandIsCatalog.ts +61 -0
- package/dist/migrations/1781400000000-ComboEventIdNullable.ts +30 -0
- package/dist/migrations/1781500000000-ProductApprovalWorkflow.ts +30 -0
- package/dist/migrations/1781600000000-ProductApprovalStatusColumn.ts +53 -0
- package/dist/migrations/1781700000000-EventApprovalWorkflow.ts +32 -0
- package/dist/{rbac-debug-db-QWHOENBR.js → rbac-debug-db-2SGNLANF.js} +1 -1
- package/dist/{rbac-debug-db-KHG4FJC3.cjs → rbac-debug-db-4Z6A425H.cjs} +2 -2
- package/package.json +1 -1
|
@@ -409,6 +409,9 @@ function vendorPortalFallbackReason(user, entity, action) {
|
|
|
409
409
|
if (entity === "dashboard" && action === "read") return "vendor_portal_dashboard_fallback";
|
|
410
410
|
if (entity === "analytics" && action === "read") return "vendor_portal_analytics_fallback";
|
|
411
411
|
if (entity === "settings" && action === "read") return "vendor_portal_settings_read_fallback";
|
|
412
|
+
if (entity === "upload" && (action === "create" || action === "read")) {
|
|
413
|
+
return "vendor_portal_upload_fallback";
|
|
414
|
+
}
|
|
412
415
|
if (VENDOR_STORE_RBAC_ENTITIES.has(entity) && action === "read") return "vendor_portal_store_read_fallback";
|
|
413
416
|
return null;
|
|
414
417
|
}
|
|
@@ -449,6 +452,13 @@ function explainSessionEntityAccess(user, entity, action) {
|
|
|
449
452
|
userSnapshot
|
|
450
453
|
};
|
|
451
454
|
}
|
|
455
|
+
if ((isVendorPortalUser(user) || (user.vendorIds?.length ?? 0) > 0) && entity === "upload" && (action === "create" || action === "read")) {
|
|
456
|
+
return {
|
|
457
|
+
allowed: true,
|
|
458
|
+
reason: "vendor_portal_upload",
|
|
459
|
+
userSnapshot
|
|
460
|
+
};
|
|
461
|
+
}
|
|
452
462
|
const vendorIds = user.vendorIds ?? [];
|
|
453
463
|
const isStaff = user.vendorRole === "staff";
|
|
454
464
|
const vendorPerms = user.vendorEntityPerms;
|
|
@@ -595,7 +605,7 @@ async function logEntityAccessDecision(dataSource, context, user, entity, action
|
|
|
595
605
|
const id = Number(user.id);
|
|
596
606
|
if (Number.isFinite(id)) {
|
|
597
607
|
try {
|
|
598
|
-
const { loadDbPermissionsForUser } = await import('./rbac-debug-db-
|
|
608
|
+
const { loadDbPermissionsForUser } = await import('./rbac-debug-db-4Z6A425H.cjs');
|
|
599
609
|
dbPermissions = await loadDbPermissionsForUser(dataSource, id);
|
|
600
610
|
} catch (e) {
|
|
601
611
|
dbPermissions = {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkX6UQFV4X_cjs = require('./chunk-X6UQFV4X.cjs');
|
|
4
4
|
var chunkUSNT2KNT_cjs = require('./chunk-USNT2KNT.cjs');
|
|
5
5
|
|
|
6
6
|
// src/auth/helpers.ts
|
|
@@ -10,7 +10,7 @@ var RBAC_ADMIN_ONLY_ENTITIES = /* @__PURE__ */ new Set([
|
|
|
10
10
|
"permissions"
|
|
11
11
|
]);
|
|
12
12
|
function sessionHasEntityAccess(user, entity, action) {
|
|
13
|
-
return
|
|
13
|
+
return chunkX6UQFV4X_cjs.explainSessionEntityAccess(user, entity, action).allowed;
|
|
14
14
|
}
|
|
15
15
|
chunkUSNT2KNT_cjs.__name(sessionHasEntityAccess, "sessionHasEntityAccess");
|
|
16
16
|
function canManageRoles(user) {
|
|
@@ -101,8 +101,8 @@ function createAuthHelpersFromGetSession(getSession, NextResponse) {
|
|
|
101
101
|
}
|
|
102
102
|
const u = session.user;
|
|
103
103
|
const allowed = sessionHasEntityAccess(u, entity, action);
|
|
104
|
-
const { reason } =
|
|
105
|
-
|
|
104
|
+
const { reason } = chunkX6UQFV4X_cjs.explainSessionEntityAccess(u, entity, action);
|
|
105
|
+
chunkX6UQFV4X_cjs.logRbac("authHelpers.requireEntityPermission", {
|
|
106
106
|
entity,
|
|
107
107
|
action,
|
|
108
108
|
allowed,
|
|
@@ -134,10 +134,10 @@ function createAuthHelpersFromGetSession(getSession, NextResponse) {
|
|
|
134
134
|
}
|
|
135
135
|
const u = session.user;
|
|
136
136
|
if (u.isRBACAdmin) return null;
|
|
137
|
-
if (
|
|
137
|
+
if (chunkX6UQFV4X_cjs.isVendorPortalUser(u)) return null;
|
|
138
138
|
if (u.adminAccess === true) return null;
|
|
139
139
|
if (u.adminAccess === false) {
|
|
140
|
-
|
|
140
|
+
chunkX6UQFV4X_cjs.logRbac("requireAdminAccess denied (adminAccess:false)", {
|
|
141
141
|
email: u.email,
|
|
142
142
|
groupName: u.groupName,
|
|
143
143
|
isVendorPortal: u.isVendorPortal
|
|
@@ -149,7 +149,7 @@ function createAuthHelpersFromGetSession(getSession, NextResponse) {
|
|
|
149
149
|
status: 403
|
|
150
150
|
});
|
|
151
151
|
}
|
|
152
|
-
|
|
152
|
+
chunkX6UQFV4X_cjs.logRbac("requireAdminAccess denied (no matching rule)", {
|
|
153
153
|
email: u.email,
|
|
154
154
|
adminAccess: u.adminAccess,
|
|
155
155
|
groupName: u.groupName,
|