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.
- package/.vscode/launch.json +0 -1
- package/README.md +0 -1
- package/dist/css/app.f22995d1.css +1 -0
- package/dist/index.tmp +1 -1
- package/dist/js/app-legacy.82274c39.js +2 -0
- package/dist/js/app-legacy.82274c39.js.map +1 -0
- package/dist/js/app.82274c39.js +2 -0
- package/dist/js/app.82274c39.js.map +1 -0
- package/dist/js/chunk-vendors-legacy.d89048a8.js +13 -0
- package/dist/js/chunk-vendors-legacy.d89048a8.js.map +1 -0
- package/dist/js/chunk-vendors.d89048a8.js +13 -0
- package/dist/js/chunk-vendors.d89048a8.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 +2 -2
- package/docs/WWebPerm.mjs.html +212 -64
- package/docs/index.html +1 -1
- package/g.backupDb.mjs +1 -1
- package/g.initialData.mjs +211 -111
- package/g.initialTestData.mjs +2 -1
- package/g.mjs +0 -0
- package/g.provideGrups.mjs +87 -0
- package/g.providePemis.mjs +43 -0
- package/g.provideTargets.mjs +20 -13
- package/g.provideUsers.mjs +45 -13
- package/package.json +8 -8
- package/script.txt +5 -5
- package/server/WWebPerm.mjs +211 -63
- package/server/provideGrups.mjs +64 -0
- package/server/{provideRuleGroups.mjs → providePemis.mjs} +14 -15
- package/server/provideTargets.mjs +8 -5
- package/server/provideUsers.mjs +9 -9
- package/src/App.vue +16 -3
- package/src/components/Layout.vue +13 -5
- package/src/components/LayoutContent.vue +31 -16
- package/src/components/LayoutContentGrups.vue +793 -0
- package/src/components/LayoutContentPemis.vue +793 -0
- package/src/components/LayoutContentTargets.vue +481 -307
- package/src/components/LayoutContentUsers.vue +796 -291
- package/src/components/VeCgrups.vue +926 -0
- package/src/components/VeCpemis.vue +926 -0
- package/src/components/VeCrules.vue +820 -0
- package/src/main.js +2 -2
- package/src/perm.mjs +5 -5
- package/src/plugins/mShare.mjs +444 -153
- package/src/plugins/mUI.mjs +37 -19
- package/src/schema/gi.mjs +1 -1
- package/src/schema/index.mjs +4 -2
- package/src/schema/tables/grups.mjs +154 -0
- package/src/schema/tables/{ruleGroups.mjs → pemis.mjs} +27 -16
- package/src/schema/tables/targets.mjs +49 -16
- package/src/schema/tables/users.mjs +55 -27
- package/src/store/mutations.mjs +375 -150
- package/srv.mjs +2 -2
- package/tableTags-web-perm.json +1 -1
- package/dist/css/app.f6c50bec.css +0 -1
- package/dist/js/app-legacy.767522f1.js +0 -2
- package/dist/js/app-legacy.767522f1.js.map +0 -1
- package/dist/js/app.767522f1.js +0 -2
- package/dist/js/app.767522f1.js.map +0 -1
- package/dist/js/chunk-vendors-legacy.b0d63e17.js +0 -13
- package/dist/js/chunk-vendors-legacy.b0d63e17.js.map +0 -1
- package/dist/js/chunk-vendors.b0d63e17.js +0 -13
- package/dist/js/chunk-vendors.b0d63e17.js.map +0 -1
- package/g.provideRuleGroups.mjs +0 -56
- package/src/components/LayoutContentGroups.vue +0 -671
- package/src/components/VeUser.vue +0 -446
- 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
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
'專案A',
|
|
36
|
-
'專案
|
|
37
|
-
'專案
|
|
38
|
-
'專案
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
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
|
package/g.initialTestData.mjs
CHANGED
|
@@ -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
|
|
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
|
package/g.provideTargets.mjs
CHANGED
|
@@ -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
|
-
|
|
14
|
-
'pd-專案A/頁A',
|
|
13
|
+
|
|
15
14
|
'pd-專案A/頁A/區塊A',
|
|
16
15
|
'pd-專案A/頁A/區塊A/執行按鈕',
|
|
17
16
|
'pd-專案A/頁A/區塊A/分析按鈕',
|
|
18
|
-
|
|
17
|
+
|
|
19
18
|
'pd-專案A/頁B/區塊A',
|
|
20
19
|
'pd-專案A/頁B/區塊A/執行按鈕',
|
|
21
20
|
'pd-專案A/頁B/區塊A/分析按鈕',
|
|
22
|
-
|
|
21
|
+
|
|
23
22
|
'pd-專案A/頁B/區塊B/展開按鈕',
|
|
24
23
|
'pd-專案A/頁B/區塊B/下載按鈕',
|
|
25
|
-
|
|
26
|
-
'pd-專案
|
|
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:
|
|
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
|
|
64
|
+
//node --experimental-modules g.provideTargets.mjs
|
package/g.provideUsers.mjs
CHANGED
|
@@ -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
|
-
|
|
14
|
-
['pd-
|
|
15
|
-
|
|
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, ([
|
|
48
|
+
rs = map(rs, ([name, from, cgrups, isAdmin], k) => {
|
|
18
49
|
let v = ds.users.funNew({
|
|
19
|
-
order:
|
|
50
|
+
order: k + 1000, //使能排序至最後, 不穿插至原測試
|
|
20
51
|
name,
|
|
21
|
-
email: `${
|
|
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-${
|
|
27
|
-
if (
|
|
28
|
-
v.
|
|
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
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
14
|
+
"w-serv-orm": "^1.0.11",
|
|
15
15
|
"w-ui-loginout": "^1.0.8",
|
|
16
|
-
"wsemi": "^1.7.
|
|
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.
|
|
33
|
-
"w-package-tools": "^1.0.
|
|
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
|
|
38
|
+
"test": "mocha --parallel --timeout 60000 --experimental-modules",
|
|
39
39
|
"lint": "vue-cli-service lint",
|
|
40
40
|
"deploy": "gh-pages -d docs"
|
|
41
41
|
},
|