w-web-perm 1.0.12 → 1.0.13

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.
Files changed (68) hide show
  1. package/.vscode/launch.json +0 -1
  2. package/README.md +0 -1
  3. package/dist/css/app.f22995d1.css +1 -0
  4. package/dist/index.tmp +1 -1
  5. package/dist/js/app-legacy.82274c39.js +2 -0
  6. package/dist/js/app-legacy.82274c39.js.map +1 -0
  7. package/dist/js/app.82274c39.js +2 -0
  8. package/dist/js/app.82274c39.js.map +1 -0
  9. package/dist/js/chunk-vendors-legacy.d89048a8.js +13 -0
  10. package/dist/js/chunk-vendors-legacy.d89048a8.js.map +1 -0
  11. package/dist/js/chunk-vendors.d89048a8.js +13 -0
  12. package/dist/js/chunk-vendors.d89048a8.js.map +1 -0
  13. package/dist/w-web-perm.umd.js +2 -2
  14. package/dist/w-web-perm.umd.js.map +1 -1
  15. package/docs/WWebPerm.html +2 -2
  16. package/docs/WWebPerm.mjs.html +212 -64
  17. package/docs/index.html +1 -1
  18. package/g.backupDb.mjs +1 -1
  19. package/g.initialData.mjs +211 -111
  20. package/g.initialTestData.mjs +2 -1
  21. package/g.mjs +0 -0
  22. package/g.provideGrups.mjs +87 -0
  23. package/g.providePemis.mjs +43 -0
  24. package/g.provideTargets.mjs +20 -13
  25. package/g.provideUsers.mjs +45 -13
  26. package/package.json +8 -8
  27. package/script.txt +5 -5
  28. package/server/WWebPerm.mjs +211 -63
  29. package/server/provideGrups.mjs +64 -0
  30. package/server/{provideRuleGroups.mjs → providePemis.mjs} +14 -15
  31. package/server/provideTargets.mjs +8 -5
  32. package/server/provideUsers.mjs +9 -9
  33. package/src/App.vue +16 -3
  34. package/src/components/Layout.vue +13 -5
  35. package/src/components/LayoutContent.vue +31 -16
  36. package/src/components/LayoutContentGrups.vue +793 -0
  37. package/src/components/LayoutContentPemis.vue +793 -0
  38. package/src/components/LayoutContentTargets.vue +481 -307
  39. package/src/components/LayoutContentUsers.vue +796 -291
  40. package/src/components/VeCgrups.vue +926 -0
  41. package/src/components/VeCpemis.vue +926 -0
  42. package/src/components/VeCrules.vue +820 -0
  43. package/src/main.js +2 -2
  44. package/src/perm.mjs +5 -5
  45. package/src/plugins/mShare.mjs +444 -153
  46. package/src/plugins/mUI.mjs +37 -19
  47. package/src/schema/gi.mjs +1 -1
  48. package/src/schema/index.mjs +4 -2
  49. package/src/schema/tables/grups.mjs +154 -0
  50. package/src/schema/tables/{ruleGroups.mjs → pemis.mjs} +27 -16
  51. package/src/schema/tables/targets.mjs +49 -16
  52. package/src/schema/tables/users.mjs +55 -27
  53. package/src/store/mutations.mjs +375 -150
  54. package/srv.mjs +2 -2
  55. package/tableTags-web-perm.json +1 -1
  56. package/dist/css/app.f6c50bec.css +0 -1
  57. package/dist/js/app-legacy.767522f1.js +0 -2
  58. package/dist/js/app-legacy.767522f1.js.map +0 -1
  59. package/dist/js/app.767522f1.js +0 -2
  60. package/dist/js/app.767522f1.js.map +0 -1
  61. package/dist/js/chunk-vendors-legacy.b0d63e17.js +0 -13
  62. package/dist/js/chunk-vendors-legacy.b0d63e17.js.map +0 -1
  63. package/dist/js/chunk-vendors.b0d63e17.js +0 -13
  64. package/dist/js/chunk-vendors.b0d63e17.js.map +0 -1
  65. package/g.provideRuleGroups.mjs +0 -56
  66. package/src/components/LayoutContentGroups.vue +0 -671
  67. package/src/components/VeUser.vue +0 -446
  68. package/src/components/ruleGroup.vue +0 -645
