@feedmepos/mf-hrm-portal 2.0.17 → 2.0.18-dev
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/AuditLogList-CaoW9uYd.js +1011 -0
- package/dist/CollapsibleWrapper.vue_vue_type_script_setup_true_lang-BLJlmPVa.js +58 -0
- package/dist/EmployeeList-DcMvF9U5.js +839 -0
- package/dist/FormItem.vue_vue_type_script_setup_true_lang-CoorkndT.js +34 -0
- package/dist/FormSection.vue_vue_type_script_setup_true_lang-DknXTYiK.js +49 -0
- package/dist/{Main-C7Q3OELU.js → Main-CleutFvF.js} +183 -176
- package/dist/{Main-CCTDT_TG.js → Main-CvW6Vu8N.js} +758 -761
- package/dist/Main-D7k57uq5.js +87 -0
- package/dist/PermissionSetList-CM7kbWkO.js +347 -0
- package/dist/PortalPermissionEditor.vue_vue_type_script_setup_true_lang-Ces9YwYB.js +3443 -0
- package/dist/RoleList-DR3eVJ9f.js +545 -0
- package/dist/Skeleton.vue_vue_type_script_setup_true_lang-B4PxNMwq.js +16 -0
- package/dist/TeamMemberList-CZZv4Pu5.js +1038 -0
- package/dist/{TimesheetList-DhKfguOb.js → TimesheetList-WqqoKPbg.js} +132 -126
- package/dist/{app--3WguZOC.js → app-R5EioPr4.js} +759 -711
- package/dist/app.js +1 -1
- package/dist/{dayjs.min-RrLy0N6G.js → dayjs.min-CN15Ft3o.js} +1 -1
- package/dist/employee-DwQlWLkL.js +204 -0
- package/dist/{iteration-BQA73VxD.js → iteration-UBGGRoxQ.js} +9258 -9213
- package/dist/{lodash-B1ouSWpG.js → lodash-CC6qHVUo.js} +1 -1
- package/dist/{rule-BL-miuus.js → rule-B519XbW6.js} +263 -265
- package/dist/src/api/audit-log/index.d.ts +9 -0
- package/dist/src/api/restaurant/index.d.ts +5 -0
- package/dist/src/components/CheckboxInput.vue.d.ts +1 -1
- package/dist/src/components/CollapsibleWrapper.vue.d.ts +2 -0
- package/dist/src/components/Skeleton.vue.d.ts +7 -0
- package/dist/src/composables/useBasePermission.d.ts +1 -0
- package/dist/src/composables/useRestaurantMap.d.ts +2 -329
- package/dist/src/stores/restaurant.d.ts +181 -0
- package/dist/src/stores/role.d.ts +7 -7
- package/dist/src/stores/team.d.ts +6 -6
- package/dist/src/types/restaurant.d.ts +11 -0
- package/dist/src/types/team.d.ts +1 -1
- package/dist/src/views/hr/locales/index.d.ts +16 -0
- package/dist/src/views/team/components/BasePermission.vue.d.ts +3 -7
- package/dist/src/views/team/components/PosRolePermission.vue.d.ts +2 -2
- package/dist/src/views/team/locales/index.d.ts +32 -0
- package/dist/src/views/team/member/AddMemberForm.vue.d.ts +5 -3
- package/dist/style.css +1 -1
- package/dist/team-BGLhgx5P.js +33 -0
- package/dist/{timesheet-BbtAYZ1B.js → timesheet-BylrXRfd.js} +2 -2
- package/dist/tsconfig.app.tsbuildinfo +1 -1
- package/dist/useAppStore-Akl8AoVN.js +171 -0
- package/dist/useDiscardConfirm-DPhEV6v0.js +157 -0
- package/dist/{useLoading-D7PklYeR.js → useLoading-rbrVwWuj.js} +1 -1
- package/dist/{useReportPermissions-CNcISy8f.js → useReportPermissions-BOEZU86S.js} +3 -3
- package/dist/useSearch-BAPEUu1R.js +15 -0
- package/package.json +1 -1
- package/dist/AuditLogList-DwCmJovS.js +0 -980
- package/dist/EmployeeList-8166DlII.js +0 -736
- package/dist/FormSection.vue_vue_type_script_setup_true_lang-BVb8c4YU.js +0 -71
- package/dist/HorizontalSplitter-o860F4xM.js +0 -12
- package/dist/Main-C4LaqZaa.js +0 -85
- package/dist/PermissionSetList-trnHwNFR.js +0 -341
- package/dist/PortalPermissionEditor.vue_vue_type_script_setup_true_lang-Bc5nE9NF.js +0 -3480
- package/dist/RoleList-DJtbEUSC.js +0 -530
- package/dist/TeamMemberList-C6qx-yJi.js +0 -1108
- package/dist/employee-DSAStcBv.js +0 -204
- package/dist/useAppStore-BHWapSDk.js +0 -171
- package/dist/useDebounce-B8ZPVS5C.js +0 -15
- package/dist/useDiscardConfirm-BHni0LNu.js +0 -28
- package/dist/useSearch-B6WK1LBB.js +0 -15
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { g as b, b as v, q as
|
|
2
|
-
import { e as I, P as
|
|
3
|
-
import { s as
|
|
4
|
-
import { defineStore as
|
|
1
|
+
import { g as b, b as v, q as L, u as H, s as x, d as Y, e as h } from "./iteration-UBGGRoxQ.js";
|
|
2
|
+
import { e as I, P as k, d as F, y as j, C as Z, i as J } from "./app-R5EioPr4.js";
|
|
3
|
+
import { s as q } from "./utils-BZkjJbju.js";
|
|
4
|
+
import { defineStore as W, storeToRefs as V } from "pinia";
|
|
5
5
|
import { ref as S, computed as T } from "vue";
|
|
6
|
-
import { useCoreStore as
|
|
6
|
+
import { useCoreStore as z } from "@feedmepos/mf-common";
|
|
7
7
|
const B = [
|
|
8
8
|
{
|
|
9
9
|
label: "",
|
|
@@ -351,83 +351,83 @@ const B = [
|
|
|
351
351
|
async delete(e) {
|
|
352
352
|
return b(await v().delete(`${A}/${e}`));
|
|
353
353
|
}
|
|
354
|
-
},
|
|
355
|
-
const { currentBusiness: e } =
|
|
354
|
+
}, ee = W("permissionSet", () => {
|
|
355
|
+
const { currentBusiness: e } = z(), s = S([]), t = S(null);
|
|
356
356
|
async function o() {
|
|
357
357
|
var l;
|
|
358
|
-
const
|
|
359
|
-
if (
|
|
358
|
+
const a = ((l = e.value) == null ? void 0 : l._id) ?? null;
|
|
359
|
+
if (t.value === a) return;
|
|
360
360
|
const u = await O.read();
|
|
361
|
-
s.value = r(u),
|
|
361
|
+
s.value = r(u), t.value = a;
|
|
362
362
|
}
|
|
363
|
-
async function i(
|
|
364
|
-
const u = await O.create(
|
|
363
|
+
async function i(a) {
|
|
364
|
+
const u = await O.create(a);
|
|
365
365
|
s.value = r([...s.value, u]);
|
|
366
366
|
}
|
|
367
|
-
async function
|
|
368
|
-
const l = await O.update(
|
|
369
|
-
s.value = r(s.value.map((d) => d.id ===
|
|
367
|
+
async function n(a, u) {
|
|
368
|
+
const l = await O.update(a, u);
|
|
369
|
+
s.value = r(s.value.map((d) => d.id === a ? l : d));
|
|
370
370
|
}
|
|
371
|
-
async function a
|
|
372
|
-
await O.delete(
|
|
371
|
+
async function c(a) {
|
|
372
|
+
await O.delete(a), s.value = r(s.value.filter((u) => u.id !== a));
|
|
373
373
|
}
|
|
374
|
-
function r(
|
|
375
|
-
return
|
|
374
|
+
function r(a) {
|
|
375
|
+
return a.sort((u, l) => u.name.localeCompare(l.name));
|
|
376
376
|
}
|
|
377
377
|
return {
|
|
378
378
|
permissionSets: s,
|
|
379
379
|
readPermissionSets: o,
|
|
380
380
|
createPermissionSet: i,
|
|
381
|
-
updatePermissionSet:
|
|
382
|
-
deletePermissionSet:
|
|
381
|
+
updatePermissionSet: n,
|
|
382
|
+
deletePermissionSet: c
|
|
383
383
|
};
|
|
384
|
-
}),
|
|
385
|
-
const e =
|
|
384
|
+
}), se = () => {
|
|
385
|
+
const e = ee();
|
|
386
386
|
return {
|
|
387
387
|
...e,
|
|
388
|
-
...
|
|
388
|
+
...V(e)
|
|
389
389
|
};
|
|
390
390
|
};
|
|
391
391
|
function K(e) {
|
|
392
|
-
const s = /* @__PURE__ */ new Map(),
|
|
393
|
-
var r,
|
|
394
|
-
const u = `${
|
|
392
|
+
const s = /* @__PURE__ */ new Map(), t = /* @__PURE__ */ new Map(), o = (i, n, c) => {
|
|
393
|
+
var r, a;
|
|
394
|
+
const u = `${n.subject}::${JSON.stringify([...n.actions].sort())}`, l = i.get(u);
|
|
395
395
|
if (!l) {
|
|
396
|
-
i.set(u, { ...
|
|
396
|
+
i.set(u, { ...n, setNames: [c.name], setId: c._id });
|
|
397
397
|
return;
|
|
398
398
|
}
|
|
399
|
-
if (l.setNames.push(
|
|
400
|
-
const d = typeof l.conditions == "string" ? JSON.parse(l.conditions) : l.conditions, p = typeof
|
|
399
|
+
if (l.setNames.push(c.name), l.conditions && n.conditions) {
|
|
400
|
+
const d = typeof l.conditions == "string" ? JSON.parse(l.conditions) : l.conditions, p = typeof n.conditions == "string" ? JSON.parse(n.conditions) : n.conditions;
|
|
401
401
|
for (const m in p)
|
|
402
|
-
(r = d[m]) != null && r.$in && (
|
|
402
|
+
(r = d[m]) != null && r.$in && (a = p[m]) != null && a.$in ? d[m].$in = Array.from(/* @__PURE__ */ new Set([...d[m].$in, ...p[m].$in])) : d[m] || (d[m] = p[m]);
|
|
403
403
|
l.conditions = JSON.stringify(d);
|
|
404
404
|
}
|
|
405
405
|
};
|
|
406
406
|
for (const i of e)
|
|
407
|
-
for (const
|
|
408
|
-
o(
|
|
409
|
-
return [...Array.from(s.values()), ...Array.from(
|
|
407
|
+
for (const n of i.permissions)
|
|
408
|
+
o(n.inverted ? t : s, n, i);
|
|
409
|
+
return [...Array.from(s.values()), ...Array.from(t.values())];
|
|
410
410
|
}
|
|
411
411
|
function U(e, s) {
|
|
412
412
|
return `${e}::${[...s].sort().join(",")}`;
|
|
413
413
|
}
|
|
414
414
|
function X(e, s) {
|
|
415
|
-
const
|
|
415
|
+
const t = [...e], o = /* @__PURE__ */ new Set(), i = /* @__PURE__ */ new Set(), n = /* @__PURE__ */ new Set();
|
|
416
416
|
for (const r of e) {
|
|
417
|
-
const
|
|
418
|
-
o.add(U(
|
|
417
|
+
const a = I(r.subject);
|
|
418
|
+
o.add(U(a, r.actions)), r.inverted && r.actions.includes("manage") && i.add(`set_${a}`), !r.inverted && r.actions.includes("manage") && n.add(a);
|
|
419
419
|
}
|
|
420
|
-
const
|
|
421
|
-
for (;
|
|
422
|
-
const r =
|
|
423
|
-
if (!u || i.has(
|
|
424
|
-
i.add(
|
|
425
|
-
const l =
|
|
420
|
+
const c = [...e];
|
|
421
|
+
for (; c.length > 0; ) {
|
|
422
|
+
const r = c.shift(), a = `set_${I(r.subject)}`, u = s[a];
|
|
423
|
+
if (!u || i.has(a) || !r.actions.includes("manage") || r.inverted) continue;
|
|
424
|
+
i.add(a);
|
|
425
|
+
const l = ne(r);
|
|
426
426
|
r.source && !r.source.trace && (r.source = { ...r.source, trace: l });
|
|
427
427
|
const d = [...l, `${u.name} (system)`];
|
|
428
428
|
for (const p of u.permissions ?? []) {
|
|
429
429
|
const m = I(p.subject), f = U(m, p.actions);
|
|
430
|
-
o.has(f) ||
|
|
430
|
+
o.has(f) || n.has(m) || (o.add(f), t.push({
|
|
431
431
|
...p,
|
|
432
432
|
// FdoPermissionRule.fields is string[] | null; RawRule expects string[] | undefined
|
|
433
433
|
fields: p.fields ?? void 0,
|
|
@@ -450,15 +450,15 @@ function X(e, s) {
|
|
|
450
450
|
trace: d
|
|
451
451
|
}
|
|
452
452
|
};
|
|
453
|
-
o.has(f) || (o.add(f),
|
|
453
|
+
o.has(f) || (o.add(f), t.push(g)), c.push(g);
|
|
454
454
|
}
|
|
455
455
|
}
|
|
456
|
-
return [...
|
|
456
|
+
return [...t.filter((r) => !r.inverted), ...t.filter((r) => r.inverted)];
|
|
457
457
|
}
|
|
458
|
-
function
|
|
458
|
+
function ne(e) {
|
|
459
459
|
if (!e.source) return [];
|
|
460
|
-
const { type: s, trace:
|
|
461
|
-
if (
|
|
460
|
+
const { type: s, trace: t, permissionSetName: o } = e.source;
|
|
461
|
+
if (t && t.length > 0) return t;
|
|
462
462
|
switch (s) {
|
|
463
463
|
case "permissionSet":
|
|
464
464
|
return o ? [o] : [];
|
|
@@ -468,47 +468,47 @@ function se(e) {
|
|
|
468
468
|
return [];
|
|
469
469
|
}
|
|
470
470
|
}
|
|
471
|
-
function Q(e, s,
|
|
471
|
+
function Q(e, s, t = /* @__PURE__ */ new Set()) {
|
|
472
472
|
var i;
|
|
473
473
|
const o = [];
|
|
474
|
-
for (const
|
|
475
|
-
if (
|
|
476
|
-
|
|
477
|
-
const
|
|
478
|
-
|
|
474
|
+
for (const n of e) {
|
|
475
|
+
if (t.has(n)) continue;
|
|
476
|
+
t.add(n);
|
|
477
|
+
const c = s.find((r) => r.id === n);
|
|
478
|
+
c && (o.push(c), (i = c.permissionSetIds) != null && i.length && o.push(...Q(c.permissionSetIds, s, t)));
|
|
479
479
|
}
|
|
480
480
|
return o;
|
|
481
481
|
}
|
|
482
|
-
function
|
|
482
|
+
function Pe(e) {
|
|
483
483
|
const s = K(e).map(
|
|
484
|
-
({ setNames: i, setId:
|
|
485
|
-
),
|
|
486
|
-
return
|
|
484
|
+
({ setNames: i, setId: n, ...c }) => c
|
|
485
|
+
), t = s.filter((i) => !i.inverted), o = s.filter((i) => i.inverted);
|
|
486
|
+
return M(t, o);
|
|
487
487
|
}
|
|
488
|
-
function
|
|
488
|
+
function we(e, s, t) {
|
|
489
489
|
const o = /* @__PURE__ */ new Map();
|
|
490
490
|
return e.forEach(
|
|
491
|
-
({ name: i, permissions:
|
|
491
|
+
({ name: i, permissions: n }) => n.forEach(({ conditions: c, actions: r }) => {
|
|
492
492
|
var u, l;
|
|
493
|
-
const
|
|
494
|
-
(u =
|
|
493
|
+
const a = JSON.parse(c || "{}");
|
|
494
|
+
(u = a[s]) != null && u.$in ? (l = a[s]) == null || l.$in.forEach(
|
|
495
495
|
(d) => (o.get(d) ?? o.set(d, /* @__PURE__ */ new Set()).get(d)).add(i)
|
|
496
|
-
) : r[0] === "manage" &&
|
|
496
|
+
) : r[0] === "manage" && t.forEach((d) => {
|
|
497
497
|
(o.get(d) ?? o.set(d, /* @__PURE__ */ new Set()).get(d)).add(i);
|
|
498
498
|
});
|
|
499
499
|
})
|
|
500
|
-
), [...o].map(([i,
|
|
500
|
+
), [...o].map(([i, n]) => ({
|
|
501
501
|
id: i,
|
|
502
|
-
setNames: [...
|
|
502
|
+
setNames: [...n]
|
|
503
503
|
}));
|
|
504
504
|
}
|
|
505
|
-
function
|
|
506
|
-
const
|
|
505
|
+
function $e(e, s) {
|
|
506
|
+
const t = (r, a) => {
|
|
507
507
|
const u = { ...r }, l = JSON.parse(u.conditions || "{}");
|
|
508
|
-
if (
|
|
509
|
-
if (
|
|
508
|
+
if (a)
|
|
509
|
+
if (a.length > 0) {
|
|
510
510
|
const d = Object.keys(l)[0];
|
|
511
|
-
l[d].$in =
|
|
511
|
+
l[d].$in = a;
|
|
512
512
|
} else
|
|
513
513
|
delete u.conditions;
|
|
514
514
|
return {
|
|
@@ -516,151 +516,151 @@ function we(e, s) {
|
|
|
516
516
|
inverted: !0,
|
|
517
517
|
...u.conditions && { conditions: JSON.stringify(l) }
|
|
518
518
|
};
|
|
519
|
-
}, o = new Map(e.map((r) => [r.subject, r])), i = new Map(s.map((r) => [r.subject, r])),
|
|
520
|
-
for (const r of
|
|
521
|
-
const
|
|
522
|
-
if (
|
|
523
|
-
if (
|
|
524
|
-
const l = JSON.parse(
|
|
519
|
+
}, o = new Map(e.map((r) => [r.subject, r])), i = new Map(s.map((r) => [r.subject, r])), n = [], c = /* @__PURE__ */ new Set([...o.keys(), ...i.keys()]);
|
|
520
|
+
for (const r of c) {
|
|
521
|
+
const a = o.get(r), u = i.get(r);
|
|
522
|
+
if (a && u) {
|
|
523
|
+
if (a.conditions && u.conditions) {
|
|
524
|
+
const l = JSON.parse(a.conditions), d = JSON.parse(u.conditions), p = Object.keys(l)[0], m = l[p].$in.filter(
|
|
525
525
|
(g) => !d[p].$in.includes(g)
|
|
526
526
|
);
|
|
527
|
-
m.length > 0 &&
|
|
527
|
+
m.length > 0 && n.push(t(a, m)), d[p].$in.filter(
|
|
528
528
|
(g) => !l[p].$in.includes(g)
|
|
529
|
-
).length > 0 &&
|
|
530
|
-
} else if (!
|
|
531
|
-
|
|
532
|
-
else if (!
|
|
533
|
-
const l = new Set(
|
|
529
|
+
).length > 0 && n.push(u);
|
|
530
|
+
} else if (!a.conditions && u.conditions)
|
|
531
|
+
n.push(u);
|
|
532
|
+
else if (!a.conditions && !u.conditions) {
|
|
533
|
+
const l = new Set(a.actions), d = new Set(u.actions), p = u.actions.some((f) => !l.has(f)), m = a.actions.filter((f) => !d.has(f));
|
|
534
534
|
if (p) {
|
|
535
535
|
const f = u.actions.filter((g) => !l.has(g));
|
|
536
|
-
|
|
536
|
+
n.push({
|
|
537
537
|
...u,
|
|
538
538
|
actions: f
|
|
539
539
|
});
|
|
540
540
|
}
|
|
541
|
-
m.length > 0 &&
|
|
542
|
-
...
|
|
541
|
+
m.length > 0 && n.push({
|
|
542
|
+
...a,
|
|
543
543
|
actions: m,
|
|
544
544
|
inverted: !0
|
|
545
545
|
});
|
|
546
546
|
}
|
|
547
547
|
continue;
|
|
548
548
|
}
|
|
549
|
-
if (
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
549
|
+
if (a) {
|
|
550
|
+
n.push(
|
|
551
|
+
t(
|
|
552
|
+
a,
|
|
553
553
|
// If base has conditions, set diffIds to empty array, disallow all access to collection
|
|
554
554
|
// otherwise, invert directly
|
|
555
|
-
|
|
555
|
+
a.conditions && []
|
|
556
556
|
)
|
|
557
557
|
);
|
|
558
558
|
continue;
|
|
559
559
|
}
|
|
560
|
-
u &&
|
|
560
|
+
u && n.push(u);
|
|
561
561
|
}
|
|
562
|
-
return
|
|
562
|
+
return n;
|
|
563
563
|
}
|
|
564
|
-
function
|
|
564
|
+
function Re(e) {
|
|
565
565
|
const s = X(
|
|
566
566
|
e,
|
|
567
|
-
|
|
568
|
-
),
|
|
567
|
+
k
|
|
568
|
+
), t = new Set(
|
|
569
569
|
s.filter((i) => {
|
|
570
|
-
var
|
|
571
|
-
return ((
|
|
570
|
+
var n;
|
|
571
|
+
return ((n = i.source) == null ? void 0 : n.type) === "systemPermissionSet" && !i.inverted;
|
|
572
572
|
}).map((i) => i.subject)
|
|
573
573
|
), o = new Set(
|
|
574
574
|
s.filter(
|
|
575
575
|
(i) => {
|
|
576
|
-
var
|
|
577
|
-
return ((
|
|
576
|
+
var n;
|
|
577
|
+
return ((n = i.source) == null ? void 0 : n.type) === "systemPermissionSet" && !i.inverted && i.actions.includes("manage");
|
|
578
578
|
}
|
|
579
579
|
).map((i) => i.subject)
|
|
580
580
|
);
|
|
581
|
-
return e.filter((i) => i.inverted ? !(
|
|
581
|
+
return e.filter((i) => i.inverted ? !(t.has(i.subject) && !o.has(i.subject)) : !t.has(i.subject));
|
|
582
582
|
}
|
|
583
|
-
const
|
|
584
|
-
function
|
|
585
|
-
const
|
|
586
|
-
const
|
|
587
|
-
return !
|
|
583
|
+
const te = "business::report::";
|
|
584
|
+
function Ie(e, s) {
|
|
585
|
+
const t = [], o = e.filter((i) => {
|
|
586
|
+
const n = i.subject;
|
|
587
|
+
return !n.startsWith(te) || s.has(n) ? !0 : (t.push(n), !1);
|
|
588
588
|
});
|
|
589
|
-
return
|
|
589
|
+
return t.length > 0 && console.warn("[filterStalePermissions] dropped stale report permissions:", t), o;
|
|
590
590
|
}
|
|
591
|
-
const
|
|
592
|
-
function
|
|
593
|
-
const
|
|
594
|
-
(
|
|
591
|
+
const oe = "business::report::reports::", ie = "business::report::allDefaultReports", re = "business::report::allCustomReports";
|
|
592
|
+
function Ae(e, s) {
|
|
593
|
+
const t = e.find(
|
|
594
|
+
(c) => !c.inverted && c.subject === ie
|
|
595
595
|
), o = e.find(
|
|
596
|
-
(
|
|
596
|
+
(c) => !c.inverted && c.subject === re
|
|
597
597
|
);
|
|
598
|
-
if (!
|
|
599
|
-
const i =
|
|
600
|
-
return e.reduce((
|
|
598
|
+
if (!t && !o) return e;
|
|
599
|
+
const i = t ? new Set(t.actions) : null, n = o ? new Set(o.actions) : null;
|
|
600
|
+
return e.reduce((c, r) => {
|
|
601
601
|
if (r.inverted)
|
|
602
|
-
return
|
|
603
|
-
const
|
|
604
|
-
if (!
|
|
605
|
-
return
|
|
606
|
-
const l = s.has(
|
|
602
|
+
return c.push(r), c;
|
|
603
|
+
const a = r.subject;
|
|
604
|
+
if (!a.startsWith(oe))
|
|
605
|
+
return c.push(r), c;
|
|
606
|
+
const l = s.has(a) ? i : n;
|
|
607
607
|
if (!l)
|
|
608
|
-
return
|
|
609
|
-
if (l.has("manage")) return
|
|
608
|
+
return c.push(r), c;
|
|
609
|
+
if (l.has("manage")) return c;
|
|
610
610
|
const d = new Set(r.actions), p = d.has("manage");
|
|
611
611
|
let m = !1;
|
|
612
612
|
for (const f of l)
|
|
613
613
|
f !== "manage" && d.delete(f) && (m = !0);
|
|
614
|
-
return p && m && d.delete("manage"), d.size === 0 ||
|
|
614
|
+
return p && m && d.delete("manage"), d.size === 0 || c.push({ ...r, actions: Array.from(d) }), c;
|
|
615
615
|
}, []);
|
|
616
616
|
}
|
|
617
|
-
function
|
|
617
|
+
function M(e, s) {
|
|
618
618
|
var o, i;
|
|
619
|
-
const
|
|
620
|
-
for (const
|
|
621
|
-
if (
|
|
622
|
-
const r =
|
|
623
|
-
if (
|
|
619
|
+
const t = new Map(e.map((n) => [n.subject, n]));
|
|
620
|
+
for (const n of s) {
|
|
621
|
+
if (n.inverted) {
|
|
622
|
+
const r = t.get(n.subject);
|
|
623
|
+
if (n.conditions) {
|
|
624
624
|
if (r != null && r.conditions) {
|
|
625
|
-
const
|
|
626
|
-
m.length > 0 ?
|
|
625
|
+
const a = JSON.parse(r.conditions), u = JSON.parse(n.conditions), l = Object.keys(u)[0], d = ((o = u[l]) == null ? void 0 : o.$in) ?? [], m = (((i = a[l]) == null ? void 0 : i.$in) ?? []).filter((f) => !d.includes(f));
|
|
626
|
+
m.length > 0 ? t.set(n.subject, {
|
|
627
627
|
...r,
|
|
628
628
|
conditions: JSON.stringify({ [l]: { $in: m } })
|
|
629
|
-
}) :
|
|
629
|
+
}) : t.delete(n.subject);
|
|
630
630
|
} else
|
|
631
|
-
|
|
631
|
+
t.delete(n.subject);
|
|
632
632
|
continue;
|
|
633
633
|
}
|
|
634
634
|
if (r) {
|
|
635
|
-
const
|
|
636
|
-
u.length > 0 ?
|
|
635
|
+
const a = new Set(n.actions), u = r.actions.filter((l) => !a.has(l));
|
|
636
|
+
u.length > 0 ? t.set(n.subject, { ...r, actions: u }) : t.delete(n.subject);
|
|
637
637
|
continue;
|
|
638
638
|
}
|
|
639
639
|
continue;
|
|
640
640
|
}
|
|
641
|
-
if (
|
|
642
|
-
|
|
641
|
+
if (n.conditions) {
|
|
642
|
+
t.set(n.subject, n);
|
|
643
643
|
continue;
|
|
644
644
|
}
|
|
645
|
-
const
|
|
646
|
-
if (
|
|
645
|
+
const c = t.get(n.subject);
|
|
646
|
+
if (c) {
|
|
647
647
|
const r = [
|
|
648
648
|
.../* @__PURE__ */ new Set([
|
|
649
|
-
...
|
|
650
|
-
...
|
|
649
|
+
...c.actions,
|
|
650
|
+
...n.actions
|
|
651
651
|
])
|
|
652
652
|
];
|
|
653
|
-
|
|
653
|
+
t.set(n.subject, { ...c, actions: r });
|
|
654
654
|
} else
|
|
655
|
-
|
|
655
|
+
t.set(n.subject, n);
|
|
656
656
|
}
|
|
657
|
-
return Array.from(
|
|
657
|
+
return Array.from(t.values());
|
|
658
658
|
}
|
|
659
|
-
function
|
|
660
|
-
const
|
|
661
|
-
(
|
|
659
|
+
function ae(e, s) {
|
|
660
|
+
const t = M(e, s), o = new Set(e.map((n) => n.subject)), i = s.filter(
|
|
661
|
+
(n) => n.inverted && !o.has(n.subject)
|
|
662
662
|
);
|
|
663
|
-
return [...
|
|
663
|
+
return [...t, ...i];
|
|
664
664
|
}
|
|
665
665
|
const y = "/permission-assignments", P = {
|
|
666
666
|
async readAll() {
|
|
@@ -686,89 +686,89 @@ const y = "/permission-assignments", P = {
|
|
|
686
686
|
await v().post("/my-permissions/report-manage", { permissionKey: e, label: s })
|
|
687
687
|
);
|
|
688
688
|
}
|
|
689
|
-
},
|
|
689
|
+
}, ce = W("permissionAssignment", () => {
|
|
690
690
|
const e = S([]);
|
|
691
691
|
async function s() {
|
|
692
692
|
const r = await P.readAll();
|
|
693
693
|
e.value = r;
|
|
694
694
|
}
|
|
695
|
-
async function
|
|
695
|
+
async function t(r) {
|
|
696
696
|
return await P.readByUserId(r);
|
|
697
697
|
}
|
|
698
698
|
async function o(r) {
|
|
699
|
-
const
|
|
700
|
-
e.value = [...e.value,
|
|
699
|
+
const a = await P.create(r);
|
|
700
|
+
e.value = [...e.value, a];
|
|
701
701
|
}
|
|
702
|
-
async function i(r,
|
|
703
|
-
const u = await P.update(r,
|
|
702
|
+
async function i(r, a) {
|
|
703
|
+
const u = await P.update(r, a);
|
|
704
704
|
e.value = e.value.map((l) => l.id === r ? u : l);
|
|
705
705
|
}
|
|
706
|
-
async function
|
|
707
|
-
await P.delete(r), e.value = e.value.filter((
|
|
706
|
+
async function n(r) {
|
|
707
|
+
await P.delete(r), e.value = e.value.filter((a) => a.id !== r);
|
|
708
708
|
}
|
|
709
|
-
function
|
|
710
|
-
return e.value.find((
|
|
709
|
+
function c(r) {
|
|
710
|
+
return e.value.find((a) => a.userId === r);
|
|
711
711
|
}
|
|
712
712
|
return {
|
|
713
713
|
permissionAssignments: e,
|
|
714
714
|
readPermissionAssignments: s,
|
|
715
|
-
readPermissionAssignmentByUserId:
|
|
715
|
+
readPermissionAssignmentByUserId: t,
|
|
716
716
|
createPermissionAssignment: o,
|
|
717
717
|
updatePermissionAssignment: i,
|
|
718
|
-
deletePermissionAssignment:
|
|
719
|
-
getPermissionAssignmentByUserId:
|
|
718
|
+
deletePermissionAssignment: n,
|
|
719
|
+
getPermissionAssignmentByUserId: c
|
|
720
720
|
};
|
|
721
|
-
}),
|
|
722
|
-
const e =
|
|
721
|
+
}), ue = () => {
|
|
722
|
+
const e = ce();
|
|
723
723
|
return {
|
|
724
724
|
...e,
|
|
725
|
-
...
|
|
725
|
+
...V(e)
|
|
726
726
|
};
|
|
727
|
-
},
|
|
727
|
+
}, le = {
|
|
728
728
|
async fetchReportPermissions(e, s) {
|
|
729
|
-
const
|
|
729
|
+
const t = s ? { lang: s } : {};
|
|
730
730
|
return b(
|
|
731
|
-
await
|
|
731
|
+
await L().get(`/report-query/hrm/${e}/reports`, { params: t })
|
|
732
732
|
);
|
|
733
733
|
},
|
|
734
734
|
async fetchReportPermissionsForPortal(e, s) {
|
|
735
|
-
const
|
|
735
|
+
const t = s ? { isSupportPos: !1, lang: s } : { isSupportPos: !1 };
|
|
736
736
|
return b(
|
|
737
|
-
await
|
|
737
|
+
await L().get(`/report-query/hrm/${e}/reports`, { params: t })
|
|
738
738
|
);
|
|
739
739
|
}
|
|
740
|
-
}, _ = S([]), E = S(!1), w = S(!1), $ = S(null),
|
|
741
|
-
function
|
|
742
|
-
const e =
|
|
740
|
+
}, _ = S([]), E = S(!1), w = S(!1), $ = S(null), D = S(null), C = S(!1);
|
|
741
|
+
function de() {
|
|
742
|
+
const e = z();
|
|
743
743
|
async function s() {
|
|
744
|
-
var
|
|
745
|
-
const o = (
|
|
744
|
+
var n;
|
|
745
|
+
const o = (n = e.currentBusiness.value) == null ? void 0 : n.id;
|
|
746
746
|
if (!o) return;
|
|
747
747
|
const i = localStorage.getItem("locale");
|
|
748
|
-
if ($.value !== o && (_.value = [], E.value = !1, w.value = !1, $.value = o, C.value = !1), !(E.value &&
|
|
748
|
+
if ($.value !== o && (_.value = [], E.value = !1, w.value = !1, $.value = o, C.value = !1), !(E.value && D.value === i)) {
|
|
749
749
|
if (w.value) {
|
|
750
750
|
C.value = !0;
|
|
751
751
|
return;
|
|
752
752
|
}
|
|
753
753
|
w.value = !0;
|
|
754
754
|
try {
|
|
755
|
-
const
|
|
755
|
+
const c = await le.fetchReportPermissionsForPortal(o, i);
|
|
756
756
|
if ($.value !== o) return;
|
|
757
|
-
_.value =
|
|
758
|
-
} catch (
|
|
757
|
+
_.value = c, E.value = !0, D.value = i;
|
|
758
|
+
} catch (c) {
|
|
759
759
|
if ($.value !== o) return;
|
|
760
|
-
console.warn("Failed to fetch custom report permissions:",
|
|
760
|
+
console.warn("Failed to fetch custom report permissions:", c), _.value = [];
|
|
761
761
|
} finally {
|
|
762
762
|
$.value === o && (w.value = !1, C.value && (C.value = !1, await s()));
|
|
763
763
|
}
|
|
764
764
|
}
|
|
765
765
|
}
|
|
766
|
-
const
|
|
766
|
+
const t = T(() => _.value.map(
|
|
767
767
|
(o) => o.isDefault ? {
|
|
768
768
|
label: o.name,
|
|
769
769
|
subject: `business::report::reports::${o.permissionKey}`,
|
|
770
770
|
actions: [j.manage, j.read, j.create],
|
|
771
|
-
category:
|
|
771
|
+
category: F.reports
|
|
772
772
|
} : {
|
|
773
773
|
label: o.name,
|
|
774
774
|
subject: `business::report::reports::${o.permissionKey}`,
|
|
@@ -779,65 +779,63 @@ function le() {
|
|
|
779
779
|
j.update,
|
|
780
780
|
j.delete
|
|
781
781
|
],
|
|
782
|
-
category:
|
|
782
|
+
category: F.customReports
|
|
783
783
|
}
|
|
784
784
|
));
|
|
785
785
|
return {
|
|
786
786
|
fetchCustomReportPermissions: s,
|
|
787
|
-
customReportPermissions:
|
|
787
|
+
customReportPermissions: t,
|
|
788
788
|
isLoading: T(() => w.value),
|
|
789
789
|
isLoaded: T(() => E.value)
|
|
790
790
|
};
|
|
791
791
|
}
|
|
792
792
|
function R(e) {
|
|
793
|
-
const s =
|
|
794
|
-
(
|
|
795
|
-
|
|
796
|
-
),
|
|
793
|
+
const s = se(), t = ue(), o = H().restaurants, { customReportPermissions: i } = de(), n = t.getPermissionAssignmentByUserId(e.id), c = Q(
|
|
794
|
+
(n == null ? void 0 : n.permissionSetIds) ?? [],
|
|
795
|
+
s.permissionSets.value
|
|
796
|
+
), r = K(c).map(
|
|
797
797
|
({ setNames: f, ...g }) => g
|
|
798
|
-
),
|
|
798
|
+
), a = n == null ? void 0 : n.customPermissions, u = a ?? e.permissions.map((f) => ({
|
|
799
799
|
...f,
|
|
800
800
|
subject: I(f.subject)
|
|
801
|
-
})),
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
).filter((f) => !f.inverted),
|
|
801
|
+
})), l = M(r, u), d = X(
|
|
802
|
+
ae(r, u),
|
|
803
|
+
k
|
|
804
|
+
).filter((f) => !f.inverted), p = fe(d), m = p ?? o.value.map((f) => f._id);
|
|
805
805
|
return {
|
|
806
806
|
doc: e,
|
|
807
807
|
id: e.id,
|
|
808
808
|
name: e.name && e.name !== e.email && e.name !== e.phoneNumber ? e.name : "-",
|
|
809
809
|
phoneNumber: e.phoneNumber,
|
|
810
810
|
email: e.email,
|
|
811
|
-
restaurants:
|
|
812
|
-
m.map(
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
}
|
|
817
|
-
)
|
|
811
|
+
restaurants: x(
|
|
812
|
+
m.map((f) => {
|
|
813
|
+
var g;
|
|
814
|
+
return ((g = o.value.find((G) => G._id === f)) == null ? void 0 : g.profile.name) ?? "";
|
|
815
|
+
})
|
|
818
816
|
),
|
|
819
|
-
managableRestaurantIds:
|
|
820
|
-
permissionLabels:
|
|
821
|
-
permissions:
|
|
817
|
+
managableRestaurantIds: p,
|
|
818
|
+
permissionLabels: be(d, i.value),
|
|
819
|
+
permissions: l
|
|
822
820
|
};
|
|
823
821
|
}
|
|
824
|
-
const
|
|
825
|
-
Object.values(
|
|
826
|
-
),
|
|
822
|
+
const me = Object.freeze(
|
|
823
|
+
Object.values(Z)
|
|
824
|
+
), Oe = {
|
|
827
825
|
async readTeamMembers() {
|
|
828
826
|
return b(
|
|
829
827
|
await v().get("/portal-users")
|
|
830
828
|
).map(R);
|
|
831
829
|
},
|
|
832
830
|
async readTeamMembersPage(e) {
|
|
833
|
-
var
|
|
831
|
+
var t, o;
|
|
834
832
|
const s = b(
|
|
835
833
|
await v().get("/portal-users/paged", {
|
|
836
834
|
params: {
|
|
837
835
|
limit: e.limit,
|
|
838
836
|
offset: e.offset,
|
|
839
837
|
search: e.search,
|
|
840
|
-
restaurantIds: (
|
|
838
|
+
restaurantIds: (t = e.restaurantIds) != null && t.length ? e.restaurantIds : void 0,
|
|
841
839
|
permissionSubjects: (o = e.permissionSubjects) != null && o.length ? e.permissionSubjects : void 0
|
|
842
840
|
}
|
|
843
841
|
})
|
|
@@ -869,15 +867,15 @@ const de = Object.freeze(
|
|
|
869
867
|
return b(await v().get("/portal-users")).map((s) => s.posUserId);
|
|
870
868
|
}
|
|
871
869
|
};
|
|
872
|
-
function
|
|
873
|
-
if (e.some((
|
|
874
|
-
const o = (
|
|
875
|
-
(
|
|
876
|
-
), i = new Set(o.map((
|
|
877
|
-
return
|
|
870
|
+
function _e(e, s, t) {
|
|
871
|
+
if (e.some((c) => c.subject === "all")) return "All";
|
|
872
|
+
const o = (t ?? B).filter(
|
|
873
|
+
(c) => c.subject === s
|
|
874
|
+
), i = new Set(o.map((c) => N(c).value)), n = e.filter((c) => c.subject === s).filter((c) => i.has(N(c).value));
|
|
875
|
+
return n.length === o.length ? "All" : n.length === 0 ? "-" : `${n.length} permission allow`;
|
|
878
876
|
}
|
|
879
877
|
function N(e) {
|
|
880
|
-
const s =
|
|
878
|
+
const s = Y(e), t = s.subject;
|
|
881
879
|
return {
|
|
882
880
|
...s,
|
|
883
881
|
get conditions() {
|
|
@@ -885,46 +883,46 @@ function N(e) {
|
|
|
885
883
|
},
|
|
886
884
|
get isDiscountOperation() {
|
|
887
885
|
var o;
|
|
888
|
-
return
|
|
886
|
+
return t === h.F_RULE_SUBJECT.enum.order && ((o = this.conditions) == null ? void 0 : o.operation) === h.F_RULE_ORDER_OPERATION.enum.discount;
|
|
889
887
|
},
|
|
890
888
|
get isOrderOperation() {
|
|
891
|
-
return
|
|
889
|
+
return t === h.F_RULE_SUBJECT.enum.order;
|
|
892
890
|
},
|
|
893
891
|
get isReportPermission() {
|
|
894
|
-
return
|
|
892
|
+
return t === h.F_RULE_SUBJECT.enum.report;
|
|
895
893
|
},
|
|
896
894
|
get formatted() {
|
|
897
895
|
const o = (i) => i.endsWith("_") ? i.slice(0, i.length - 1) : i;
|
|
898
|
-
return this.isOrderOperation ? o(this.conditions.operation) : this.isReportPermission ? o(this.conditions.name) :
|
|
896
|
+
return this.isOrderOperation ? o(this.conditions.operation) : this.isReportPermission ? o(this.conditions.name) : t.toString();
|
|
899
897
|
},
|
|
900
898
|
get label() {
|
|
901
|
-
return s.label ||
|
|
899
|
+
return s.label || q(this.formatted);
|
|
902
900
|
},
|
|
903
901
|
get value() {
|
|
904
|
-
return this.isOrderOperation ? `${
|
|
902
|
+
return this.isOrderOperation ? `${t}:${this.conditions.operation}` : this.isReportPermission ? `${t}:${this.conditions.name}` : t.toString();
|
|
905
903
|
}
|
|
906
904
|
};
|
|
907
905
|
}
|
|
908
|
-
function
|
|
909
|
-
const s = e.map((
|
|
906
|
+
function Ee(e) {
|
|
907
|
+
const s = e.map((t) => N(t)).find((t) => t.isDiscountOperation);
|
|
910
908
|
return s ? parseInt((s.conditions.adjustment.$lte * 100).toFixed(0)) : 100;
|
|
911
909
|
}
|
|
912
|
-
function
|
|
910
|
+
function fe(e) {
|
|
913
911
|
const s = e.find(
|
|
914
|
-
(
|
|
912
|
+
(t) => t.subject === J.Subject.Restaurant.restaurant
|
|
915
913
|
);
|
|
916
914
|
return s ? s.conditions ? JSON.parse(s.conditions).restaurantId.$in : null : [];
|
|
917
915
|
}
|
|
918
|
-
function
|
|
916
|
+
function Ce(e) {
|
|
919
917
|
return (e == null ? void 0 : e.some((s) => s.subject === "all")) ?? !1;
|
|
920
918
|
}
|
|
921
|
-
function
|
|
922
|
-
const s = e.find((
|
|
919
|
+
function Ne(e) {
|
|
920
|
+
const s = e.find((t) => t.subject === J.Subject.Business.role);
|
|
923
921
|
return s ? s.conditions ? JSON.parse(s.conditions).roleId.$in : null : [];
|
|
924
922
|
}
|
|
925
|
-
function
|
|
926
|
-
return e.map((
|
|
927
|
-
const o =
|
|
923
|
+
function Te(e, s) {
|
|
924
|
+
return e.map((t) => {
|
|
925
|
+
const o = pe(t);
|
|
928
926
|
return {
|
|
929
927
|
subject: o.subject,
|
|
930
928
|
actions: o.actions,
|
|
@@ -935,62 +933,62 @@ function Ne(e, s) {
|
|
|
935
933
|
};
|
|
936
934
|
});
|
|
937
935
|
}
|
|
938
|
-
function
|
|
939
|
-
const [s,
|
|
936
|
+
function pe(e) {
|
|
937
|
+
const [s, t] = e.split(":");
|
|
940
938
|
let o;
|
|
941
|
-
return
|
|
939
|
+
return t ? (o = B.find(
|
|
942
940
|
(i) => i.subject === s && [
|
|
943
941
|
(typeof i.conditions == "object" ? i.conditions : JSON.parse(i.conditions)).operation,
|
|
944
942
|
i.conditions.name
|
|
945
|
-
].includes(
|
|
943
|
+
].includes(t)
|
|
946
944
|
), !o && s === h.F_RULE_SUBJECT.enum.report && (o = {
|
|
947
945
|
label: "",
|
|
948
946
|
subject: h.F_RULE_SUBJECT.enum.report,
|
|
949
947
|
actions: ["read"],
|
|
950
|
-
conditions: { name:
|
|
948
|
+
conditions: { name: t },
|
|
951
949
|
inverted: !1,
|
|
952
950
|
reason: ""
|
|
953
951
|
})) : o = B.find((i) => i.subject === s), N(o || { subject: h.F_RULE_SUBJECT.enum.order, actions: [], label: "" });
|
|
954
952
|
}
|
|
955
|
-
function
|
|
956
|
-
return
|
|
957
|
-
e.reduce((
|
|
958
|
-
const i =
|
|
959
|
-
(
|
|
960
|
-
) || s.find((
|
|
953
|
+
function be(e, s = []) {
|
|
954
|
+
return x(
|
|
955
|
+
e.reduce((t, o) => {
|
|
956
|
+
const i = me.find(
|
|
957
|
+
(n) => n.subject === o.subject && o.actions.includes("manage")
|
|
958
|
+
) || s.find((n) => n.subject === o.subject);
|
|
961
959
|
if (i) {
|
|
962
|
-
const
|
|
963
|
-
|
|
960
|
+
const n = i.subject === J.Subject.Business.inventory_stock ? "Warehouse Management" : i.label;
|
|
961
|
+
t.push(n);
|
|
964
962
|
}
|
|
965
|
-
return
|
|
963
|
+
return t;
|
|
966
964
|
}, [])
|
|
967
965
|
);
|
|
968
966
|
}
|
|
969
967
|
export {
|
|
970
968
|
X as $,
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
969
|
+
le as R,
|
|
970
|
+
_e as a,
|
|
971
|
+
ae as b,
|
|
974
972
|
Q as c,
|
|
975
|
-
|
|
973
|
+
de as d,
|
|
976
974
|
B as e,
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
975
|
+
Te as f,
|
|
976
|
+
Ee as g,
|
|
977
|
+
Ce as h,
|
|
978
|
+
te as i,
|
|
979
|
+
Ne as j,
|
|
980
|
+
Ie as k,
|
|
981
|
+
Ae as l,
|
|
982
|
+
Pe as m,
|
|
983
|
+
$e as n,
|
|
984
|
+
ue as o,
|
|
985
|
+
me as p,
|
|
986
|
+
be as q,
|
|
989
987
|
N as r,
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
988
|
+
Re as s,
|
|
989
|
+
Oe as t,
|
|
990
|
+
se as u,
|
|
993
991
|
K as v,
|
|
994
|
-
|
|
995
|
-
|
|
992
|
+
we as w,
|
|
993
|
+
fe as x
|
|
996
994
|
};
|