@7365admin1/layer-common 4.148.1 → 4.149.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 +16 -4
- package/components/VisitorForm.vue +4 -13
- package/composables/useSecurityPermission.ts +32 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @iservice365/layer-common
|
|
2
2
|
|
|
3
|
+
## 4.149.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 9692f90: Security role catalogue: add People Mgmt (people-mgmt) with the same six actions as the Property Management catalogue, so Security roles can be granted the People Mgmt page.
|
|
8
|
+
|
|
9
|
+
## 4.148.2
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- 8e600b9: Visitors: Add works again for property management users (site, service provider), and checks the visitor in. The form no longer sends `clientUserType`, which core does not take and refused ("clientUserType" is not allowed), so nothing was saved. Adding a visitor is their check-in whoever adds them: `checkIn` is the time of the add for every user, no longer null for back-office users.
|
|
14
|
+
|
|
3
15
|
## 4.148.1
|
|
4
16
|
|
|
5
17
|
### Patch Changes
|
|
@@ -3524,11 +3536,11 @@ Monthly report: a month that had patrols opens the list of that month's patrol r
|
|
|
3524
3536
|
`utils/console-tier.ts` + `composables/useConsoleTier.ts` mirror the server's
|
|
3525
3537
|
own rule from two endpoints the console already calls, unprojected:
|
|
3526
3538
|
|
|
3527
|
-
|
|
3528
|
-
|
|
3539
|
+
GET /api/members/user/:user/app/admin the Seven365 staff membership
|
|
3540
|
+
GET /api/roles/id/:role that membership's role document
|
|
3529
3541
|
|
|
3530
|
-
|
|
3531
|
-
|
|
3542
|
+
owner = member.type === "admin" && role.type === "admin" && role.default === true
|
|
3543
|
+
staff = member.type === "admin" && role.type === "admin"
|
|
3532
3544
|
|
|
3533
3545
|
`role.default` is the marker because it is the only property of a platform
|
|
3534
3546
|
staff role no API caller can set - `role.controller.ts` validates create and
|
|
@@ -2822,9 +2822,6 @@ const CLEARABLE_ON_UPDATE = [
|
|
|
2822
2822
|
"attachments",
|
|
2823
2823
|
];
|
|
2824
2824
|
const OBJECT_ID = /^[a-f0-9]{24}$/i;
|
|
2825
|
-
// Users who record a visit they are not witnessing: their visit opens with no
|
|
2826
|
-
// check-in / check-out (isecure365 `backOffice`).
|
|
2827
|
-
const BACK_OFFICE_USER_TYPES = /^(service-provider|service-provider-member|site)$/i;
|
|
2828
2825
|
|
|
2829
2826
|
// The site's delivery company list (and the typed name snapped to the
|
|
2830
2827
|
// listed spelling, "grabfood" -> "GrabFood").
|
|
@@ -3010,16 +3007,10 @@ function buildPayload(isUpdate: boolean): Record<string, unknown> {
|
|
|
3010
3007
|
|
|
3011
3008
|
payload.org = prop.org;
|
|
3012
3009
|
if (userId) payload.createdBy = userId;
|
|
3013
|
-
//
|
|
3014
|
-
//
|
|
3015
|
-
|
|
3016
|
-
|
|
3017
|
-
payload.clientUserType = userType;
|
|
3018
|
-
payload.checkIn = null;
|
|
3019
|
-
payload.checkOut = null;
|
|
3020
|
-
} else {
|
|
3021
|
-
payload.checkIn = new Date().toISOString();
|
|
3022
|
-
}
|
|
3010
|
+
// Adding a visitor IS their check-in, whoever adds them - a guard or a
|
|
3011
|
+
// property management user (owner, 2026-10-26). No user type is sent: core
|
|
3012
|
+
// does not take one and refuses it ("clientUserType" is not allowed).
|
|
3013
|
+
payload.checkIn = new Date().toISOString();
|
|
3023
3014
|
return payload;
|
|
3024
3015
|
}
|
|
3025
3016
|
|
|
@@ -327,6 +327,38 @@ export default function useSecurityPermission() {
|
|
|
327
327
|
},
|
|
328
328
|
},
|
|
329
329
|
|
|
330
|
+
// People Mgmt in the Security app (owner, 2026-10-27): the same six
|
|
331
|
+
// actions, spelling and wording as `usePropertyPermission`, because both
|
|
332
|
+
// apps open the same `/api/people` records.
|
|
333
|
+
"people-mgmt": {
|
|
334
|
+
"add-people": {
|
|
335
|
+
check: true,
|
|
336
|
+
description: "Allows the user to add a new person to the system.",
|
|
337
|
+
},
|
|
338
|
+
"see-all-people": {
|
|
339
|
+
check: true,
|
|
340
|
+
description: "Allows the user to view the list of all people.",
|
|
341
|
+
},
|
|
342
|
+
"see-people-details": {
|
|
343
|
+
check: true,
|
|
344
|
+
description:
|
|
345
|
+
"Allows the user to view the details of a specific person.",
|
|
346
|
+
},
|
|
347
|
+
"update-people": {
|
|
348
|
+
check: true,
|
|
349
|
+
description: "Allows the user to update person details.",
|
|
350
|
+
},
|
|
351
|
+
"delete-people": {
|
|
352
|
+
check: true,
|
|
353
|
+
description:
|
|
354
|
+
"Allows the user to remove a person from the system permanently.",
|
|
355
|
+
},
|
|
356
|
+
"see-people-nric": {
|
|
357
|
+
check: true,
|
|
358
|
+
description: "Allows the user to see a person nric from the system.",
|
|
359
|
+
},
|
|
360
|
+
},
|
|
361
|
+
|
|
330
362
|
// "guest-mgmt": {
|
|
331
363
|
// "add-guest": {
|
|
332
364
|
// check: true,
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@7365admin1/layer-common",
|
|
3
3
|
"license": "MIT",
|
|
4
4
|
"type": "module",
|
|
5
|
-
"version": "4.
|
|
5
|
+
"version": "4.149.0",
|
|
6
6
|
"author": "7365admin1",
|
|
7
7
|
"main": "./nuxt.config.ts",
|
|
8
8
|
"//files": "What a consumer extending this layer actually loads. Without this npm ships the whole working tree - the changesets, the CI workflows, the render harness in tools/ and any scratch directory that happened to exist at publish time. Nuxt resolves a layer by directory, so every runtime directory below has to stay listed; adding a new top-level runtime directory means adding it here too.",
|