package/g.initialData.mjs CHANGED
@@ -1,111 +1,211 @@
1
- import map from 'lodash-es/map'
2
- import ds from './src/schema/index.mjs'
3
- import { woItems } from './g.mOrm.mjs'
4
-
5
-
6
- async function initialData() {
7
- let rs
8
-
9
-
10
- rs = [
11
- ['viewer', '普通瀏覽者', 'id-for-權限群組1'],
12
- ['basic', '一般使用者', 'id-for-權限群組2'],
13
- ['admin', '系統管理者', 'id-for-權限群組3'],
14
- ]
15
- rs = map(rs, ([key, name, ruleGroupsIds], k) => {
16
- let v = ds.users.funNew({
17
- order: k,
18
- name,
19
- email: `${key}@example.com`,
20
- ruleGroupsIds,
21
- userId: 'id-for-admin',
22
- })
23
- v.id = `id-for-${key}`
24
- if (key === 'admin') {
25
- v.isAdmin = 'y'
26
- }
27
- return v
28
- })
29
- await woItems.users.delAll()
30
- await woItems.users.insert(rs)
31
-
32
-
33
- //人工建置數據時得要嚴格建立各階分層, 否則會無法查找到自動建立之parentId
34
- rs = [
35
- '專案A',
36
- '專案A/頁A',
37
- '專案A/頁A/區塊A',
38
- '專案A/頁A/區塊A/執行按鈕',
39
- '專案A/頁A/區塊A/分析按鈕',
40
- '專案A/頁B',
41
- '專案A/頁B/區塊A',
42
- '專案A/頁B/區塊A/執行按鈕',
43
- '專案A/頁B/區塊A/分析按鈕',
44
- '專案A/頁B/區塊B',
45
- '專案A/頁B/區塊B/展開按鈕',
46
- '專案A/頁B/區塊B/下載按鈕',
47
- '專案B',
48
- '專案B/頁A',
49
- '專案B/頁A/區塊A',
50
- '專案B/頁A/區塊A/下載報表按鈕',
51
- '專案B/頁A/區塊A/下載數據按鈕',
52
- '專案B/頁B/區塊A',
53
- '專案B/頁B/區塊B',
54
- '專案B/頁B/區塊B/顯示後台按鈕',
55
- '專案B/頁B/區塊B/轉跳主站按鈕',
56
- ]
57
- rs = map(rs, (key, k) => {
58
- let v = ds.targets.funNew({
59
- order: k,
60
- description: key,
61
- })
62
- v.id = key
63
- return v
64
- })
65
- await woItems.targets.delAll()
66
- await woItems.targets.insert(rs)
67
-
68
- rs = [
69
- ['權限群組1', '權限群組1之說明',
70
- `{
71
- "___all___": { "show": "y", "active": "n" },
72
- "專案A/頁A": { "show": "y", "active": "y" },
73
- "專案A/頁B": { "show": "n", "active": "n" },
74
- }`
75
- ],
76
- ['權限群組2', '權限群組2之說明',
77
- `{
78
- "___all___": { "show": "y", "active": "n" },
79
- }`
80
- ],
81
- ['權限群組3', '權限群組3之說明',
82
- `{
83
- "___all___": { "show": "y", "active": "y" },
84
- }`
85
- ],
86
- ]
87
- rs = map(rs, ([name, description, crules], k) => {
88
- let v = ds.ruleGroups.funNew({
89
- order: k,
90
- name,
91
- description,
92
- crules,
93
- userId: 'id-for-admin',
94
- })
95
- v.id = `id-for-${name}`
96
- return v
97
- })
98
- await woItems.ruleGroups.delAll()
99
- await woItems.ruleGroups.insert(rs)
100
-
101
-
102
- }
103
-
104
- initialData()
105
- .catch((err) => {
106
- console.log('initialData catch', err)
107
- })
108
-
109
-
110
- //重建資料庫
111
- //node --experimental-modules --es-module-specifier-resolution=node g.initialData.mjs
1
+ import map from 'lodash-es/map.js'
2
+ import ds from './src/schema/index.mjs'
3
+ import { woItems } from './g.mOrm.mjs'
4
+
5
+
6
+ async function initialData() {
7
+ let rs
8
+
9
+
10
+ rs = [
11
+
12
+ '專案A/頁A/區塊A',
13
+ '專案A/頁A/區塊A/執行按鈕',
14
+ '專案A/頁A/區塊A/分析按鈕',
15
+
16
+ '專案A/頁B/區塊A',
17
+ '專案A/頁B/區塊A/執行按鈕',
18
+ '專案A/頁B/區塊A/分析按鈕',
19
+
20
+ '專案A/頁B/區塊B/展開按鈕',
21
+ '專案A/頁B/區塊B/下載按鈕',
22
+
23
+ '專案A/頁C',
24
+
25
+ '專案B/頁A/區塊A',
26
+ '專案B/頁A/區塊A/顯示綜合報表',
27
+ '專案B/頁A/區塊A/顯示當前數據',
28
+ '專案B/頁A/區塊B',
29
+ '專案B/頁A/區塊B/下載報表按鈕',
30
+ '專案B/頁A/區塊B/下載數據按鈕',
31
+ '專案B/頁A/區塊C',
32
+
33
+ '專案B/頁B/區塊A',
34
+ '專案B/頁B/區塊A/待辦事項清單',
35
+ '專案B/頁B/區塊A/相關資源清單',
36
+ '專案B/頁B/區塊B',
37
+ '專案B/頁B/區塊B/顯示後台按鈕',
38
+ '專案B/頁B/區塊B/轉跳主站按鈕',
39
+
40
+ ]
41
+ rs = map(rs, (key, k) => {
42
+ let v = ds.targets.funNew({
43
+ userId: 'id-for-admin',
44
+ order: k,
45
+ description: `${key}的說明`,
46
+ })
47
+ v.id = key
48
+ return v
49
+ })
50
+ await woItems.targets.delAll()
51
+ await woItems.targets.insert(rs)
52
+
53
+
54
+ rs = [
55
+
56
+ ['權限P1', `{ "專案A/頁A/區塊A": 'y', "專案A/頁B/區塊A": 'n', "專案A/頁C": 'n' }`],
57
+ ['權限P2', `{ "專案A/頁C": 'y', "專案B/頁A/區塊A": 'y', "專案B/頁A/區塊B": 'y' }`],
58
+ ['權限P3', `{ "專案A/頁C": 'y', "專案B/頁A/區塊A": 'n', "專案B/頁A/區塊B": 'y', "專案B/頁A/區塊C": 'y' }`],
59
+ ['權限P4', `{ "專案B/頁B/區塊A/待辦事項清單": 'y', "專案B/頁B/區塊B/顯示後台按鈕": 'n' }`],
60
+
61
+ ]
62
+ rs = map(rs, ([name, crules], k) => {
63
+ let v = ds.pemis.funNew({
64
+ userId: 'id-for-admin',
65
+ order: k,
66
+ name,
67
+ description: `${name}的說明`,
68
+ crules,
69
+ })
70
+ v.id = `id-for-${name}`
71
+ return v
72
+ })
73
+ await woItems.pemis.delAll()
74
+ await woItems.pemis.insert(rs)
75
+
76
+
77
+ rs = [
78
+
79
+ ['權限群組M1', `
80
+ {
81
+ '權限P1': {
82
+ 'mode': 'OR',
83
+ 'isActive': 'y',
84
+ },
85
+ '權限P2': {
86
+ 'mode': 'OR',
87
+ 'isActive': 'y',
88
+ },
89
+ }
90
+ `],
91
+ ['權限群組M2', `
92
+ {
93
+ '權限P2': {
94
+ 'mode': 'OR',
95
+ 'isActive': 'y',
96
+ },
97
+ '權限P3': {
98
+ 'mode': 'OR',
99
+ 'isActive': 'y',
100
+ },
101
+ }
102
+ `],
103
+ ['權限群組M3', `
104
+ {
105
+ '權限P2': {
106
+ 'mode': 'OR',
107
+ 'isActive': 'y',
108
+ },
109
+ '權限P3': {
110
+ 'mode': 'AND',
111
+ 'isActive': 'y',
112
+ },
113
+ }
114
+ `],
115
+ ['權限群組M4', `
116
+ {
117
+ '權限P3': {
118
+ 'mode': 'OR',
119
+ 'isActive': 'y',
120
+ },
121
+ '權限P4': {
122
+ 'mode': 'OR',
123
+ 'isActive': 'y',
124
+ },
125
+ }
126
+ `],
127
+
128
+ ]
129
+ rs = map(rs, ([name, cpemis], k) => {
130
+ let v = ds.grups.funNew({
131
+ userId: 'id-for-admin',
132
+ order: k,
133
+ name,
134
+ description: `${name}的說明`,
135
+ cpemis,
136
+ })
137
+ v.id = `id-for-${name}`
138
+ return v
139
+ })
140
+ await woItems.grups.delAll()
141
+ await woItems.grups.insert(rs)
142
+
143
+
144
+ rs = [
145
+
146
+ ['peter', 'teamA', `
147
+ {
148
+ '權限群組M1': {
149
+ 'mode': 'OR',
150
+ 'isActive': 'y',
151
+ }
152
+ }
153
+ `, 'n'],
154
+ ['mary', 'teamA', `
155
+ {
156
+ '權限群組M2': {
157
+ 'mode': 'OR',
158
+ 'isActive': 'y',
159
+ }
160
+ }
161
+ `, 'n'],
162
+ ['john', 'teamA', `
163
+ {
164
+ '權限群組M3': {
165
+ 'mode': 'OR',
166
+ 'isActive': 'y',
167
+ }
168
+ }
169
+ `, 'n'],
170
+ ['admin', '', `
171
+ {
172
+ '權限群組M4': {
173
+ 'mode': 'OR',
174
+ 'isActive': 'y',
175
+ }
176
+ }
177
+ `, 'y'],
178
+
179
+ ]
180
+ rs = map(rs, ([name, from, cgrups, isAdmin], k) => {
181
+ let v = ds.users.funNew({
182
+ userId: 'id-for-admin',
183
+ order: k,
184
+ name,
185
+ email: `${name}@example.com`,
186
+ from,
187
+ cgrups,
188
+ isAdmin,
189
+ })
190
+ v.id = `id-for-${name}`
191
+ if (name === 'john') {
192
+ v.email = `${v.email};john@test.com`
193
+ }
194
+ v.isAdmin = isAdmin //funNew會複寫isAdmin為n, 得另外重置
195
+ return v
196
+ })
197
+ await woItems.users.delAll()
198
+ await woItems.users.insert(rs)
199
+
200
+
201
+ console.log('finish.')
202
+ }
203
+
204
+ initialData()
205
+ .catch((err) => {
206
+ console.log('initialData catch', err)
207
+ })
208
+
209
+
210
+ //重建資料庫
211
+ //node --experimental-modules g.initialData.mjs
@@ -8,6 +8,7 @@ async function initialTestData() {
8
8
  //genTestData
9
9
  await genTestData(ds, woItems)
10
10
 
11
+ console.log('finish.')
11
12
  }
