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/src/plugins/mShare.mjs
CHANGED
|
@@ -1,221 +1,511 @@
|
|
|
1
1
|
//前後端共用函數區
|
|
2
2
|
import JSON5 from 'json5'
|
|
3
|
-
import get from 'lodash-es/get.js'
|
|
4
|
-
import each from 'lodash-es/each.js'
|
|
5
|
-
import map from 'lodash-es/map.js'
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
import
|
|
11
|
-
import
|
|
3
|
+
import get from 'lodash-es/get.js'
|
|
4
|
+
import each from 'lodash-es/each.js'
|
|
5
|
+
import map from 'lodash-es/map.js'
|
|
6
|
+
import join from 'lodash-es/join.js'
|
|
7
|
+
import size from 'lodash-es/size.js'
|
|
8
|
+
import find from 'lodash-es/find.js'
|
|
9
|
+
import filter from 'lodash-es/filter.js'
|
|
10
|
+
import cloneDeep from 'lodash-es/cloneDeep.js'
|
|
11
|
+
import takeRight from 'lodash-es/takeRight.js'
|
|
12
|
+
import dropRight from 'lodash-es/dropRight.js'
|
|
13
|
+
import sortBy from 'lodash-es/sortBy.js'
|
|
12
14
|
import sep from 'wsemi/src/sep.mjs'
|
|
13
15
|
import iseobj from 'wsemi/src/iseobj.mjs'
|
|
16
|
+
import isestr from 'wsemi/src/isestr.mjs'
|
|
14
17
|
import haskey from 'wsemi/src/haskey.mjs'
|
|
15
|
-
import composeToTree from 'wsemi/src/composeToTree.mjs'
|
|
16
18
|
|
|
17
19
|
|
|
18
|
-
//dlm
|
|
19
|
-
let dlm = '/'
|
|
20
|
+
// //dlm
|
|
21
|
+
// let dlm = '/'
|
|
20
22
|
|
|
21
23
|
|
|
22
|
-
function
|
|
24
|
+
function getNameNew(rows, key = 'name', nameBase = '', nameExt = '') {
|
|
23
25
|
|
|
24
|
-
//
|
|
25
|
-
let
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
26
|
+
//hasName
|
|
27
|
+
let hasName = (name) => {
|
|
28
|
+
let b = false
|
|
29
|
+
each(rows, (r) => {
|
|
30
|
+
let _name = get(r, key, '')
|
|
31
|
+
if (_name === name) {
|
|
32
|
+
b = true
|
|
33
|
+
return false //跳出
|
|
34
|
+
}
|
|
35
|
+
})
|
|
36
|
+
return b
|
|
37
|
+
}
|
|
32
38
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
39
|
+
//nameNew
|
|
40
|
+
let nameNew = ''
|
|
41
|
+
let b = true
|
|
42
|
+
let i = 0
|
|
43
|
+
while (b) {
|
|
44
|
+
i++
|
|
45
|
+
let pre = ''
|
|
46
|
+
if (isestr(nameBase)) {
|
|
47
|
+
pre = `${nameBase} - `
|
|
38
48
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
//sortBy
|
|
43
|
-
rs = sortBy(rs, 'order')
|
|
44
|
-
// console.log('rs sortBy', rs)
|
|
49
|
+
nameNew = `${pre}${nameExt}(${i})` //vo.$t('pemiAddNameNew') vo.$t('pemiCopyNameNew')
|
|
50
|
+
b = hasName(nameNew)
|
|
51
|
+
}
|
|
45
52
|
|
|
46
|
-
return
|
|
53
|
+
return nameNew
|
|
47
54
|
}
|
|
48
55
|
|
|
49
56
|
|
|
50
|
-
function
|
|
57
|
+
// function getAllBlocks(targets) {
|
|
51
58
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
// console.log('blocks', blocks)
|
|
59
|
+
// //rs
|
|
60
|
+
// let rs = map(targets, (v) => {
|
|
55
61
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
saveExtProps: true,
|
|
62
|
-
}
|
|
62
|
+
// //text, parentId
|
|
63
|
+
// let s = sep(v.id, dlm) //[tag:dlm]
|
|
64
|
+
// let text = get(takeRight(s), 0) //取最後節點
|
|
65
|
+
// s = dropRight(s, 1)
|
|
66
|
+
// let parentId = join(s, dlm) //[tag:dlm] 取父節點
|
|
63
67
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
// console.log('treeBlocks', cloneDeep(r))
|
|
68
|
+
// return {
|
|
69
|
+
// ...v,
|
|
70
|
+
// idTemp: v.id,
|
|
71
|
+
// parentId,
|
|
72
|
+
// text,
|
|
73
|
+
// }
|
|
74
|
+
// })
|
|
75
|
+
// // console.log('rs', rs)
|
|
73
76
|
|
|
74
|
-
|
|
75
|
-
|
|
77
|
+
// //sortBy
|
|
78
|
+
// rs = sortBy(rs, 'order')
|
|
79
|
+
// // console.log('rs sortBy', rs)
|
|
76
80
|
|
|
81
|
+
// return rs
|
|
82
|
+
// }
|
|
77
83
|
|
|
78
|
-
function getUserGroups(user, ruleGroups) {
|
|
79
84
|
|
|
80
|
-
|
|
81
|
-
let ruleGroupsIds = get(user, 'ruleGroupsIds', '')
|
|
85
|
+
// function getTreeBlocks(targets) {
|
|
82
86
|
|
|
83
|
-
|
|
84
|
-
|
|
87
|
+
// //getAllBlocks
|
|
88
|
+
// let blocks = getAllBlocks(targets)
|
|
89
|
+
// // console.log('blocks', blocks)
|
|
85
90
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
})
|
|
91
|
+
// //opt
|
|
92
|
+
// let opt = {
|
|
93
|
+
// bindKey: 'id',
|
|
94
|
+
// bindParent: 'parentId',
|
|
95
|
+
// bindChildren: 'children',
|
|
96
|
+
// saveExtProps: true,
|
|
97
|
+
// }
|
|
94
98
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
99
|
+
// //composeToTree
|
|
100
|
+
// let r
|
|
101
|
+
// try {
|
|
102
|
+
// r = composeToTree(blocks, opt)
|
|
103
|
+
// }
|
|
104
|
+
// catch (err) {
|
|
105
|
+
// console.log(err)
|
|
106
|
+
// }
|
|
107
|
+
// // console.log('treeBlocks', cloneDeep(r))
|
|
101
108
|
|
|
102
|
-
|
|
103
|
-
}
|
|
109
|
+
// return r
|
|
110
|
+
// }
|
|
104
111
|
|
|
105
112
|
|
|
106
|
-
function
|
|
113
|
+
// function getUserGroups(user, pemis) {
|
|
107
114
|
|
|
108
|
-
|
|
109
|
-
|
|
115
|
+
// //userGroups
|
|
116
|
+
// let ruleGroupsIds = get(user, 'ruleGroupsIds', '')
|
|
110
117
|
|
|
111
|
-
|
|
112
|
-
|
|
118
|
+
// //sep
|
|
119
|
+
// let s = sep(ruleGroupsIds, ';')
|
|
113
120
|
|
|
114
|
-
|
|
115
|
-
|
|
121
|
+
// //gs
|
|
122
|
+
// let gs = []
|
|
123
|
+
// each(s, (id) => {
|
|
124
|
+
// let g = find(pemis, { id })
|
|
125
|
+
// if (iseobj(g)) {
|
|
126
|
+
// gs.push(g)
|
|
127
|
+
// }
|
|
128
|
+
// })
|
|
116
129
|
|
|
117
|
-
|
|
118
|
-
|
|
130
|
+
// //add pemis
|
|
131
|
+
// gs = map(gs, (g) => {
|
|
132
|
+
// let pemis = JSON5.parse(g.crules)
|
|
133
|
+
// g.pemis = pemis
|
|
134
|
+
// return g
|
|
135
|
+
// })
|
|
119
136
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
let ks = ['show', 'active']
|
|
123
|
-
each(ks, (k) => {
|
|
137
|
+
// return gs
|
|
138
|
+
// }
|
|
124
139
|
|
|
125
|
-
//___all___
|
|
126
|
-
let def = get(rules, `___all___.${k}`)
|
|
127
|
-
def = (def === 'y') ? 'y' : 'n'
|
|
128
140
|
|
|
129
|
-
|
|
130
|
-
each(targets, (v) => {
|
|
141
|
+
// function getTargetsByGroup(targets, group) {
|
|
131
142
|
|
|
132
|
-
|
|
133
|
-
|
|
143
|
+
// //cloneDeep
|
|
144
|
+
// targets = cloneDeep(targets)
|
|
134
145
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
146
|
+
// //sortBy
|
|
147
|
+
// targets = sortBy(targets, 'order')
|
|
148
|
+
|
|
149
|
+
// //cloneDeep
|
|
150
|
+
// group = cloneDeep(group)
|
|
151
|
+
|
|
152
|
+
// //pemis
|
|
153
|
+
// let pemis = JSON5.parse(group.crules)
|
|
154
|
+
|
|
155
|
+
// //rulesDisplay
|
|
156
|
+
// let rulesDisplay = {}
|
|
157
|
+
// let ks = ['show', 'active']
|
|
158
|
+
// each(ks, (k) => {
|
|
159
|
+
|
|
160
|
+
// //___all___
|
|
161
|
+
// let def = get(pemis, `___all___.${k}`)
|
|
162
|
+
// def = (def === 'y') ? 'y' : 'n'
|
|
163
|
+
|
|
164
|
+
// //other props
|
|
165
|
+
// each(targets, (v) => {
|
|
166
|
+
|
|
167
|
+
// //krule
|
|
168
|
+
// let krule = v.id
|
|
169
|
+
|
|
170
|
+
// //check
|
|
171
|
+
// if (!rulesDisplay[krule]) {
|
|
172
|
+
// rulesDisplay[krule] = {}
|
|
173
|
+
// }
|
|
174
|
+
|
|
175
|
+
// //rule
|
|
176
|
+
// let rule = pemis[krule]
|
|
177
|
+
|
|
178
|
+
// //r
|
|
179
|
+
// let r = null
|
|
139
180
|
|
|
140
|
-
|
|
141
|
-
|
|
181
|
+
// //b
|
|
182
|
+
// let b = get(rule, `${k}`)
|
|
183
|
+
// if (b === 'y' || b === 'n') {
|
|
184
|
+
// r = b
|
|
185
|
+
// }
|
|
186
|
+
// else {
|
|
187
|
+
// r = def
|
|
188
|
+
// }
|
|
142
189
|
|
|
143
|
-
|
|
144
|
-
|
|
190
|
+
// //save
|
|
191
|
+
// rulesDisplay[krule][k] = r //因krule內含有「.」故不能用set
|
|
145
192
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
193
|
+
// })
|
|
194
|
+
|
|
195
|
+
// })
|
|
196
|
+
// // console.log('rulesDisplay', rulesDisplay)
|
|
197
|
+
|
|
198
|
+
// return rulesDisplay
|
|
199
|
+
// }
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+
function getUserRules(user, grups, pemis, targets) {
|
|
203
|
+
|
|
204
|
+
let cvKpToArr = (kp) => {
|
|
205
|
+
let rs = []
|
|
206
|
+
each(kp, (v, k) => {
|
|
207
|
+
// console.log(k, v)
|
|
208
|
+
let r = {
|
|
209
|
+
name: k,
|
|
210
|
+
}
|
|
211
|
+
if (iseobj(v)) {
|
|
212
|
+
r = {
|
|
213
|
+
...r,
|
|
214
|
+
...v,
|
|
215
|
+
}
|
|
150
216
|
}
|
|
151
217
|
else {
|
|
152
|
-
r =
|
|
218
|
+
r = {
|
|
219
|
+
...r,
|
|
220
|
+
isActive: v,
|
|
221
|
+
}
|
|
153
222
|
}
|
|
154
|
-
|
|
155
|
-
//save
|
|
156
|
-
rulesDisplay[krule][k] = r //因krule內含有「.」故不能用set
|
|
157
|
-
|
|
223
|
+
rs.push(r)
|
|
158
224
|
})
|
|
225
|
+
return rs
|
|
226
|
+
}
|
|
159
227
|
|
|
160
|
-
|
|
161
|
-
// console.log('rulesDisplay', rulesDisplay)
|
|
228
|
+
let cvStrToArr = (c) => {
|
|
162
229
|
|
|
163
|
-
|
|
164
|
-
}
|
|
230
|
+
//kp
|
|
231
|
+
let kp = {}
|
|
232
|
+
try {
|
|
233
|
+
kp = JSON5.parse(c)
|
|
234
|
+
// console.log('kp', kp)
|
|
235
|
+
}
|
|
236
|
+
catch (err) {
|
|
237
|
+
console.log('c', c)
|
|
238
|
+
console.log(err)
|
|
239
|
+
}
|
|
165
240
|
|
|
241
|
+
//arr
|
|
242
|
+
let arr = []
|
|
243
|
+
try {
|
|
244
|
+
arr = cvKpToArr(kp)
|
|
245
|
+
// console.log('arr', arr)
|
|
246
|
+
}
|
|
247
|
+
catch (err) {
|
|
248
|
+
console.log('c', c)
|
|
249
|
+
console.log('kp', kp)
|
|
250
|
+
console.log(err)
|
|
251
|
+
}
|
|
166
252
|
|
|
167
|
-
|
|
168
|
-
|
|
253
|
+
return arr
|
|
254
|
+
}
|
|
169
255
|
|
|
170
|
-
|
|
171
|
-
|
|
256
|
+
let arrFinder = (arrSrc, arrPks, key) => {
|
|
257
|
+
let rs = []
|
|
258
|
+
each(arrSrc, (v) => {
|
|
259
|
+
let tSrc = get(v, key, '')
|
|
260
|
+
each(arrPks, (vv) => {
|
|
261
|
+
let tPks = get(vv, key, '')
|
|
262
|
+
if (tSrc === tPks) {
|
|
263
|
+
rs.push({
|
|
264
|
+
...v,
|
|
265
|
+
data: vv,
|
|
266
|
+
})
|
|
267
|
+
return false //跳出
|
|
268
|
+
}
|
|
269
|
+
})
|
|
270
|
+
})
|
|
271
|
+
return rs
|
|
272
|
+
}
|
|
172
273
|
|
|
173
|
-
|
|
174
|
-
let gs = getUserGroups(user, ruleGroups)
|
|
175
|
-
// console.log('gs', gs)
|
|
274
|
+
let mergeRules = (rs) => {
|
|
176
275
|
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
276
|
+
//ts
|
|
277
|
+
let ts = []
|
|
278
|
+
each(rs, (v) => {
|
|
180
279
|
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
each(gs, (g) => {
|
|
184
|
-
let r = getTargetsByGroup(targets, g)
|
|
185
|
-
each(r, (v, k) => {
|
|
280
|
+
//mode
|
|
281
|
+
let mode = get(v, 'mode', '')
|
|
186
282
|
|
|
187
283
|
//check
|
|
188
|
-
if (
|
|
189
|
-
|
|
284
|
+
if (mode !== 'OR' && mode !== 'AND') {
|
|
285
|
+
return true //跳出換下一個
|
|
190
286
|
}
|
|
191
287
|
|
|
192
|
-
//
|
|
193
|
-
let
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
288
|
+
//kpRule
|
|
289
|
+
let rules = get(v, 'rules', [])
|
|
290
|
+
let kpRule = {}
|
|
291
|
+
each(rules, (vv) => {
|
|
292
|
+
kpRule[vv.name] = vv.isActive
|
|
293
|
+
})
|
|
294
|
+
|
|
295
|
+
//push
|
|
296
|
+
ts.push({
|
|
297
|
+
mode,
|
|
298
|
+
kpRule,
|
|
299
|
+
})
|
|
300
|
+
|
|
301
|
+
})
|
|
302
|
+
|
|
303
|
+
//check
|
|
304
|
+
if (size(ts) === 0) {
|
|
305
|
+
return []
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
let objOR = (obj1, obj2) => {
|
|
309
|
+
let kp = {}
|
|
310
|
+
let objs = [obj1, obj2]
|
|
311
|
+
each(objs, (obj) => {
|
|
312
|
+
each(obj, (v, k) => {
|
|
313
|
+
if (!haskey(kp, k)) {
|
|
314
|
+
kp[k] = 'n'
|
|
315
|
+
}
|
|
316
|
+
if (kp[k] === 'y' || v === 'y') {
|
|
317
|
+
kp[k] = 'y'
|
|
204
318
|
}
|
|
205
319
|
else {
|
|
206
|
-
|
|
320
|
+
kp[k] = 'n'
|
|
207
321
|
}
|
|
208
|
-
}
|
|
322
|
+
})
|
|
323
|
+
})
|
|
324
|
+
return kp
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
let objAND = (obj1, obj2) => {
|
|
328
|
+
let kp = cloneDeep(obj1)
|
|
329
|
+
let objs = [obj2]
|
|
330
|
+
each(objs, (obj) => {
|
|
331
|
+
each(obj, (v, k) => {
|
|
332
|
+
if (!haskey(kp, k)) {
|
|
333
|
+
kp[k] = 'n'
|
|
334
|
+
}
|
|
335
|
+
if (kp[k] === 'y' && v === 'y') {
|
|
336
|
+
kp[k] = 'y'
|
|
337
|
+
}
|
|
338
|
+
else {
|
|
339
|
+
kp[k] = 'n'
|
|
340
|
+
}
|
|
341
|
+
})
|
|
209
342
|
})
|
|
343
|
+
return kp
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
let tsOR = filter(ts, { mode: 'OR' })
|
|
347
|
+
let tsAND = filter(ts, { mode: 'AND' })
|
|
348
|
+
// console.log('tsOR', tsOR)
|
|
349
|
+
// console.log('tsAND', tsAND)
|
|
350
|
+
|
|
351
|
+
//kpRuleFin
|
|
352
|
+
let kpRuleFin = null
|
|
353
|
+
if (size(tsOR) > 0) {
|
|
354
|
+
kpRuleFin = get(tsOR, `0.kpRule`)
|
|
355
|
+
}
|
|
356
|
+
else if (size(tsAND) > 0) {
|
|
357
|
+
kpRuleFin = get(tsAND, `0.kpRule`)
|
|
358
|
+
}
|
|
359
|
+
// console.log('kpRuleFin(0)', kpRuleFin)
|
|
210
360
|
|
|
361
|
+
//or
|
|
362
|
+
each(tsOR, (t) => {
|
|
363
|
+
let kpRule = get(t, 'kpRule', {})
|
|
364
|
+
kpRuleFin = objOR(kpRuleFin, kpRule)
|
|
211
365
|
})
|
|
366
|
+
// console.log('kpRuleFin(or)', kpRuleFin)
|
|
367
|
+
|
|
368
|
+
//and
|
|
369
|
+
each(tsAND, (t, kt) => {
|
|
370
|
+
let kpRule = get(t, 'kpRule', {})
|
|
371
|
+
// console.log(kt, '(and)(in) kpRule', kpRule)
|
|
372
|
+
// console.log(kt, '(and)(in) kpRuleFin', kpRuleFin)
|
|
373
|
+
kpRuleFin = objAND(kpRuleFin, kpRule)
|
|
374
|
+
// console.log(kt, '(and)(out) kpRuleFin', kpRuleFin)
|
|
375
|
+
})
|
|
376
|
+
// console.log('kpRuleFin(and)', kpRuleFin)
|
|
377
|
+
|
|
378
|
+
//rulesFin
|
|
379
|
+
let rulesFin = []
|
|
380
|
+
each(kpRuleFin, (v, k) => {
|
|
381
|
+
rulesFin.push({
|
|
382
|
+
name: k,
|
|
383
|
+
isActive: v,
|
|
384
|
+
})
|
|
385
|
+
})
|
|
386
|
+
// console.log('rulesFin', rulesFin)
|
|
387
|
+
|
|
388
|
+
return rulesFin
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
//cgrups
|
|
392
|
+
let cgrups = get(user, 'cgrups', '')
|
|
393
|
+
// console.log('cgrups', cgrups)
|
|
394
|
+
|
|
395
|
+
//cvStrToArr
|
|
396
|
+
let _grups = cvStrToArr(cgrups)
|
|
397
|
+
// console.log('cvStrToArr _grups', _grups)
|
|
398
|
+
|
|
399
|
+
//_grups
|
|
400
|
+
_grups = arrFinder(_grups, grups, 'name')
|
|
401
|
+
// console.log('arrFinder _grups', cloneDeep(_grups))
|
|
402
|
+
|
|
403
|
+
//filter
|
|
404
|
+
_grups = filter(_grups, { isActive: 'y' })
|
|
405
|
+
// console.log('filter _grups', cloneDeep(_grups))
|
|
406
|
+
|
|
407
|
+
//proc _pemis
|
|
408
|
+
_grups = map(_grups, (v) => {
|
|
409
|
+
let cpemis = get(v, 'data.cpemis', '')
|
|
410
|
+
let _pemis = cvStrToArr(cpemis)
|
|
411
|
+
_pemis = filter(_pemis, { isActive: 'y' })
|
|
412
|
+
_pemis = arrFinder(_pemis, pemis, 'name')
|
|
413
|
+
v.data._pemis = _pemis
|
|
414
|
+
return v
|
|
212
415
|
})
|
|
213
|
-
// console.log('
|
|
416
|
+
// console.log('proc _pemis _grups', cloneDeep(_grups))
|
|
417
|
+
|
|
418
|
+
//proc _rules
|
|
419
|
+
_grups = map(_grups, (v) => {
|
|
420
|
+
let _pemis = get(v, 'data._pemis', [])
|
|
421
|
+
_pemis = map(_pemis, (vv) => {
|
|
422
|
+
let crules = get(vv, 'data.crules', '')
|
|
423
|
+
let _rules = cvStrToArr(crules)
|
|
424
|
+
vv.data._rules = _rules
|
|
425
|
+
return vv
|
|
426
|
+
})
|
|
427
|
+
v.data._pemis = _pemis
|
|
428
|
+
return v
|
|
429
|
+
})
|
|
430
|
+
// console.log('proc _rules _grups', cloneDeep(_grups))
|
|
431
|
+
|
|
432
|
+
//merge _rules
|
|
433
|
+
let _rules = []
|
|
434
|
+
if (true) {
|
|
435
|
+
|
|
436
|
+
//rrs
|
|
437
|
+
let rrs = []
|
|
438
|
+
each(_grups, (v) => {
|
|
439
|
+
|
|
440
|
+
let modeG = v.mode
|
|
441
|
+
let _pemis = v.data._pemis
|
|
442
|
+
|
|
443
|
+
//rs
|
|
444
|
+
let rs = []
|
|
445
|
+
each(_pemis, (vv) => {
|
|
446
|
+
let modeP = vv.mode
|
|
447
|
+
let _rules = vv.data._rules
|
|
448
|
+
rs.push({
|
|
449
|
+
mode: modeP,
|
|
450
|
+
rules: _rules,
|
|
451
|
+
})
|
|
452
|
+
|
|
453
|
+
})
|
|
454
|
+
// console.log('rs', rs)
|
|
455
|
+
|
|
456
|
+
//mergeRules
|
|
457
|
+
let rulesP = mergeRules(rs)
|
|
458
|
+
// console.log('rulesP', rulesP)
|
|
459
|
+
|
|
460
|
+
//t
|
|
461
|
+
let t = {
|
|
462
|
+
mode: modeG,
|
|
463
|
+
rules: rulesP,
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
//push
|
|
467
|
+
rrs.push(t)
|
|
468
|
+
|
|
469
|
+
})
|
|
470
|
+
// console.log('rrs', rrs)
|
|
471
|
+
|
|
472
|
+
//mergeRules
|
|
473
|
+
let rulesG = mergeRules(rrs)
|
|
474
|
+
// console.log('rulesG', rulesG)
|
|
475
|
+
|
|
476
|
+
//save
|
|
477
|
+
_rules = rulesG
|
|
478
|
+
|
|
479
|
+
}
|
|
480
|
+
// console.log('merge _rules', cloneDeep(_rules))
|
|
481
|
+
|
|
482
|
+
//expand _rules
|
|
483
|
+
if (true) {
|
|
484
|
+
let kp = {}
|
|
485
|
+
each(_rules, (v) => {
|
|
486
|
+
kp[v.name] = v.isActive
|
|
487
|
+
})
|
|
488
|
+
each(targets, (t) => {
|
|
489
|
+
// console.log('t', t)
|
|
490
|
+
if (!haskey(kp, t.id)) {
|
|
491
|
+
kp[t.id] = 'n'
|
|
492
|
+
}
|
|
493
|
+
})
|
|
494
|
+
let rs = []
|
|
495
|
+
each(kp, (v, k) => {
|
|
496
|
+
let r = {
|
|
497
|
+
name: k,
|
|
498
|
+
isActive: v,
|
|
499
|
+
}
|
|
500
|
+
rs.push(r)
|
|
501
|
+
})
|
|
502
|
+
_rules = rs
|
|
503
|
+
}
|
|
504
|
+
// console.log('expand _rules', cloneDeep(_rules))
|
|
214
505
|
|
|
215
506
|
return {
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
rules: rulesDisplay,
|
|
507
|
+
grups: _grups,
|
|
508
|
+
rules: _rules,
|
|
219
509
|
}
|
|
220
510
|
}
|
|
221
511
|
|
|
@@ -226,8 +516,9 @@ export {
|
|
|
226
516
|
// atParse,
|
|
227
517
|
// atMerge,
|
|
228
518
|
// atRemove,
|
|
519
|
+
getNameNew,
|
|
229
520
|
// getAllBlocks,
|
|
230
|
-
getTreeBlocks,
|
|
521
|
+
// getTreeBlocks,
|
|
231
522
|
// getUserGroups,
|
|
232
523
|
// getTargetsByGroup,
|
|
233
524
|
getUserRules
|