@7365admin1/core 3.65.0 → 3.65.2
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/CHANGELOG.md +12 -0
- package/dist/index.js +38 -2
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +38 -2
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/test/console-permission.test.mjs +3 -2
- package/test/e2e/member-by-user-reach.e2e.test.mjs +135 -0
- package/test/resident-ownership-scope.test.mjs +8 -4
- package/test/site-modules.test.mjs +22 -0
package/dist/index.mjs
CHANGED
|
@@ -11042,6 +11042,13 @@ function effectiveSiteModules(orgModules, siteModules) {
|
|
|
11042
11042
|
const allowed = site.filter((key) => org.includes(key));
|
|
11043
11043
|
return allowed.length ? allowed : org;
|
|
11044
11044
|
}
|
|
11045
|
+
function siteModulesForOrg(site, orgId) {
|
|
11046
|
+
const org = orgId?.toString() ?? "";
|
|
11047
|
+
if (!org)
|
|
11048
|
+
return site?.metadata?.modules;
|
|
11049
|
+
const owner = String(site?.orgId ?? site?.org ?? "");
|
|
11050
|
+
return owner && owner === org ? site?.metadata?.modules : void 0;
|
|
11051
|
+
}
|
|
11045
11052
|
function rejectedSiteModules(orgModules, requested) {
|
|
11046
11053
|
if (!narrows(orgModules))
|
|
11047
11054
|
return [];
|
|
@@ -20424,7 +20431,7 @@ async function moduleCeiling(org, site) {
|
|
|
20424
20431
|
]);
|
|
20425
20432
|
return effectiveSiteModules(
|
|
20426
20433
|
orgDoc?.modules,
|
|
20427
|
-
siteDoc
|
|
20434
|
+
siteModulesForOrg(siteDoc, orgId)
|
|
20428
20435
|
);
|
|
20429
20436
|
} catch {
|
|
20430
20437
|
return [];
|
|
@@ -28194,6 +28201,31 @@ async function requireMemberOrg(req, org) {
|
|
|
28194
28201
|
}
|
|
28195
28202
|
await requireOrgAccess(req, orgId);
|
|
28196
28203
|
}
|
|
28204
|
+
async function membershipsInReach(req, items) {
|
|
28205
|
+
const warn = (error) => {
|
|
28206
|
+
logger37.log({ level: "warn", message: `members/users reach check: ${error?.message}` });
|
|
28207
|
+
return false;
|
|
28208
|
+
};
|
|
28209
|
+
if (!await callerAccountApproved(callerId(req)).catch(warn)) {
|
|
28210
|
+
return { items: [], total: 0 };
|
|
28211
|
+
}
|
|
28212
|
+
const orgs = new Set(
|
|
28213
|
+
items.map((m) => m?.org?.toString?.() ?? "").filter(Boolean)
|
|
28214
|
+
);
|
|
28215
|
+
const own = new Set(
|
|
28216
|
+
await resolveInviteActor(callerId(req)).then((actor) => actor.orgIds.map(String)).catch((error) => (warn(error), []))
|
|
28217
|
+
);
|
|
28218
|
+
const reached = new Set([...orgs].filter((org) => own.has(org)));
|
|
28219
|
+
for (const org of orgs) {
|
|
28220
|
+
if (reached.has(org))
|
|
28221
|
+
continue;
|
|
28222
|
+
const ok = await requireOrgReach(req, org).then(() => true, () => false);
|
|
28223
|
+
if (ok)
|
|
28224
|
+
reached.add(org);
|
|
28225
|
+
}
|
|
28226
|
+
const kept = items.filter((m) => reached.has(m?.org?.toString?.() ?? ""));
|
|
28227
|
+
return { items: kept, total: kept.length };
|
|
28228
|
+
}
|
|
28197
28229
|
function memberModulesHandlers({
|
|
28198
28230
|
requireSelfOrPlatformStaff: requireSelfOrPlatformStaff2,
|
|
28199
28231
|
gateData
|
|
@@ -28297,7 +28329,11 @@ function useMemberController() {
|
|
|
28297
28329
|
}
|
|
28298
28330
|
try {
|
|
28299
28331
|
const data = await _getAllByUser(userId);
|
|
28300
|
-
|
|
28332
|
+
const whole = await requireSelfOrPlatformStaff(req, userId, {
|
|
28333
|
+
resource: "members",
|
|
28334
|
+
action: "view-members"
|
|
28335
|
+
}).then(() => true, () => false);
|
|
28336
|
+
res.json(whole ? data : await membershipsInReach(req, data.items));
|
|
28301
28337
|
return;
|
|
28302
28338
|
} catch (error2) {
|
|
28303
28339
|
logger37.log({
|