w-web-perm 1.0.25 → 1.0.26
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/css/{app.f22995d1.css → app.d0e43dcc.css} +1 -1
- package/dist/index.tmp +9 -1
- package/dist/js/app-legacy.b0850281.js +2 -0
- package/dist/js/app-legacy.b0850281.js.map +1 -0
- package/dist/js/app.db01fef5.js +2 -0
- package/dist/js/app.db01fef5.js.map +1 -0
- package/dist/js/chunk-vendors-legacy.0432e7bc.js +13 -0
- package/dist/js/chunk-vendors-legacy.0432e7bc.js.map +1 -0
- package/dist/js/chunk-vendors.0432e7bc.js +13 -0
- package/dist/js/chunk-vendors.0432e7bc.js.map +1 -0
- package/dist/w-web-perm.umd.js +2 -2
- package/dist/w-web-perm.umd.js.map +1 -1
- package/docs/WWebPerm.html +1 -1
- package/docs/WWebPerm.mjs.html +30 -2
- package/docs/index.html +1 -1
- package/package.json +5 -5
- package/public/index.html +8 -0
- package/server/WWebPerm.mjs +29 -1
- package/src/App.vue +6 -1
- package/src/components/Layout.vue +0 -11
- package/src/components/LayoutContent.vue +22 -22
- package/src/components/LayoutContentGrups.vue +245 -65
- package/src/components/LayoutContentPemis.vue +245 -68
- package/src/components/LayoutContentTargets.vue +225 -55
- package/src/components/LayoutContentUsers.vue +250 -68
- package/src/components/VeCgrups.vue +27 -34
- package/src/components/VeCpemis.vue +27 -34
- package/src/components/VeCrules.vue +25 -31
- package/src/components/VeGrupBlngUsers.vue +30 -18
- package/src/components/VePemiBlngGrups.vue +30 -18
- package/src/schema/tables/pemis.mjs +1 -1
- package/src/store/mutations.mjs +64 -9
- package/srv.mjs +9 -1
- package/tableTags-web-perm.json +1 -1
- package/dist/js/app-legacy.67f2c0dc.js +0 -2
- package/dist/js/app-legacy.67f2c0dc.js.map +0 -1
- package/dist/js/app.67f2c0dc.js +0 -2
- package/dist/js/app.67f2c0dc.js.map +0 -1
- package/dist/js/chunk-vendors-legacy.d89048a8.js +0 -13
- package/dist/js/chunk-vendors-legacy.d89048a8.js.map +0 -1
- package/dist/js/chunk-vendors.d89048a8.js +0 -13
- package/dist/js/chunk-vendors.d89048a8.js.map +0 -1
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<WDialog
|
|
3
3
|
:show.sync="bShow"
|
|
4
|
-
:title="
|
|
4
|
+
:title="isEditable?$t('grupBlngEditUsers'):$t('grupBlngEditUsersForDisplay')"
|
|
5
5
|
:icon="mdiFormatListCheckbox"
|
|
6
6
|
:minWidth="800"
|
|
7
7
|
:maxWidth="800"
|
|
8
8
|
:fullscreen="fullscreen"
|
|
9
9
|
:contentBackgroundColor="'#fff'"
|
|
10
10
|
:headerBtns="useHeaderBtns"
|
|
11
|
-
:hasSaveBtn="isModified"
|
|
11
|
+
:hasSaveBtn="isEditable && isModified"
|
|
12
12
|
:save-btn-tooltip="$t('save')"
|
|
13
13
|
:close-btn-tooltip="$t('close')"
|
|
14
14
|
@click-btns="clickBtns"
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
<div>
|
|
21
21
|
|
|
22
22
|
<div
|
|
23
|
-
style="
|
|
23
|
+
style="_border-bottom:1px solid #ddd; background:#fff;"
|
|
24
24
|
v-domresize
|
|
25
25
|
@domresize="resizeHead"
|
|
26
26
|
>
|
|
@@ -39,7 +39,10 @@
|
|
|
39
39
|
</div>
|
|
40
40
|
|
|
41
41
|
<!-- 功能區 -->
|
|
42
|
-
<div
|
|
42
|
+
<div
|
|
43
|
+
style="padding:5px; background:#fff; display:flex; align-items:center;"
|
|
44
|
+
v-if="isEditable"
|
|
45
|
+
>
|
|
43
46
|
|
|
44
47
|
<template>
|
|
45
48
|
|
|
@@ -57,7 +60,7 @@
|
|
|
57
60
|
@click="showVeGrupBlngUsersToggleItemsEnableAllYes"
|
|
58
61
|
></WButtonCircle>
|
|
59
62
|
|
|
60
|
-
<div style="padding-left:
|
|
63
|
+
<div style="padding-left:4px;"></div>
|
|
61
64
|
|
|
62
65
|
</template>
|
|
63
66
|
|
|
@@ -77,7 +80,7 @@
|
|
|
77
80
|
@click="showVeGrupBlngUsersToggleItemsEnableAllNo"
|
|
78
81
|
></WButtonCircle>
|
|
79
82
|
|
|
80
|
-
<div style="padding-left:
|
|
83
|
+
<div style="padding-left:4px;"></div>
|
|
81
84
|
|
|
82
85
|
</template>
|
|
83
86
|
|
|
@@ -97,7 +100,7 @@
|
|
|
97
100
|
@click="showVeGrupBlngUsersToggleItemsEnableAllInv"
|
|
98
101
|
></WButtonCircle>
|
|
99
102
|
|
|
100
|
-
<div style="padding-left:
|
|
103
|
+
<div style="padding-left:4px;"></div>
|
|
101
104
|
|
|
102
105
|
</template>
|
|
103
106
|
|
|
@@ -117,7 +120,7 @@
|
|
|
117
120
|
@click="deleteItemsCheck"
|
|
118
121
|
></WButtonCircle>
|
|
119
122
|
|
|
120
|
-
<div style="padding-left:
|
|
123
|
+
<div style="padding-left:4px;"></div>
|
|
121
124
|
|
|
122
125
|
</template>
|
|
123
126
|
|
|
@@ -197,6 +200,7 @@ export default {
|
|
|
197
200
|
panelHeight: 100,
|
|
198
201
|
headHeight: 100,
|
|
199
202
|
|
|
203
|
+
isEditable: false,
|
|
200
204
|
isModified: false,
|
|
201
205
|
|
|
202
206
|
grup: null,
|
|
@@ -373,13 +377,14 @@ export default {
|
|
|
373
377
|
keys: ks,
|
|
374
378
|
kpHead,
|
|
375
379
|
autoFitColumn: true,
|
|
380
|
+
defCellEditable: false, //vo.isEditable,
|
|
376
381
|
defHeadFilter: true,
|
|
377
382
|
defCellAlignH: 'left',
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
+
kpCellEditable: {
|
|
384
|
+
'name': vo.isEditable,
|
|
385
|
+
'mode': false,
|
|
386
|
+
'enable': false,
|
|
387
|
+
},
|
|
383
388
|
kpHeadWidth: {
|
|
384
389
|
'mode': 100,
|
|
385
390
|
'enable': 100,
|
|
@@ -446,7 +451,7 @@ export default {
|
|
|
446
451
|
// console.log('mode', mode, k, r)
|
|
447
452
|
|
|
448
453
|
let t = `
|
|
449
|
-
<select onchange="$vo.$dg.showVeGrupBlngUsersToggleItemModeByName('${name}',this.value)">
|
|
454
|
+
<select onchange="$vo.$dg.showVeGrupBlngUsersToggleItemModeByName('${name}',this.value)" ${vo.isEditable ? '' : 'disabled'}>
|
|
450
455
|
<option value="OR" ${mode === 'OR' ? 'selected' : ''}>OR</option>
|
|
451
456
|
<option value="AND" ${mode === 'AND' ? 'selected' : ''}>AND</option>
|
|
452
457
|
</select>
|
|
@@ -462,7 +467,7 @@ export default {
|
|
|
462
467
|
// console.log('name', name, k, r)
|
|
463
468
|
|
|
464
469
|
let t = `
|
|
465
|
-
<input type="checkbox" ${v === 'y' ? 'checked' : ''} onclick="$vo.$dg.showVeGrupBlngUsersToggleItemEnableByName('${name}')" />
|
|
470
|
+
<input type="checkbox" ${v === 'y' ? 'checked' : ''} onclick="$vo.$dg.showVeGrupBlngUsersToggleItemEnableByName('${name}')" ${vo.isEditable ? '' : 'disabled'} />
|
|
466
471
|
`
|
|
467
472
|
|
|
468
473
|
return t
|
|
@@ -1118,8 +1123,8 @@ export default {
|
|
|
1118
1123
|
|
|
1119
1124
|
},
|
|
1120
1125
|
|
|
1121
|
-
show: function (
|
|
1122
|
-
// console.log('methods show',
|
|
1126
|
+
show: function (msg) {
|
|
1127
|
+
// console.log('methods show', msg)
|
|
1123
1128
|
|
|
1124
1129
|
let vo = this
|
|
1125
1130
|
|
|
@@ -1129,15 +1134,22 @@ export default {
|
|
|
1129
1134
|
//default
|
|
1130
1135
|
vo.isModified = false
|
|
1131
1136
|
|
|
1137
|
+
//isEditable, grup
|
|
1138
|
+
let isEditable = get(msg, 'isEditable', false)
|
|
1139
|
+
let grup = get(msg, 'grup', {})
|
|
1140
|
+
|
|
1132
1141
|
//grup
|
|
1133
1142
|
grup = cloneDeep(grup)
|
|
1134
|
-
vo.grup = grup
|
|
1135
1143
|
|
|
1136
1144
|
//users
|
|
1137
1145
|
let users = cloneDeep(vo.users)
|
|
1138
1146
|
|
|
1139
1147
|
//items
|
|
1140
1148
|
let items = vo.genItems(grup, users)
|
|
1149
|
+
|
|
1150
|
+
//save
|
|
1151
|
+
vo.isEditable = isEditable
|
|
1152
|
+
vo.grup = grup
|
|
1141
1153
|
vo.items = items
|
|
1142
1154
|
|
|
1143
1155
|
//genOpt
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<WDialog
|
|
3
3
|
:show.sync="bShow"
|
|
4
|
-
:title="
|
|
4
|
+
:title="isEditable?$t('pemiBlngEditGrups'):$t('pemiBlngEditGrupsForDisplay')"
|
|
5
5
|
:icon="mdiFormatListCheckbox"
|
|
6
6
|
:minWidth="800"
|
|
7
7
|
:maxWidth="800"
|
|
8
8
|
:fullscreen="fullscreen"
|
|
9
9
|
:contentBackgroundColor="'#fff'"
|
|
10
10
|
:headerBtns="useHeaderBtns"
|
|
11
|
-
:hasSaveBtn="isModified"
|
|
11
|
+
:hasSaveBtn="isEditable && isModified"
|
|
12
12
|
:save-btn-tooltip="$t('save')"
|
|
13
13
|
:close-btn-tooltip="$t('close')"
|
|
14
14
|
@click-btns="clickBtns"
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
<div>
|
|
21
21
|
|
|
22
22
|
<div
|
|
23
|
-
style="
|
|
23
|
+
style="_border-bottom:1px solid #ddd; background:#fff;"
|
|
24
24
|
v-domresize
|
|
25
25
|
@domresize="resizeHead"
|
|
26
26
|
>
|
|
@@ -39,7 +39,10 @@
|
|
|
39
39
|
</div>
|
|
40
40
|
|
|
41
41
|
<!-- 功能區 -->
|
|
42
|
-
<div
|
|
42
|
+
<div
|
|
43
|
+
style="padding:5px; background:#fff; display:flex; align-items:center;"
|
|
44
|
+
v-if="isEditable"
|
|
45
|
+
>
|
|
43
46
|
|
|
44
47
|
<template>
|
|
45
48
|
|
|
@@ -57,7 +60,7 @@
|
|
|
57
60
|
@click="showVePemiBlngGrupsToggleItemsEnableAllYes"
|
|
58
61
|
></WButtonCircle>
|
|
59
62
|
|
|
60
|
-
<div style="padding-left:
|
|
63
|
+
<div style="padding-left:4px;"></div>
|
|
61
64
|
|
|
62
65
|
</template>
|
|
63
66
|
|
|
@@ -77,7 +80,7 @@
|
|
|
77
80
|
@click="showVePemiBlngGrupsToggleItemsEnableAllNo"
|
|
78
81
|
></WButtonCircle>
|
|
79
82
|
|
|
80
|
-
<div style="padding-left:
|
|
83
|
+
<div style="padding-left:4px;"></div>
|
|
81
84
|
|
|
82
85
|
</template>
|
|
83
86
|
|
|
@@ -97,7 +100,7 @@
|
|
|
97
100
|
@click="showVePemiBlngGrupsToggleItemsEnableAllInv"
|
|
98
101
|
></WButtonCircle>
|
|
99
102
|
|
|
100
|
-
<div style="padding-left:
|
|
103
|
+
<div style="padding-left:4px;"></div>
|
|
101
104
|
|
|
102
105
|
</template>
|
|
103
106
|
|
|
@@ -117,7 +120,7 @@
|
|
|
117
120
|
@click="deleteItemsCheck"
|
|
118
121
|
></WButtonCircle>
|
|
119
122
|
|
|
120
|
-
<div style="padding-left:
|
|
123
|
+
<div style="padding-left:4px;"></div>
|
|
121
124
|
|
|
122
125
|
</template>
|
|
123
126
|
|
|
@@ -197,6 +200,7 @@ export default {
|
|
|
197
200
|
panelHeight: 100,
|
|
198
201
|
headHeight: 100,
|
|
199
202
|
|
|
203
|
+
isEditable: false,
|
|
200
204
|
isModified: false,
|
|
201
205
|
|
|
202
206
|
pemi: null,
|
|
@@ -373,13 +377,14 @@ export default {
|
|
|
373
377
|
keys: ks,
|
|
374
378
|
kpHead,
|
|
375
379
|
autoFitColumn: true,
|
|
380
|
+
defCellEditable: false, //vo.isEditable,
|
|
376
381
|
defHeadFilter: true,
|
|
377
382
|
defCellAlignH: 'left',
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
+
kpCellEditable: {
|
|
384
|
+
'name': vo.isEditable,
|
|
385
|
+
'mode': false,
|
|
386
|
+
'enable': false,
|
|
387
|
+
},
|
|
383
388
|
kpHeadWidth: {
|
|
384
389
|
'mode': 100,
|
|
385
390
|
'enable': 100,
|
|
@@ -446,7 +451,7 @@ export default {
|
|
|
446
451
|
// console.log('mode', mode, k, r)
|
|
447
452
|
|
|
448
453
|
let t = `
|
|
449
|
-
<select onchange="$vo.$dg.showVePemiBlngGrupsToggleItemModeByName('${name}',this.value)">
|
|
454
|
+
<select onchange="$vo.$dg.showVePemiBlngGrupsToggleItemModeByName('${name}',this.value)" ${vo.isEditable ? '' : 'disabled'}>
|
|
450
455
|
<option value="OR" ${mode === 'OR' ? 'selected' : ''}>OR</option>
|
|
451
456
|
<option value="AND" ${mode === 'AND' ? 'selected' : ''}>AND</option>
|
|
452
457
|
</select>
|
|
@@ -462,7 +467,7 @@ export default {
|
|
|
462
467
|
// console.log('name', name, k, r)
|
|
463
468
|
|
|
464
469
|
let t = `
|
|
465
|
-
<input type="checkbox" ${v === 'y' ? 'checked' : ''} onclick="$vo.$dg.showVePemiBlngGrupsToggleItemEnableByName('${name}')" />
|
|
470
|
+
<input type="checkbox" ${v === 'y' ? 'checked' : ''} onclick="$vo.$dg.showVePemiBlngGrupsToggleItemEnableByName('${name}')" ${vo.isEditable ? '' : 'disabled'} />
|
|
466
471
|
`
|
|
467
472
|
|
|
468
473
|
return t
|
|
@@ -1118,8 +1123,8 @@ export default {
|
|
|
1118
1123
|
|
|
1119
1124
|
},
|
|
1120
1125
|
|
|
1121
|
-
show: function (
|
|
1122
|
-
// console.log('methods show',
|
|
1126
|
+
show: function (msg) {
|
|
1127
|
+
// console.log('methods show', msg)
|
|
1123
1128
|
|
|
1124
1129
|
let vo = this
|
|
1125
1130
|
|
|
@@ -1129,15 +1134,22 @@ export default {
|
|
|
1129
1134
|
//default
|
|
1130
1135
|
vo.isModified = false
|
|
1131
1136
|
|
|
1137
|
+
//isEditable, pemi
|
|
1138
|
+
let isEditable = get(msg, 'isEditable', false)
|
|
1139
|
+
let pemi = get(msg, 'pemi', {})
|
|
1140
|
+
|
|
1132
1141
|
//grup
|
|
1133
1142
|
pemi = cloneDeep(pemi)
|
|
1134
|
-
vo.pemi = pemi
|
|
1135
1143
|
|
|
1136
1144
|
//grups
|
|
1137
1145
|
let grups = cloneDeep(vo.grups)
|
|
1138
1146
|
|
|
1139
1147
|
//items
|
|
1140
1148
|
let items = vo.genItems(pemi, grups)
|
|
1149
|
+
|
|
1150
|
+
//save
|
|
1151
|
+
vo.isEditable = isEditable
|
|
1152
|
+
vo.pemi = pemi
|
|
1141
1153
|
vo.items = items
|
|
1142
1154
|
|
|
1143
1155
|
//genOpt
|
package/src/store/mutations.mjs
CHANGED
|
@@ -163,6 +163,15 @@ let state = {
|
|
|
163
163
|
// eng: `No description`,
|
|
164
164
|
// cht: `無說明`,
|
|
165
165
|
// },
|
|
166
|
+
modeEdit: {
|
|
167
|
+
eng: `Edit mode`,
|
|
168
|
+
cht: `編輯模式`,
|
|
169
|
+
},
|
|
170
|
+
showTabCols: {
|
|
171
|
+
eng: `Show columns`,
|
|
172
|
+
cht: `顯示欄位`,
|
|
173
|
+
},
|
|
174
|
+
|
|
166
175
|
belongUsers: {
|
|
167
176
|
eng: `Use users`,
|
|
168
177
|
cht: `管控所屬使用者`,
|
|
@@ -183,6 +192,7 @@ let state = {
|
|
|
183
192
|
eng: `Use permissions`,
|
|
184
193
|
cht: `所屬權限名稱`,
|
|
185
194
|
},
|
|
195
|
+
|
|
186
196
|
isAdmin: {
|
|
187
197
|
eng: `Administrator`,
|
|
188
198
|
cht: `是否為系統管理員`,
|
|
@@ -201,10 +211,23 @@ let state = {
|
|
|
201
211
|
cht: `Email出現錯誤待修復`,
|
|
202
212
|
},
|
|
203
213
|
|
|
214
|
+
menuTreeShow: {
|
|
215
|
+
eng: `Show menu`,
|
|
216
|
+
cht: `顯示選單`,
|
|
217
|
+
},
|
|
218
|
+
menuTreeHide: {
|
|
219
|
+
eng: `Hide menu`,
|
|
220
|
+
cht: `隱藏選單`,
|
|
221
|
+
},
|
|
222
|
+
|
|
204
223
|
managementTargets: {
|
|
205
224
|
eng: `Targets`,
|
|
206
225
|
cht: `管理對象`,
|
|
207
226
|
},
|
|
227
|
+
managementTargetsMsg: {
|
|
228
|
+
eng: `Targets generally refer to entities such as pages, data, etc., and can also include features or services.`,
|
|
229
|
+
cht: `對象泛指實體的頁面、數據等,亦可為的功能或服務。`,
|
|
230
|
+
},
|
|
208
231
|
targetId: {
|
|
209
232
|
eng: `Target`,
|
|
210
233
|
cht: `對象名稱`,
|
|
@@ -266,6 +289,10 @@ let state = {
|
|
|
266
289
|
eng: `Permissions`,
|
|
267
290
|
cht: `管理權限`,
|
|
268
291
|
},
|
|
292
|
+
managementPemisMsg: {
|
|
293
|
+
eng: `Permissions are primarily used to set rules for enabling or disabling various objects.`,
|
|
294
|
+
cht: `權限主要為用來設定各種對象之使用或禁用規則。`,
|
|
295
|
+
},
|
|
269
296
|
pemiName: {
|
|
270
297
|
eng: `Name of permission`,
|
|
271
298
|
cht: `權限名稱`,
|
|
@@ -308,7 +335,7 @@ let state = {
|
|
|
308
335
|
},
|
|
309
336
|
pemiCrules: {
|
|
310
337
|
eng: `Rules of permission`,
|
|
311
|
-
cht:
|
|
338
|
+
cht: `管控對象`,
|
|
312
339
|
},
|
|
313
340
|
pemiEditBlngGrupsNoPemiId: {
|
|
314
341
|
eng: `Can not find the id of permission`,
|
|
@@ -320,11 +347,15 @@ let state = {
|
|
|
320
347
|
},
|
|
321
348
|
pemiEditCrules: {
|
|
322
349
|
eng: `Edit rules of permission`,
|
|
323
|
-
cht:
|
|
350
|
+
cht: `編輯使用對象`,
|
|
351
|
+
},
|
|
352
|
+
pemiEditCrulesForDisplay: {
|
|
353
|
+
eng: `Rules of permission`,
|
|
354
|
+
cht: `展示使用對象`,
|
|
324
355
|
},
|
|
325
356
|
// pemiEditCrulesSimple: {
|
|
326
357
|
// eng: `Edit rules`,
|
|
327
|
-
// cht:
|
|
358
|
+
// cht: `編輯對象`,
|
|
328
359
|
// },
|
|
329
360
|
pemiEditCrulesNoPemiId: {
|
|
330
361
|
eng: `Can not find the id of permission`,
|
|
@@ -336,11 +367,11 @@ let state = {
|
|
|
336
367
|
},
|
|
337
368
|
pemiRnderCrulesNoRule: {
|
|
338
369
|
eng: `No rule`,
|
|
339
|
-
cht:
|
|
370
|
+
cht: `無使用任何對象`,
|
|
340
371
|
},
|
|
341
372
|
pemiRnderCrulesHasNRule: {
|
|
342
373
|
eng: `Has {n} rule(s){nms}`,
|
|
343
|
-
cht:
|
|
374
|
+
cht: `使用共 {n} 項對象{nms}`,
|
|
344
375
|
},
|
|
345
376
|
pemiClearPemisFail: {
|
|
346
377
|
eng: `Failed to clear existing permissions`,
|
|
@@ -359,6 +390,10 @@ let state = {
|
|
|
359
390
|
eng: `Edit permission groups`,
|
|
360
391
|
cht: `編輯所屬權限群組`,
|
|
361
392
|
},
|
|
393
|
+
pemiBlngEditGrupsForDisplay: {
|
|
394
|
+
eng: `Permission groups`,
|
|
395
|
+
cht: `展示所屬權限群組`,
|
|
396
|
+
},
|
|
362
397
|
pemiBlngRnderNoGrup: {
|
|
363
398
|
eng: `No users`,
|
|
364
399
|
cht: `無所屬權限群組`,
|
|
@@ -401,6 +436,10 @@ let state = {
|
|
|
401
436
|
eng: `Permission groups`,
|
|
402
437
|
cht: `管理權限群組`,
|
|
403
438
|
},
|
|
439
|
+
managementGrupsMsg: {
|
|
440
|
+
eng: `Permission groups are primarily used to configure combinations of different permissions.`,
|
|
441
|
+
cht: `權限群組主要為用來設定組合各種權限。`,
|
|
442
|
+
},
|
|
404
443
|
grupName: {
|
|
405
444
|
eng: `Name of permission group`,
|
|
406
445
|
cht: `權限群組名稱`,
|
|
@@ -455,7 +494,11 @@ let state = {
|
|
|
455
494
|
},
|
|
456
495
|
grupEditCpemis: {
|
|
457
496
|
eng: `Edit list of permission group`,
|
|
458
|
-
cht:
|
|
497
|
+
cht: `編輯使用權限`,
|
|
498
|
+
},
|
|
499
|
+
grupEditCpemisForDisplay: {
|
|
500
|
+
eng: `List of permission group`,
|
|
501
|
+
cht: `展示使用權限`,
|
|
459
502
|
},
|
|
460
503
|
grupRnderCpemisNoPermission: {
|
|
461
504
|
eng: `No permission`,
|
|
@@ -463,7 +506,7 @@ let state = {
|
|
|
463
506
|
},
|
|
464
507
|
grupRnderCpemisHasNPermissions: {
|
|
465
508
|
eng: `Has {n} permission(s){nms}`,
|
|
466
|
-
cht:
|
|
509
|
+
cht: `使用 {n} 項權限{nms}`,
|
|
467
510
|
},
|
|
468
511
|
grupClearGrupsFail: {
|
|
469
512
|
eng: `Failed to clear existing permission groups`,
|
|
@@ -486,6 +529,10 @@ let state = {
|
|
|
486
529
|
eng: `Edit permission group of users`,
|
|
487
530
|
cht: `編輯所屬使用者`,
|
|
488
531
|
},
|
|
532
|
+
grupBlngEditUsersForDisplay: {
|
|
533
|
+
eng: `Permission group of users`,
|
|
534
|
+
cht: `展示所屬使用者`,
|
|
535
|
+
},
|
|
489
536
|
grupBlngRnderNoUser: {
|
|
490
537
|
eng: `No users`,
|
|
491
538
|
cht: `無所屬使用者`,
|
|
@@ -528,6 +575,10 @@ let state = {
|
|
|
528
575
|
eng: `Users`,
|
|
529
576
|
cht: `管理使用者`,
|
|
530
577
|
},
|
|
578
|
+
managementUsersMsg: {
|
|
579
|
+
eng: `Users are primarily for providing or extending user information and can be configured with combinations of various permission groups.`,
|
|
580
|
+
cht: `使用者主要為提供或擴充使用者資訊,並可設定組合各種權限群組。`,
|
|
581
|
+
},
|
|
531
582
|
userName: {
|
|
532
583
|
eng: `Name of user`,
|
|
533
584
|
cht: `使用者名稱`,
|
|
@@ -582,7 +633,11 @@ let state = {
|
|
|
582
633
|
},
|
|
583
634
|
userEditCgrups: {
|
|
584
635
|
eng: `Edit list of user`,
|
|
585
|
-
cht:
|
|
636
|
+
cht: `編輯使用權限群組`,
|
|
637
|
+
},
|
|
638
|
+
userEditCgrupsForDisplay: {
|
|
639
|
+
eng: `Edit list of user`,
|
|
640
|
+
cht: `展示使用權限群組`,
|
|
586
641
|
},
|
|
587
642
|
userEditCgrupsNoUserId: {
|
|
588
643
|
eng: `Can not find the id of user`,
|
|
@@ -622,7 +677,7 @@ let state = {
|
|
|
622
677
|
},
|
|
623
678
|
userRnderCgrupsHasNGroups: {
|
|
624
679
|
eng: `Has {n} permission group(s){nms}`,
|
|
625
|
-
cht:
|
|
680
|
+
cht: `使用 {n} 項權限群組{nms}`,
|
|
626
681
|
},
|
|
627
682
|
|
|
628
683
|
cgrupEditNoName: {
|
package/srv.mjs
CHANGED
|
@@ -17,6 +17,14 @@ let opt = {
|
|
|
17
17
|
serverPort: 11006,
|
|
18
18
|
subfolder: '', //mperm
|
|
19
19
|
urlRedirect: 'https://www.google.com/', //本機測試時得先編譯, 再瀏覽: http://localhost:11006/
|
|
20
|
+
showModeEditTargets: 'y', //'n',
|
|
21
|
+
showModeEditPemis: 'y',
|
|
22
|
+
showModeEditGrups: 'y',
|
|
23
|
+
showModeEditUsers: 'y',
|
|
24
|
+
modeEditTargets: 'y', //'n',
|
|
25
|
+
modeEditPemis: 'y',
|
|
26
|
+
modeEditGrups: 'y',
|
|
27
|
+
modeEditUsers: 'y',
|
|
20
28
|
|
|
21
29
|
webName: {
|
|
22
30
|
'eng': 'Permission Service',
|
|
@@ -24,7 +32,7 @@ let opt = {
|
|
|
24
32
|
},
|
|
25
33
|
webDescription: {
|
|
26
34
|
'eng': 'A web service package for user permissions and management targets.',
|
|
27
|
-
'cht': '
|
|
35
|
+
'cht': '基於簡易分層架構來給予與設定使用者所需之權限及群組管理功能',
|
|
28
36
|
},
|
|
29
37
|
webLogo: 'data:image/svg+xml;base64,PHN2ZyBmaWxsPSJub25lIiBoZWlnaHQ9IjQ4IiB3aWR0aD0iNDgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTQ4IDBIMHY0OGg0OFYwWiIgZmlsbD0iI2ZmZiIgZmlsbC1vcGFjaXR5PSIuMDEiLz48cGF0aCBkPSJNMzcuODU2IDIwdjhNMjcuNDY0IDM4bDMuNDY0LTIgMy40NjQtMk0yMC41MzYgMzhsLTMuNDY1LTItMy40NjQtMk0xMC4xNDQgMjB2OE0xMy42MDcgMTRsMy40NjUtMiAzLjQ2NC0yTTI3LjQ2NCAxMGwzLjQ2NCAyIDMuNDY0IDIiIHN0cm9rZT0iI0ZGOTgwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjIiLz48cGF0aCBkPSJNMjQgNDRhNCA0IDAgMSAwIDAtOCA0IDQgMCAwIDAgMCA4Wk0yNCAxMmE0IDQgMCAxIDAgMC04IDQgNCAwIDAgMCAwIDhaTTI0IDI4YTQgNCAwIDEgMCAwLTggNCA0IDAgMCAwIDAgOFpNMzggMjBhNCA0IDAgMSAwIDAtOCA0IDQgMCAwIDAgMCA4Wk0zOCAzNmE0IDQgMCAxIDAgMC04IDQgNCAwIDAgMCAwIDhaTTEwIDIwYTQgNCAwIDEgMCAwLTggNCA0IDAgMCAwIDAgOFpNMTAgMzZhNCA0IDAgMSAwIDAtOCA0IDQgMCAwIDAgMCA4WiIgZmlsbD0iI0ZGRTBCMiIgc3Ryb2tlPSIjRkY5ODAwIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiIvPjwvc3ZnPg==',
|
|
30
38
|
|
package/tableTags-web-perm.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"grups":"
|
|
1
|
+
{"grups":"eTl8uq","pemis":"kB3ULB","targets":"SO2G1L","users":"2ocEzg"}
|