smart-admin-web 10.20.1 → 10.22.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/dist/api/index.d.ts +19 -1
- package/dist/api/index.js +85 -66
- package/dist/api/index.js.map +1 -1
- package/dist/api/schema.d.ts +448 -1
- package/dist/assets/icons/ph-subset.json.js +1 -1
- package/dist/components/FormContainer/index.vue.js +87 -75
- package/dist/components/FormContainer/index.vue.js.map +1 -1
- package/dist/components/UserPicker/UserAvatar.vue.d.ts +8 -0
- package/dist/components/UserPicker/UserAvatar.vue.js +8 -0
- package/dist/components/UserPicker/UserAvatar.vue.js.map +1 -0
- package/dist/components/UserPicker/UserAvatar2.vue.js +38 -0
- package/dist/components/UserPicker/UserAvatar2.vue.js.map +1 -0
- package/dist/components/UserPicker/index.vue.js +1 -1
- package/dist/components/UserPicker/index2.vue.js +328 -186
- package/dist/components/UserPicker/index2.vue.js.map +1 -1
- package/dist/composables/authMenuRoute.d.ts +10 -0
- package/dist/composables/authMenuRoute.js +39 -23
- package/dist/composables/authMenuRoute.js.map +1 -1
- package/dist/composables/useModule.d.ts +3 -1
- package/dist/composables/useModule.js +44 -32
- package/dist/composables/useModule.js.map +1 -1
- package/dist/index.js +246 -242
- package/dist/layouts/components/SideNav.vue.js +2 -2
- package/dist/layouts/components/SideNav2.vue.js.map +1 -1
- package/dist/lib/runtime.js +1 -1
- package/dist/lib/watermark.d.ts +1 -1
- package/dist/locales/en-US.d.ts +68 -3
- package/dist/locales/en-US.js +74 -8
- package/dist/locales/en-US.js.map +1 -1
- package/dist/locales/kernelMenuTitles.js +1 -0
- package/dist/locales/kernelMenuTitles.js.map +1 -1
- package/dist/locales/zh-CN.d.ts +68 -3
- package/dist/locales/zh-CN.js +74 -8
- package/dist/locales/zh-CN.js.map +1 -1
- package/dist/router/viewRegistry.js +6 -6
- package/dist/router/viewRegistry.js.map +1 -1
- package/dist/style.css +1 -1
- package/dist/theme/naive-theme.js +80 -77
- package/dist/theme/naive-theme.js.map +1 -1
- package/dist/types/api.d.ts +91 -0
- package/dist/types/api.js +17 -15
- package/dist/types/api.js.map +1 -1
- package/dist/utils/shake.d.ts +1 -0
- package/dist/utils/shake.js +30 -0
- package/dist/utils/shake.js.map +1 -0
- package/dist/utils/tree.d.ts +15 -0
- package/dist/utils/tree.js +43 -29
- package/dist/utils/tree.js.map +1 -1
- package/dist/utils/treeCard.d.ts +6 -0
- package/dist/utils/treeCard.js +9 -0
- package/dist/utils/treeCard.js.map +1 -0
- package/dist/views/error/404.vue.js +2 -2
- package/dist/views/error/4042.vue.js +81 -24
- package/dist/views/error/4042.vue.js.map +1 -1
- package/dist/views/login/LoginForm.vue.js +2 -2
- package/dist/views/login/LoginForm2.vue.js +135 -135
- package/dist/views/login/LoginForm2.vue.js.map +1 -1
- package/dist/views/login/components/LoginDesk.vue.js +2 -2
- package/dist/views/login/components/LoginDesk2.vue.js +59 -47
- package/dist/views/login/components/LoginDesk2.vue.js.map +1 -1
- package/dist/views/login/components/LoginHeroPanel.vue.js +2 -2
- package/dist/views/login/components/LoginHeroPanel2.vue.js.map +1 -1
- package/dist/views/personal/notice2.vue.js +1 -1
- package/dist/views/personal/notice2.vue.js.map +1 -1
- package/dist/views/personal/sessions.vue.js +2 -2
- package/dist/views/personal/sessions2.vue.js +41 -40
- package/dist/views/personal/sessions2.vue.js.map +1 -1
- package/dist/views/system/ai-usage/index.vue.js +3 -3
- package/dist/views/system/ai-usage/index2.vue.js +13 -12
- package/dist/views/system/ai-usage/index2.vue.js.map +1 -1
- package/dist/views/system/config/components/AdvancedSection.vue.js +3 -3
- package/dist/views/system/config/components/AdvancedSection2.vue.js +2 -1
- package/dist/views/system/config/components/AdvancedSection2.vue.js.map +1 -1
- package/dist/views/system/dict/index.vue.js +2 -2
- package/dist/views/system/dict/index2.vue.js +12 -1
- package/dist/views/system/dict/index2.vue.js.map +1 -1
- package/dist/views/system/file/index2.vue.js +1 -0
- package/dist/views/system/file/index2.vue.js.map +1 -1
- package/dist/views/system/job/index.vue.js +3 -3
- package/dist/views/system/job/index2.vue.js +182 -181
- package/dist/views/system/job/index2.vue.js.map +1 -1
- package/dist/views/system/job-log/components/AttemptTable2.vue.js +8 -3
- package/dist/views/system/job-log/components/AttemptTable2.vue.js.map +1 -1
- package/dist/views/system/job-log/index.vue.js +1 -1
- package/dist/views/system/job-log/index2.vue.js +5 -5
- package/dist/views/system/job-log/index2.vue.js.map +1 -1
- package/dist/views/system/job-monitor/index.vue.js +2 -2
- package/dist/views/system/job-monitor/index2.vue.js +46 -46
- package/dist/views/system/job-monitor/index2.vue.js.map +1 -1
- package/dist/views/system/log/exception/index.vue.js +2 -2
- package/dist/views/system/log/exception/index2.vue.js +8 -5
- package/dist/views/system/log/exception/index2.vue.js.map +1 -1
- package/dist/views/system/log/login/index2.vue.js +21 -12
- package/dist/views/system/log/login/index2.vue.js.map +1 -1
- package/dist/views/system/log/op/index.vue.js +2 -2
- package/dist/views/system/log/op/index2.vue.js +50 -40
- package/dist/views/system/log/op/index2.vue.js.map +1 -1
- package/dist/views/system/menu/components/ButtonManager.vue.js +2 -2
- package/dist/views/system/menu/components/ButtonManager2.vue.js +45 -36
- package/dist/views/system/menu/components/ButtonManager2.vue.js.map +1 -1
- package/dist/views/system/menu/index.vue.js +1 -1
- package/dist/views/system/menu/index2.vue.js +162 -151
- package/dist/views/system/menu/index2.vue.js.map +1 -1
- package/dist/views/system/module/index.vue.js +1 -1
- package/dist/views/system/module/index2.vue.js +171 -117
- package/dist/views/system/module/index2.vue.js.map +1 -1
- package/dist/views/system/notice/index.vue.js +3 -3
- package/dist/views/system/notice/index2.vue.js +1 -0
- package/dist/views/system/notice/index2.vue.js.map +1 -1
- package/dist/views/system/org/index.vue.js +2 -2
- package/dist/views/system/org/index2.vue.js +204 -195
- package/dist/views/system/org/index2.vue.js.map +1 -1
- package/dist/views/system/position/index.vue.js +2 -2
- package/dist/views/system/position/index2.vue.js +57 -48
- package/dist/views/system/position/index2.vue.js.map +1 -1
- package/dist/views/system/recycle/index.vue.js +1 -1
- package/dist/views/system/recycle/index2.vue.js +3 -1
- package/dist/views/system/recycle/index2.vue.js.map +1 -1
- package/dist/views/system/role/components/GrantMenuSheet.vue.d.ts +2 -0
- package/dist/views/system/role/components/GrantMenuSheet.vue.js +2 -2
- package/dist/views/system/role/components/GrantMenuSheet2.vue.js +54 -49
- package/dist/views/system/role/components/GrantMenuSheet2.vue.js.map +1 -1
- package/dist/views/system/role/components/GrantMenuTable.vue.js +1 -1
- package/dist/views/system/role/components/GrantMenuTable2.vue.js +159 -195
- package/dist/views/system/role/components/GrantMenuTable2.vue.js.map +1 -1
- package/dist/views/system/role/components/grantMenuGroups.d.ts +54 -0
- package/dist/views/system/role/components/grantMenuGroups.js +116 -76
- package/dist/views/system/role/components/grantMenuGroups.js.map +1 -1
- package/dist/views/system/role/index.vue.js +2 -2
- package/dist/views/system/role/index2.vue.js +152 -145
- package/dist/views/system/role/index2.vue.js.map +1 -1
- package/dist/views/system/session/index2.vue.js +39 -35
- package/dist/views/system/session/index2.vue.js.map +1 -1
- package/dist/views/system/user/components/UserGrantEffectiveTable.vue.d.ts +10 -0
- package/dist/views/system/user/components/UserGrantEffectiveTable.vue.js +5 -0
- package/dist/views/system/user/components/UserGrantEffectiveTable.vue.js.map +1 -0
- package/dist/views/system/user/components/UserGrantEffectiveTable2.vue.js +96 -0
- package/dist/views/system/user/components/UserGrantEffectiveTable2.vue.js.map +1 -0
- package/dist/views/system/user/components/UserGrantMenuSheet.vue.d.ts +13 -0
- package/dist/views/system/user/components/UserGrantMenuSheet.vue.js +8 -0
- package/dist/views/system/user/components/UserGrantMenuSheet.vue.js.map +1 -0
- package/dist/views/system/user/components/UserGrantMenuSheet2.vue.js +216 -0
- package/dist/views/system/user/components/UserGrantMenuSheet2.vue.js.map +1 -0
- package/dist/views/system/user/components/UserGrantMenuTable.vue.d.ts +13 -0
- package/dist/views/system/user/components/UserGrantMenuTable.vue.js +8 -0
- package/dist/views/system/user/components/UserGrantMenuTable.vue.js.map +1 -0
- package/dist/views/system/user/components/UserGrantMenuTable2.vue.js +186 -0
- package/dist/views/system/user/components/UserGrantMenuTable2.vue.js.map +1 -0
- package/dist/views/system/user/components/UserGrantNodeRow.vue.d.ts +31 -0
- package/dist/views/system/user/components/UserGrantNodeRow.vue.js +8 -0
- package/dist/views/system/user/components/UserGrantNodeRow.vue.js.map +1 -0
- package/dist/views/system/user/components/UserGrantNodeRow2.vue.js +171 -0
- package/dist/views/system/user/components/UserGrantNodeRow2.vue.js.map +1 -0
- package/dist/views/system/user/components/UserGrantOverviewDrawer.vue.d.ts +21 -0
- package/dist/views/system/user/components/UserGrantOverviewDrawer.vue.js +5 -0
- package/dist/views/system/user/components/UserGrantOverviewDrawer.vue.js.map +1 -0
- package/dist/views/system/user/components/UserGrantOverviewDrawer2.vue.js +178 -0
- package/dist/views/system/user/components/UserGrantOverviewDrawer2.vue.js.map +1 -0
- package/dist/views/system/user/components/userGrantState.d.ts +64 -0
- package/dist/views/system/user/components/userGrantState.js +117 -0
- package/dist/views/system/user/components/userGrantState.js.map +1 -0
- package/dist/views/system/user/index.vue.js +2 -2
- package/dist/views/system/user/index2.vue.js +369 -295
- package/dist/views/system/user/index2.vue.js.map +1 -1
- package/package.json +3 -3
package/dist/locales/en-US.d.ts
CHANGED
|
@@ -42,6 +42,9 @@ declare const _default: {
|
|
|
42
42
|
notFound: {
|
|
43
43
|
desc: string;
|
|
44
44
|
back: string;
|
|
45
|
+
currentApp: string;
|
|
46
|
+
otherApp: string;
|
|
47
|
+
switchAndOpen: string;
|
|
45
48
|
};
|
|
46
49
|
errorBoundary: {
|
|
47
50
|
title: string;
|
|
@@ -61,11 +64,19 @@ declare const _default: {
|
|
|
61
64
|
};
|
|
62
65
|
userPicker: {
|
|
63
66
|
title: string;
|
|
67
|
+
org: string;
|
|
64
68
|
available: string;
|
|
65
69
|
selected: string;
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
70
|
+
searchName: string;
|
|
71
|
+
searchAccount: string;
|
|
72
|
+
selectPage: string;
|
|
73
|
+
unselectPage: string;
|
|
74
|
+
total: string;
|
|
75
|
+
existing: string;
|
|
76
|
+
remove: string;
|
|
77
|
+
emptySelected: string;
|
|
78
|
+
prevPage: string;
|
|
79
|
+
nextPage: string;
|
|
69
80
|
clear: string;
|
|
70
81
|
};
|
|
71
82
|
app: {
|
|
@@ -241,6 +252,9 @@ declare const _default: {
|
|
|
241
252
|
deleteConfirm: string;
|
|
242
253
|
disableConfirm: string;
|
|
243
254
|
builtinNoDisable: string;
|
|
255
|
+
delegatable: string;
|
|
256
|
+
delegatableHint: string;
|
|
257
|
+
builtinNotDelegatable: string;
|
|
244
258
|
saved: string;
|
|
245
259
|
deleted: string;
|
|
246
260
|
};
|
|
@@ -355,6 +369,7 @@ declare const _default: {
|
|
|
355
369
|
userToggle: string;
|
|
356
370
|
userImport: string;
|
|
357
371
|
userExport: string;
|
|
372
|
+
userGrantMenus: string;
|
|
358
373
|
roleQuery: string;
|
|
359
374
|
roleCreate: string;
|
|
360
375
|
roleUpdate: string;
|
|
@@ -503,6 +518,9 @@ declare const _default: {
|
|
|
503
518
|
org: string;
|
|
504
519
|
allOrgs: string;
|
|
505
520
|
orgFilter: string;
|
|
521
|
+
collapseToFirstLevel: string;
|
|
522
|
+
hideOrgPanel: string;
|
|
523
|
+
showOrgPanel: string;
|
|
506
524
|
orgPlaceholder: string;
|
|
507
525
|
position: string;
|
|
508
526
|
positionPlaceholder: string;
|
|
@@ -551,6 +569,47 @@ declare const _default: {
|
|
|
551
569
|
totpInviteToken: string;
|
|
552
570
|
totpInviteExpires: string;
|
|
553
571
|
};
|
|
572
|
+
userGrant: {
|
|
573
|
+
action: string;
|
|
574
|
+
title: string;
|
|
575
|
+
tabGrant: string;
|
|
576
|
+
tabEffective: string;
|
|
577
|
+
hint: string;
|
|
578
|
+
noRoles: string;
|
|
579
|
+
readonly: string;
|
|
580
|
+
readonlyNoReason: string;
|
|
581
|
+
follow: string;
|
|
582
|
+
allow: string;
|
|
583
|
+
deny: string;
|
|
584
|
+
effective: string;
|
|
585
|
+
ineffective: string;
|
|
586
|
+
expired: string;
|
|
587
|
+
deniedByAncestor: string;
|
|
588
|
+
notGrantable: string;
|
|
589
|
+
expireLongTerm: string;
|
|
590
|
+
remark: string;
|
|
591
|
+
leaked: string;
|
|
592
|
+
leakedFrom: string;
|
|
593
|
+
summary: string;
|
|
594
|
+
unsaved: string;
|
|
595
|
+
invalidExpiry: string;
|
|
596
|
+
saved: string;
|
|
597
|
+
overview: string;
|
|
598
|
+
colUser: string;
|
|
599
|
+
colMenu: string;
|
|
600
|
+
colState: string;
|
|
601
|
+
colSource: string;
|
|
602
|
+
colEffect: string;
|
|
603
|
+
colStatus: string;
|
|
604
|
+
colExpire: string;
|
|
605
|
+
colGrantor: string;
|
|
606
|
+
colGrantTime: string;
|
|
607
|
+
colRemark: string;
|
|
608
|
+
adjust: string;
|
|
609
|
+
statusActive: string;
|
|
610
|
+
statusExpiring: string;
|
|
611
|
+
statusExpired: string;
|
|
612
|
+
};
|
|
554
613
|
mfa: {
|
|
555
614
|
bindTitle: string;
|
|
556
615
|
recoveryTitle: string;
|
|
@@ -1247,6 +1306,7 @@ declare const _default: {
|
|
|
1247
1306
|
grantSummary: string;
|
|
1248
1307
|
grantSummarySplit: string;
|
|
1249
1308
|
grantUnsaved: string;
|
|
1309
|
+
systemMenusBuiltinOnly: string;
|
|
1250
1310
|
dataScope: string;
|
|
1251
1311
|
scopeType: string;
|
|
1252
1312
|
customOrgs: string;
|
|
@@ -1747,6 +1807,9 @@ declare const _default: {
|
|
|
1747
1807
|
denied: string;
|
|
1748
1808
|
demoReadOnly: string;
|
|
1749
1809
|
superAdminRequired: string;
|
|
1810
|
+
menuNotGrantable: string;
|
|
1811
|
+
targetIsDelegatedAdmin: string;
|
|
1812
|
+
delegatedGrantExpiryInvalid: string;
|
|
1750
1813
|
};
|
|
1751
1814
|
user: {
|
|
1752
1815
|
notFound: string;
|
|
@@ -1757,11 +1820,13 @@ declare const _default: {
|
|
|
1757
1820
|
outOfDataScope: string;
|
|
1758
1821
|
avatarUrlInvalid: string;
|
|
1759
1822
|
cannotOperateSelf: string;
|
|
1823
|
+
menuGrantInvalid: string;
|
|
1760
1824
|
};
|
|
1761
1825
|
role: {
|
|
1762
1826
|
notFound: string;
|
|
1763
1827
|
codeExists: string;
|
|
1764
1828
|
notDelegatable: string;
|
|
1829
|
+
systemMenuNotAssignable: string;
|
|
1765
1830
|
};
|
|
1766
1831
|
org: {
|
|
1767
1832
|
notFound: string;
|
package/dist/locales/en-US.js
CHANGED
|
@@ -41,7 +41,10 @@ const e = {
|
|
|
41
41
|
},
|
|
42
42
|
notFound: {
|
|
43
43
|
desc: "Page not found",
|
|
44
|
-
back: "Back to workbench"
|
|
44
|
+
back: "Back to workbench",
|
|
45
|
+
currentApp: "Current app: {app}",
|
|
46
|
+
otherApp: 'This page belongs to the "{app}" app, not the one you are in',
|
|
47
|
+
switchAndOpen: 'Switch to "{app}" and open it'
|
|
45
48
|
},
|
|
46
49
|
// Content-area render fallback (components/ErrorBoundary)
|
|
47
50
|
errorBoundary: {
|
|
@@ -63,11 +66,19 @@ const e = {
|
|
|
63
66
|
},
|
|
64
67
|
userPicker: {
|
|
65
68
|
title: "Select users",
|
|
69
|
+
org: "Organizations",
|
|
66
70
|
available: "Available",
|
|
67
71
|
selected: "Selected",
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
72
|
+
searchName: "Search by name",
|
|
73
|
+
searchAccount: "Search by account",
|
|
74
|
+
selectPage: "Select page",
|
|
75
|
+
unselectPage: "Deselect page",
|
|
76
|
+
total: "{n} users",
|
|
77
|
+
existing: "Existing",
|
|
78
|
+
remove: "Remove",
|
|
79
|
+
emptySelected: "No users selected",
|
|
80
|
+
prevPage: "Previous page",
|
|
81
|
+
nextPage: "Next page",
|
|
71
82
|
clear: "Clear"
|
|
72
83
|
},
|
|
73
84
|
app: {
|
|
@@ -243,6 +254,9 @@ const e = {
|
|
|
243
254
|
deleteConfirm: 'Delete app "{title}"?',
|
|
244
255
|
disableConfirm: 'Disable app "{title}"? It will disappear from the portal',
|
|
245
256
|
builtinNoDisable: "The built-in app cannot be disabled",
|
|
257
|
+
delegatable: "Delegatable",
|
|
258
|
+
delegatableHint: "When on, administrators can grant or deny this app's menus to individual users (time-limited)",
|
|
259
|
+
builtinNotDelegatable: "The built-in app is never delegatable",
|
|
246
260
|
saved: "Saved",
|
|
247
261
|
deleted: "Deleted"
|
|
248
262
|
},
|
|
@@ -358,6 +372,7 @@ const e = {
|
|
|
358
372
|
userToggle: "User - Enable / Disable",
|
|
359
373
|
userImport: "User - Import",
|
|
360
374
|
userExport: "User - Export",
|
|
375
|
+
userGrantMenus: "User - Grant Menus",
|
|
361
376
|
roleQuery: "Role - Query",
|
|
362
377
|
roleCreate: "Role - Create",
|
|
363
378
|
roleUpdate: "Role - Update",
|
|
@@ -510,8 +525,12 @@ const e = {
|
|
|
510
525
|
passwordHint: "Leave blank to auto-generate one (shown once after creation)",
|
|
511
526
|
org: "Org",
|
|
512
527
|
allOrgs: "All",
|
|
513
|
-
//
|
|
528
|
+
// Group name of the org panel; in a narrow content area the tree moves into a drawer, where it is also the toolbar button + drawer title
|
|
514
529
|
orgFilter: "Organization",
|
|
530
|
+
// Panel header button tips: once fully expanded it becomes "collapse to first level"; "hide" slides the whole panel left, after which the toolbar button's tip is "show"
|
|
531
|
+
collapseToFirstLevel: "Collapse to first level",
|
|
532
|
+
hideOrgPanel: "Hide organization panel",
|
|
533
|
+
showOrgPanel: "Show organization panel",
|
|
515
534
|
orgPlaceholder: "Select org (optional)",
|
|
516
535
|
position: "Position",
|
|
517
536
|
positionPlaceholder: "Select position (optional)",
|
|
@@ -560,6 +579,47 @@ const e = {
|
|
|
560
579
|
totpInviteToken: "Invite token",
|
|
561
580
|
totpInviteExpires: "Expires at"
|
|
562
581
|
},
|
|
582
|
+
userGrant: {
|
|
583
|
+
action: "Grant menus",
|
|
584
|
+
title: "Grant menus · {name}",
|
|
585
|
+
tabGrant: "Individual grants",
|
|
586
|
+
tabEffective: "Effective access",
|
|
587
|
+
hint: "Grant through roles as usual and keep only exceptions here. Allow covers that one node; Deny also revokes everything below it and beats any allow.",
|
|
588
|
+
noRoles: 'This user has no role, so the data scope is "self only": granted pages open but show only data the user created.',
|
|
589
|
+
readonly: "View only: {reason}",
|
|
590
|
+
readonlyNoReason: "View only",
|
|
591
|
+
follow: "Follow roles",
|
|
592
|
+
allow: "Allow",
|
|
593
|
+
deny: "Deny",
|
|
594
|
+
effective: "Effective",
|
|
595
|
+
ineffective: "Not effective",
|
|
596
|
+
expired: "Expired",
|
|
597
|
+
deniedByAncestor: "Denied by parent",
|
|
598
|
+
notGrantable: "Only a super admin can grant menus in this module",
|
|
599
|
+
expireLongTerm: "No expiry",
|
|
600
|
+
remark: "Reason (optional)",
|
|
601
|
+
leaked: "These APIs stay callable:",
|
|
602
|
+
leakedFrom: "{code} (from {from})",
|
|
603
|
+
summary: "Allow {allow} · Deny {deny}",
|
|
604
|
+
unsaved: "Unsaved changes",
|
|
605
|
+
invalidExpiry: "{count} record(s) have a missing or out-of-range expiry date",
|
|
606
|
+
saved: "Grants saved",
|
|
607
|
+
overview: "Individual grants",
|
|
608
|
+
colUser: "User",
|
|
609
|
+
colMenu: "Menu",
|
|
610
|
+
colState: "State",
|
|
611
|
+
colSource: "Source",
|
|
612
|
+
colEffect: "Effect",
|
|
613
|
+
colStatus: "Validity",
|
|
614
|
+
colExpire: "Expires",
|
|
615
|
+
colGrantor: "Granted by",
|
|
616
|
+
colGrantTime: "Granted at",
|
|
617
|
+
colRemark: "Reason",
|
|
618
|
+
adjust: "Adjust",
|
|
619
|
+
statusActive: "Active",
|
|
620
|
+
statusExpiring: "Expiring in 7 days",
|
|
621
|
+
statusExpired: "Expired"
|
|
622
|
+
},
|
|
563
623
|
mfa: {
|
|
564
624
|
bindTitle: "Set up authenticator",
|
|
565
625
|
recoveryTitle: "Use recovery code",
|
|
@@ -1250,6 +1310,7 @@ const e = {
|
|
|
1250
1310
|
grantSummary: "Granted {on} / {total}",
|
|
1251
1311
|
grantSummarySplit: "{pages} pages · {buttons} buttons",
|
|
1252
1312
|
grantUnsaved: "Unsaved changes",
|
|
1313
|
+
systemMenusBuiltinOnly: "Apart from User Management and Role Management, menus that ship with the system can only be granted to built-in roles and are hidden here",
|
|
1253
1314
|
dataScope: "Data scope",
|
|
1254
1315
|
scopeType: "Scope type",
|
|
1255
1316
|
customOrgs: "Custom orgs",
|
|
@@ -1747,7 +1808,10 @@ const e = {
|
|
|
1747
1808
|
perm: {
|
|
1748
1809
|
denied: "Access denied",
|
|
1749
1810
|
demoReadOnly: "Demo environment is read-only",
|
|
1750
|
-
superAdminRequired: "This action requires super admin privileges"
|
|
1811
|
+
superAdminRequired: "This action requires super admin privileges",
|
|
1812
|
+
menuNotGrantable: "This menu's module does not allow delegated grants",
|
|
1813
|
+
targetIsDelegatedAdmin: "The user is an administrator; only a super admin can grant them menus individually",
|
|
1814
|
+
delegatedGrantExpiryInvalid: "An allow grant needs an expiry date at most {maxDays} days away"
|
|
1751
1815
|
},
|
|
1752
1816
|
user: {
|
|
1753
1817
|
notFound: "User not found",
|
|
@@ -1757,12 +1821,14 @@ const e = {
|
|
|
1757
1821
|
passwordReused: "New password must differ from your current and recently used passwords",
|
|
1758
1822
|
outOfDataScope: "Target user is outside your data scope",
|
|
1759
1823
|
avatarUrlInvalid: "Avatar URL is not allowed",
|
|
1760
|
-
cannotOperateSelf: "You cannot perform this action on yourself"
|
|
1824
|
+
cannotOperateSelf: "You cannot perform this action on yourself",
|
|
1825
|
+
menuGrantInvalid: "Invalid grant changes: each menu at most once, and the expiry must be in the future"
|
|
1761
1826
|
},
|
|
1762
1827
|
role: {
|
|
1763
1828
|
notFound: "Role not found",
|
|
1764
1829
|
codeExists: "Role code already exists",
|
|
1765
|
-
notDelegatable: "Role is not delegatable"
|
|
1830
|
+
notDelegatable: "Role is not delegatable",
|
|
1831
|
+
systemMenuNotAssignable: "Apart from User Management and Role Management, menus that ship with the system can only be granted to built-in roles"
|
|
1766
1832
|
},
|
|
1767
1833
|
org: {
|
|
1768
1834
|
notFound: "Org not found",
|