@infuro/cms-core 1.0.71 → 1.0.72
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.cjs +17 -25
- package/dist/admin.d.cts +1 -0
- package/dist/admin.d.ts +1 -0
- package/dist/admin.js +17 -25
- package/dist/api.cjs +33 -33
- package/dist/api.js +1 -1
- package/dist/{chunk-7NQMGB2S.js → chunk-43UVXBEH.js} +77 -41
- package/dist/{chunk-OP624LWU.cjs → chunk-SRGDHASW.cjs} +77 -41
- package/dist/index.cjs +206 -206
- package/dist/index.js +2 -2
- package/dist/migrations/helpers/vendor-role-seed.ts +65 -27
- package/package.json +1 -1
|
@@ -14433,26 +14433,51 @@ async function sendVendorOnboardEmails(input, deps) {
|
|
|
14433
14433
|
chunkXHPRD45G_cjs.__name(sendVendorOnboardEmails, "sendVendorOnboardEmails");
|
|
14434
14434
|
|
|
14435
14435
|
// src/lib/seed-vendor-roles.ts
|
|
14436
|
-
|
|
14436
|
+
function appendValuesRow(params, values, cols) {
|
|
14437
|
+
const start = params.length;
|
|
14438
|
+
values.push(`(${cols.map((_, i) => `$${start + i + 1}`).join(", ")})`);
|
|
14439
|
+
params.push(...cols);
|
|
14440
|
+
}
|
|
14441
|
+
chunkXHPRD45G_cjs.__name(appendValuesRow, "appendValuesRow");
|
|
14442
|
+
async function insertRolePermissions(exec, rows) {
|
|
14443
|
+
if (rows.length === 0) return;
|
|
14444
|
+
const values = [];
|
|
14445
|
+
const params = [];
|
|
14446
|
+
for (const row of rows) {
|
|
14447
|
+
appendValuesRow(params, values, [
|
|
14448
|
+
row.vendorRoleId,
|
|
14449
|
+
row.entity,
|
|
14450
|
+
row.canCreate,
|
|
14451
|
+
row.canRead,
|
|
14452
|
+
row.canUpdate,
|
|
14453
|
+
row.canDelete
|
|
14454
|
+
]);
|
|
14455
|
+
}
|
|
14456
|
+
await exec.query(`
|
|
14457
|
+
INSERT INTO "vendor_role_permissions"
|
|
14458
|
+
("vendorRoleId", "entity", "canCreate", "canRead", "canUpdate", "canDelete")
|
|
14459
|
+
VALUES ${values.join(", ")}
|
|
14460
|
+
ON CONFLICT ("vendorRoleId", "entity") DO NOTHING
|
|
14461
|
+
`, params);
|
|
14462
|
+
}
|
|
14463
|
+
chunkXHPRD45G_cjs.__name(insertRolePermissions, "insertRolePermissions");
|
|
14464
|
+
function permissionRowsForRole(vendorRoleId, permissions) {
|
|
14465
|
+
const rows = [];
|
|
14437
14466
|
for (const entity of chunkLCZZ3S4I_cjs.VENDOR_RBAC_ENTITIES) {
|
|
14438
14467
|
const flags = permissions[entity];
|
|
14439
14468
|
if (!flags) continue;
|
|
14440
|
-
|
|
14441
|
-
INSERT INTO "vendor_role_permissions"
|
|
14442
|
-
("vendorRoleId", "entity", "canCreate", "canRead", "canUpdate", "canDelete")
|
|
14443
|
-
VALUES ($1, $2, $3, $4, $5, $6)
|
|
14444
|
-
ON CONFLICT ("vendorRoleId", "entity") DO NOTHING
|
|
14445
|
-
`, [
|
|
14469
|
+
rows.push({
|
|
14446
14470
|
vendorRoleId,
|
|
14447
14471
|
entity,
|
|
14448
|
-
flags.canCreate,
|
|
14449
|
-
flags.canRead,
|
|
14450
|
-
flags.canUpdate,
|
|
14451
|
-
flags.canDelete
|
|
14452
|
-
|
|
14472
|
+
canCreate: flags.canCreate,
|
|
14473
|
+
canRead: flags.canRead,
|
|
14474
|
+
canUpdate: flags.canUpdate,
|
|
14475
|
+
canDelete: flags.canDelete
|
|
14476
|
+
});
|
|
14453
14477
|
}
|
|
14478
|
+
return rows;
|
|
14454
14479
|
}
|
|
14455
|
-
chunkXHPRD45G_cjs.__name(
|
|
14480
|
+
chunkXHPRD45G_cjs.__name(permissionRowsForRole, "permissionRowsForRole");
|
|
14456
14481
|
async function seedVendorDefaultRoles(em, vendorId) {
|
|
14457
14482
|
const exec = em;
|
|
14458
14483
|
const existing = await exec.query(`SELECT id, name, "isOwnerRole" FROM "vendor_roles" WHERE "vendorId" = $1 AND "deleted" = false`, [
|
|
@@ -14473,29 +14498,40 @@ async function seedVendorDefaultRoles(em, vendorId) {
|
|
|
14473
14498
|
viewerRoleId: viewerRoleId2
|
|
14474
14499
|
};
|
|
14475
14500
|
}
|
|
14476
|
-
const
|
|
14477
|
-
|
|
14478
|
-
let viewerRoleId = 0;
|
|
14501
|
+
const roleValues = [];
|
|
14502
|
+
const roleParams = [];
|
|
14479
14503
|
for (const def of chunkLCZZ3S4I_cjs.DEFAULT_VENDOR_ROLE_DEFS) {
|
|
14480
|
-
|
|
14481
|
-
INSERT INTO "vendor_roles"
|
|
14482
|
-
("vendorId", "name", "description", "isSystem", "isOwnerRole")
|
|
14483
|
-
VALUES ($1, $2, $3, $4, $5)
|
|
14484
|
-
RETURNING id
|
|
14485
|
-
`, [
|
|
14504
|
+
appendValuesRow(roleParams, roleValues, [
|
|
14486
14505
|
vendorId,
|
|
14487
14506
|
def.name,
|
|
14488
14507
|
def.description,
|
|
14489
14508
|
def.isSystem,
|
|
14490
14509
|
def.isOwnerRole
|
|
14491
14510
|
]);
|
|
14492
|
-
|
|
14511
|
+
}
|
|
14512
|
+
const inserted = await exec.query(`
|
|
14513
|
+
INSERT INTO "vendor_roles"
|
|
14514
|
+
("vendorId", "name", "description", "isSystem", "isOwnerRole")
|
|
14515
|
+
VALUES ${roleValues.join(", ")}
|
|
14516
|
+
RETURNING id, name, "isOwnerRole"
|
|
14517
|
+
`, roleParams);
|
|
14518
|
+
const roleIdsByName = {};
|
|
14519
|
+
let ownerRoleId = 0;
|
|
14520
|
+
let viewerRoleId = 0;
|
|
14521
|
+
for (const r of inserted) {
|
|
14522
|
+
const id = Number(r.id);
|
|
14523
|
+
if (!id) continue;
|
|
14524
|
+
roleIdsByName[r.name] = id;
|
|
14525
|
+
if (r.isOwnerRole) ownerRoleId = id;
|
|
14526
|
+
if (r.name === chunkLCZZ3S4I_cjs.VENDOR_VIEWER_ROLE_NAME) viewerRoleId = id;
|
|
14527
|
+
}
|
|
14528
|
+
const permRows = [];
|
|
14529
|
+
for (const def of chunkLCZZ3S4I_cjs.DEFAULT_VENDOR_ROLE_DEFS) {
|
|
14530
|
+
const roleId = roleIdsByName[def.name];
|
|
14493
14531
|
if (!roleId) continue;
|
|
14494
|
-
|
|
14495
|
-
if (def.isOwnerRole) ownerRoleId = roleId;
|
|
14496
|
-
if (def.name === chunkLCZZ3S4I_cjs.VENDOR_VIEWER_ROLE_NAME) viewerRoleId = roleId;
|
|
14497
|
-
await insertRolePermissions(exec, roleId, def.permissions);
|
|
14532
|
+
permRows.push(...permissionRowsForRole(roleId, def.permissions));
|
|
14498
14533
|
}
|
|
14534
|
+
await insertRolePermissions(exec, permRows);
|
|
14499
14535
|
return {
|
|
14500
14536
|
roleIdsByName,
|
|
14501
14537
|
ownerRoleId,
|
|
@@ -15355,25 +15391,25 @@ function createVendorOnboardHandlers(config) {
|
|
|
15355
15391
|
vendorUserProfileId: personRow.id
|
|
15356
15392
|
});
|
|
15357
15393
|
}
|
|
15358
|
-
if (entityMap.customer) {
|
|
15359
|
-
try {
|
|
15360
|
-
await chunkFNLF6G2N_cjs.ensureCustomerForUser(em, entityMap.customer, {
|
|
15361
|
-
id: newUser.id,
|
|
15362
|
-
name: userName,
|
|
15363
|
-
email: userEmail,
|
|
15364
|
-
phone: trimOrNull(body.vendor?.phone) ?? ownerPhone
|
|
15365
|
-
}, {
|
|
15366
|
-
phone: trimOrNull(body.vendor?.phone) ?? ownerPhone
|
|
15367
|
-
});
|
|
15368
|
-
} catch (customerErr) {
|
|
15369
|
-
console.error("[vendor-onboard] ensureCustomerForUser skipped", customerErr);
|
|
15370
|
-
}
|
|
15371
|
-
}
|
|
15372
15394
|
return {
|
|
15373
15395
|
vendor,
|
|
15374
15396
|
user: newUser
|
|
15375
15397
|
};
|
|
15376
15398
|
});
|
|
15399
|
+
if (entityMap.customer) {
|
|
15400
|
+
try {
|
|
15401
|
+
await chunkFNLF6G2N_cjs.ensureCustomerForUser(dataSource, entityMap.customer, {
|
|
15402
|
+
id: result.user.id,
|
|
15403
|
+
name: userName,
|
|
15404
|
+
email: userEmail,
|
|
15405
|
+
phone: trimOrNull(body.vendor?.phone) ?? ownerPhone
|
|
15406
|
+
}, {
|
|
15407
|
+
phone: trimOrNull(body.vendor?.phone) ?? ownerPhone
|
|
15408
|
+
});
|
|
15409
|
+
} catch (customerErr) {
|
|
15410
|
+
console.error("[vendor-onboard] ensureCustomerForUser skipped", customerErr);
|
|
15411
|
+
}
|
|
15412
|
+
}
|
|
15377
15413
|
let inviteLink;
|
|
15378
15414
|
const token = readVendorInviteToken(result.vendor.metadata);
|
|
15379
15415
|
if (token) {
|