12
13
 
13
14
  initialTestData()
@@ -17,4 +18,4 @@ initialTestData()
17
18
 
18
19
 
19
20
  //刪除舊檔與重建測試資料庫
20
- //node --experimental-modules --es-module-specifier-resolution=node g.initialTestData.mjs
21
+ //node --experimental-modules g.initialTestData.mjs
package/g.mjs ADDED
File without changes
@@ -0,0 +1,87 @@
1
+ import map from 'lodash-es/map.js'
2
+ import ds from './src/schema/index.mjs'
3
+ import provideGrups from './server/provideGrups.mjs'
4
+
5
+
6
+ async function provide() {
7
+
8
+ let url = `http://localhost:11006/syncAndReplaceGrups?token=sys`
9
+
10
+ let from = `pd`
11
+
12
+ let rs = [
13
+
14
+ ['pd-權限群組M1', `
15
+ {
16
+ 'pd-權限P1': {
17
+ 'mode': 'OR',
18
+ 'isActive': 'y',
19
+ },
20
+ 'pd-權限P2': {
21
+ 'mode': 'OR',
22
+ 'isActive': 'y',
23
+ },
24
+ }
25
+ `],
26
+ ['pd-權限群組M2', `
27
+ {
28
+ 'pd-權限P2': {
29
+ 'mode': 'OR',
30
+ 'isActive': 'y',
31
+ },
32
+ 'pd-權限P3': {
33
+ 'mode': 'OR',
34
+ 'isActive': 'y',
35
+ },
36
+ }
37
+ `],
38
+ ['pd-權限群組M3', `
39
+ {
40
+ 'pd-權限P2': {
41
+ 'mode': 'OR',
42
+ 'isActive': 'y',
43
+ },
44
+ 'pd-權限P3': {
45
+ 'mode': 'AND',
46
+ 'isActive': 'y',
47
+ },
48
+ }
49
+ `],
50
+ ['pd-權限群組M4', `
51
+ {
52
+ 'pd-權限P3': {
53
+ 'mode': 'OR',
54
+ 'isActive': 'y',
55
+ },
56
+ 'pd-權限P4': {
57
+ 'mode': 'OR',
58
+ 'isActive': 'y',
59
+ },
60
+ }
61
+ `],
62
+
63
+ ]
64
+ rs = map(rs, ([name, cpemis], k) => {
65
+ let v = ds.grups.funNew({
66
+ order: k + 1000, //使能排序至最後, 不穿插至原測試
67
+ name,
68
+ description: `${name}的說明`,
69
+ cpemis,
70
+ })
71
+ v.id = `id-for-${name}`
72
+ return v
73
+ })
74
+ console.log('rs', rs)
75
+
76
+ let r = await provideGrups(url, from, rs)
77
+ console.log('r.msg', r.msg)
78
+
79
+ }
80
+
81
+ provide()
82
+ .catch((err) => {
83
+ console.log('provide catch', err)
84
+ })
85
+
86
+
87
+ //node --experimental-modules g.provideGrups.mjs
@@ -0,0 +1,43 @@
1
+ import map from 'lodash-es/map.js'
2
+ import ds from './src/schema/index.mjs'
3
+ import providePemis from './server/providePemis.mjs'
4
+
5
+
6
+ async function provide() {
7
+
8
+ let url = `http://localhost:11006/syncAndReplacePemis?token=sys`
9
+
10
+ let from = `pd`
11
+
12
+ let rs = [
13
+
14
+ ['pd-權限P1', `{ "pd-專案A/頁A/區塊A": 'y', "pd-專案A/頁B/區塊A": 'n', "pd-專案A/頁C": 'n' }`],
15
+ ['pd-權限P2', `{ "pd-專案A/頁C": 'y', "pd-專案B/頁A/區塊A": 'y', "pd-專案B/頁A/區塊B": 'y' }`],
16
+ ['pd-權限P3', `{ "pd-專案A/頁C": 'y', "pd-專案B/頁A/區塊A": 'n', "pd-專案B/頁A/區塊B": 'y', "pd-專案B/頁A/區塊C": 'y' }`],
17
+ ['pd-權限P4', `{ "pd-專案B/頁B/區塊A/待辦事項清單": 'y', "pd-專案B/頁B/區塊B/顯示後台按鈕": 'n' }`],
18
+
19
+ ]
20
+ rs = map(rs, ([name, crules], k) => {
21
+ let v = ds.pemis.funNew({
22
+ order: k + 1000, //使能排序至最後, 不穿插至原測試
23
+ name,
24
+ description: `${name}的說明`,
25
+ crules,
26
+ })
27
+ v.id = `id-for-${name}`
28
+ return v
29
+ })
30
+ console.log('rs', rs)
31
+
32
+ let r = await providePemis(url, from, rs)
33
+ console.log('r.msg', r.msg)
34
+
35
+ }
36
+
37
+ provide()
38
+ .catch((err) => {
39
+ console.log('provide catch', err)
40
+ })
41
+
42
+
43
+ //node --experimental-modules g.providePemis.mjs
@@ -1,4 +1,4 @@
1
- import map from 'lodash-es/map'
1
+ import map from 'lodash-es/map.js'
2
2
  import ds from './src/schema/index.mjs'
