@7365admin1/core 3.139.1 → 3.140.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/CHANGELOG.md +6 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.js +14 -7
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +14 -7
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/test/e2e/service-provider-invite-email-new-company.e2e.test.mjs +7 -0
- package/test/member-entitled-list.test.mjs +60 -0
- package/test/member-lookup-honours-org.test.mjs +3 -3
- package/test/member-lookup-site.test.mjs +1 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# @iservice365/core
|
|
2
2
|
|
|
3
|
+
## 3.140.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- ff48585: A person's memberships list (`GET /members/users/:id`) leaves out taken-away (inactive / deleted) memberships by default; `?include=removed` returns the history. One shared entitlement test (`isEntitledMembership`, `entitledMemberships`) now also drives the site/org membership lookup, notification categories and role permissions.
|
|
8
|
+
|
|
3
9
|
## 3.139.1
|
|
4
10
|
|
|
5
11
|
### Patch Changes
|
package/dist/index.d.ts
CHANGED
|
@@ -1095,7 +1095,9 @@ declare function useMemberService(): {
|
|
|
1095
1095
|
updateSiteById: (id: string, siteId: string, siteName: string) => Promise<{
|
|
1096
1096
|
message: string;
|
|
1097
1097
|
}>;
|
|
1098
|
-
getAllByUser: (user: string
|
|
1098
|
+
getAllByUser: (user: string, { includeRemoved }?: {
|
|
1099
|
+
includeRemoved?: boolean | undefined;
|
|
1100
|
+
}) => Promise<{
|
|
1099
1101
|
items: TMember[];
|
|
1100
1102
|
total: number;
|
|
1101
1103
|
}>;
|
package/dist/index.js
CHANGED
|
@@ -4374,7 +4374,10 @@ function sameAppType(a, b) {
|
|
|
4374
4374
|
// src/utils/member-lookup.util.ts
|
|
4375
4375
|
var idOf = (v) => v == null ? "" : String(v?._id ?? v).toLowerCase();
|
|
4376
4376
|
function isLiveMembership(m) {
|
|
4377
|
-
return m
|
|
4377
|
+
return !TAKEN_AWAY_MEMBER_STATUSES.includes(String(m?.status ?? "")) && !m?.deletedAt;
|
|
4378
|
+
}
|
|
4379
|
+
function entitledMemberships(rows) {
|
|
4380
|
+
return (Array.isArray(rows) ? rows : []).filter(isLiveMembership);
|
|
4378
4381
|
}
|
|
4379
4382
|
function pickSiteMembership(rows, type, site, org = "") {
|
|
4380
4383
|
site = site.toLowerCase();
|
|
@@ -23154,7 +23157,8 @@ async function getUserPermissions(params) {
|
|
|
23154
23157
|
if (!roleId || !import_mongodb51.ObjectId.isValid(roleId)) {
|
|
23155
23158
|
const memberQuery = {
|
|
23156
23159
|
user: new import_mongodb51.ObjectId(user),
|
|
23157
|
-
|
|
23160
|
+
// A taken-away (inactive) row grants no permissions either.
|
|
23161
|
+
status: { $nin: TAKEN_AWAY_MEMBER_STATUSES }
|
|
23158
23162
|
};
|
|
23159
23163
|
if (org && import_mongodb51.ObjectId.isValid(org)) {
|
|
23160
23164
|
memberQuery.org = new import_mongodb51.ObjectId(org);
|
|
@@ -29442,9 +29446,10 @@ function useMemberService() {
|
|
|
29442
29446
|
throw error;
|
|
29443
29447
|
}
|
|
29444
29448
|
}
|
|
29445
|
-
async function getAllByUser(user) {
|
|
29449
|
+
async function getAllByUser(user, { includeRemoved = false } = {}) {
|
|
29446
29450
|
try {
|
|
29447
|
-
const
|
|
29451
|
+
const all = await _getAllByUserId(user);
|
|
29452
|
+
const members = includeRemoved ? all : entitledMemberships(all);
|
|
29448
29453
|
return {
|
|
29449
29454
|
items: members,
|
|
29450
29455
|
total: members.length
|
|
@@ -30005,7 +30010,9 @@ function useMemberController() {
|
|
|
30005
30010
|
return;
|
|
30006
30011
|
}
|
|
30007
30012
|
try {
|
|
30008
|
-
const data = await _getAllByUser(userId
|
|
30013
|
+
const data = await _getAllByUser(userId, {
|
|
30014
|
+
includeRemoved: req.query.include === "removed"
|
|
30015
|
+
});
|
|
30009
30016
|
const whole = await requireSelfOrPlatformStaff(req, userId, {
|
|
30010
30017
|
resource: "members",
|
|
30011
30018
|
action: "view-members"
|
|
@@ -30046,7 +30053,7 @@ function useMemberController() {
|
|
|
30046
30053
|
org
|
|
30047
30054
|
) : null;
|
|
30048
30055
|
const inOrg = org && !atSite ? await _getByUserIdTypeOrg(user, type, org).catch(() => null) : null;
|
|
30049
|
-
const liveInOrg = inOrg && inOrg
|
|
30056
|
+
const liveInOrg = inOrg && isLiveMembership(inOrg) ? inOrg : null;
|
|
30050
30057
|
const data = atSite ?? liveInOrg ?? await _getByUserIdType(user, type);
|
|
30051
30058
|
res.json(data);
|
|
30052
30059
|
return;
|
|
@@ -108075,7 +108082,7 @@ function useNotificationPreferenceService() {
|
|
|
108075
108082
|
const db2 = import_node_server_utils330.useAtlas.getDb();
|
|
108076
108083
|
if (!db2)
|
|
108077
108084
|
return [];
|
|
108078
|
-
const members = await db2.collection("members").find({ user: new import_mongodb200.ObjectId(userId), status: { $
|
|
108085
|
+
const members = await db2.collection("members").find({ user: new import_mongodb200.ObjectId(userId), status: { $nin: TAKEN_AWAY_MEMBER_STATUSES } }).toArray();
|
|
108079
108086
|
if (!members.length)
|
|
108080
108087
|
return [];
|
|
108081
108088
|
const isResident = members.some((m) => m.type === "resident");
|