3
3
  import provideTargets from './server/provideTargets.mjs'
4
4
 
@@ -10,33 +10,40 @@ async function provide() {
10
10
  let from = `pd`
11
11
 
12
12
  let rs = [
13
- 'pd-專案A',
14
- 'pd-專案A/頁A',
13
+
15
14
  'pd-專案A/頁A/區塊A',
16
15
  'pd-專案A/頁A/區塊A/執行按鈕',
17
16
  'pd-專案A/頁A/區塊A/分析按鈕',
18
- 'pd-專案A/頁B',
17
+
19
18
  'pd-專案A/頁B/區塊A',
20
19
  'pd-專案A/頁B/區塊A/執行按鈕',
21
20
  'pd-專案A/頁B/區塊A/分析按鈕',
22
- 'pd-專案A/頁B/區塊B',
21
+
23
22
  'pd-專案A/頁B/區塊B/展開按鈕',
24
23
  'pd-專案A/頁B/區塊B/下載按鈕',
25
- 'pd-專案B',
26
- 'pd-專案B/頁A',
24
+
25
+ 'pd-專案A/頁C',
26
+
27
27
  'pd-專案B/頁A/區塊A',
28
- 'pd-專案B/頁A/區塊A/下載報表按鈕',
29
- 'pd-專案B/頁A/區塊A/下載數據按鈕',
28
+ 'pd-專案B/頁A/區塊A/顯示綜合報表',
29
+ 'pd-專案B/頁A/區塊A/顯示當前數據',
30
+ 'pd-專案B/頁A/區塊B',
31
+ 'pd-專案B/頁A/區塊B/下載報表按鈕',
32
+ 'pd-專案B/頁A/區塊B/下載數據按鈕',
33
+ 'pd-專案B/頁A/區塊C',
34
+
30
35
  'pd-專案B/頁B/區塊A',
36
+ 'pd-專案B/頁B/區塊A/待辦事項清單',
37
+ 'pd-專案B/頁B/區塊A/相關資源清單',
31
38
  'pd-專案B/頁B/區塊B',
32
39
  'pd-專案B/頁B/區塊B/顯示後台按鈕',
33
40
  'pd-專案B/頁B/區塊B/轉跳主站按鈕',
41
+
34
42
  ]
35
43
  rs = map(rs, (key, k) => {
36
44
  let v = ds.targets.funNew({
37
- order: 1000 + k,
38
- description: key,
39
- from,
45
+ order: k + 1000, //使能排序至最後, 不穿插至原測試數據
46
+ description: `${key}的說明`,
40
47
  })
41
48
  v.id = key
42
49
  return v
@@ -54,4 +61,4 @@ provide()
54
61
  })
55
62
 
56
63
 
57
- //node --experimental-modules --es-module-specifier-resolution=node g.provideTargets.mjs
64
+ //node --experimental-modules g.provideTargets.mjs
@@ -1,4 +1,4 @@
1
- import map from 'lodash-es/map'
1
+ import map from 'lodash-es/map.js'
2
2
  import ds from './src/schema/index.mjs'
3
3
  import provideUsers from './server/provideUsers.mjs'
4
4
 
@@ -10,23 +10,55 @@ async function provide() {
10
10
  let from = `pd`
11
11
 
12
12
  let rs = [
13
- ['pd-viewer', 'pd-普通瀏覽者', 'id-for-pd-權限群組1'],
14
- ['pd-basic', 'pd-一般使用者', 'id-for-pd-權限群組2'],
15
- ['pd-admin', 'pd-系統管理者', 'id-for-pd-權限群組3'],
13
+
14
+ ['pd-peter', 'teamA', `
15
+ {
16
+ 'pd-權限群組M1': {
17
+ 'mode': 'OR',
18
+ 'isActive': 'y',
19
+ }
20
+ }
21
+ `, 'n'],
22
+ ['pd-mary', 'teamA', `
23
+ {
24
+ 'pd-權限群組M2': {
25
+ 'mode': 'OR',
26
+ 'isActive': 'y',
27
+ }
28
+ }
29
+ `, 'n'],
30
+ ['pd-john', 'teamA', `
31
+ {
32
+ 'pd-權限群組M3': {
33
+ 'mode': 'OR',
34
+ 'isActive': 'y',
35
+ }
36
+ }
37
+ `, 'n'],
38
+ ['pd-admin', '', `
39
+ {
40
+ 'pd-權限群組M4': {
41
+ 'mode': 'OR',
42
+ 'isActive': 'y',
43
+ }
44
+ }
45
+ `, 'y'],
46
+
16
47
  ]
17
- rs = map(rs, ([key, name, ruleGroupsIds], k) => {
48
+ rs = map(rs, ([name, from, cgrups, isAdmin], k) => {
18
49
  let v = ds.users.funNew({
19
- order: 1000 + k,
50
+ order: k + 1000, //使能排序至最後, 不穿插至原測試
20
51
  name,
21
- email: `${key}@example.com`,
22
- ruleGroupsIds,
23
- userId: 'id-for-admin',
52
+ email: `${name}@example.com`,
24
53
  from,
54
+ cgrups,
55
+ isAdmin,
25
56
  })
26
- v.id = `id-for-${key}`
27
- if (key === 'pd-admin') {
28
- v.isAdmin = 'y'
57
+ v.id = `id-for-${name}`
58
+ if (name === 'john') {
59
+ v.email = `${v.email};john@test.com`
29
60
  }
61
+ v.isAdmin = isAdmin
30
62
  return v
31
63
  })
32
64
  console.log('rs', rs)
@@ -42,4 +74,4 @@ provide()
42
74
  })
43
75
 
44
76
 
45
- //node --experimental-modules --es-module-specifier-resolution=node g.provideUsers.mjs
77
+ //node --experimental-modules g.provideUsers.mjs
package/package.json CHANGED
@@ -1,19 +1,19 @@
1
1
  {
2
2
  "name": "w-web-perm",
3
- "version": "1.0.12",
3
+ "version": "1.0.13",
4
4
  "main": "dist/w-web-perm.umd.js",
5
5
  "dependencies": {
6
6
  "@mdi/js": "^7.4.47",
7
- "axios": "^1.6.8",
7
+ "axios": "^1.7.7",
8
8
  "json5": "^2.2.3",
9
9
  "lodash": "^4.17.21",
10
10
  "showdown": "^2.1.0",
11
- "w-component-vue": "^2.3.80",
11
+ "w-component-vue": "^2.4.2",
12
12
  "w-data-collector": "^1.0.22",
13
13
  "w-serv-hapi": "^1.0.13",
14
- "w-serv-orm": "^1.0.9",
14
+ "w-serv-orm": "^1.0.11",
15
15
  "w-ui-loginout": "^1.0.8",
16
- "wsemi": "^1.7.49"
16
+ "wsemi": "^1.7.60"
17
17
  },
18
18
  "devDependencies": {
19
19
  "@vue/cli-plugin-babel": "^5.0.8",
@@ -29,13 +29,13 @@
29
29
  "eslint-plugin-vue": "^9.10.0",
30
30
  "vue": "^2.6.14",
31
31
  "vuex": "^3.6.2",
32
- "w-orm-mongodb": "^1.1.31",
33
- "w-package-tools": "^1.0.75"
32
+ "w-orm-mongodb": "^1.1.32",
33
+ "w-package-tools": "^1.0.76"
34
34
  },
35
35
  "scripts": {
36
36
  "serve": "vue-cli-service serve",
37
37
  "build": "vue-cli-service build",
38
- "test": "mocha --parallel --timeout 60000 --experimental-modules --es-module-specifier-resolution=node",
38
+ "test": "mocha --parallel --timeout 60000 --experimental-modules",
39
39
  "lint": "vue-cli-service lint",
40
40
  "deploy": "gh-pages -d docs"
41
41
  },