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
@@ -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 find from 'lodash-es/find.js'
7
- import join from 'lodash-es/join.js'
8
- import cloneDeep from 'lodash-es/cloneDeep.js'
9
- import takeRight from 'lodash-es/takeRight.js'
10
- import dropRight from 'lodash-es/dropRight.js'
11
- import sortBy from 'lodash-es/sortBy.js'
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 getAllBlocks(targets) {
24
+ function getNameNew(rows, key = 'name', nameBase = '', nameExt = '') {
23
25
 
24
- //rs
25
- let rs = map(targets, (v) => {
26
-
27
- //text, parentId
28
- let s = sep(v.id, dlm) //[tag:dlm]
29
- let text = get(takeRight(s), 0) //取最後節點
30
- s = dropRight(s, 1)
31
- let parentId = join(s, dlm) //[tag:dlm] 取父節點
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
- return {
34
- ...v,
35
- idTemp: v.id,
36
- parentId,
37
- text,
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
- // console.log('rs', rs)
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 rs
53
+ return nameNew
47
54
  }
48
55
 
49
56
 
50
- function getTreeBlocks(targets) {
57
+ // function getAllBlocks(targets) {
51
58
 
52
- //getAllBlocks
53
- let blocks = getAllBlocks(targets)
54
- // console.log('blocks', blocks)
59
+ // //rs
60
+ // let rs = map(targets, (v) => {
55
61
 
56
- //opt
57
- let opt = {
58
- bindKey: 'id',
59
- bindParent: 'parentId',
60
- bindChildren: 'children',
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
- //composeToTree
65
- let r
66
- try {
67
- r = composeToTree(blocks, opt)
68
- }
69
- catch (err) {
70
- console.log(err)
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
- return r
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
- //userGroups
81
- let ruleGroupsIds = get(user, 'ruleGroupsIds', '')
85
+ // function getTreeBlocks(targets) {
82
86
 
83
- //sep
84
- let s = sep(ruleGroupsIds, ';')
87
+ // //getAllBlocks
88
+ // let blocks = getAllBlocks(targets)
89
+ // // console.log('blocks', blocks)
85
90
 
86
- //gs
87
- let gs = []
88
- each(s, (id) => {
89
- let g = find(ruleGroups, { id })
90
- if (iseobj(g)) {
91
- gs.push(g)
92
- }
93
- })
91
+ // //opt
92
+ // let opt = {
93
+ // bindKey: 'id',
94
+ // bindParent: 'parentId',
95
+ // bindChildren: 'children',
96
+ // saveExtProps: true,
97
+ // }
94
98
 
95
- //add rules
96
- gs = map(gs, (g) => {
97
- let rules = JSON5.parse(g.crules)
98
- g.rules = rules
99
- return g
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
- return gs
103
- }
109
+ // return r
110
+ // }
104
111
 
105
112
 
106
- function getTargetsByGroup(targets, group) {
113
+ // function getUserGroups(user, pemis) {
107
114
 
108
- //cloneDeep
109
- targets = cloneDeep(targets)
115
+ // //userGroups
116
+ // let ruleGroupsIds = get(user, 'ruleGroupsIds', '')
110
117
 
111
- //sortBy
112
- targets = sortBy(targets, 'order')
118
+ // //sep
119
+ // let s = sep(ruleGroupsIds, ';')
113
120
 
114
- //cloneDeep
115
- group = cloneDeep(group)
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
- //rules
118
- let rules = JSON5.parse(group.crules)
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
- //rulesDisplay
121
- let rulesDisplay = {}
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
- //other props
130
- each(targets, (v) => {
141
+ // function getTargetsByGroup(targets, group) {
131
142
 
132
- //krule
133
- let krule = v.id
143
+ // //cloneDeep
144
+ // targets = cloneDeep(targets)
134
145
 
135
- //check
136
- if (!rulesDisplay[krule]) {
137
- rulesDisplay[krule] = {}
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
- //rule
141
- let rule = rules[krule]
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
- //r
144
- let r = null
190
+ // //save
191
+ // rulesDisplay[krule][k] = r //因krule內含有「.」故不能用set
145
192
 
146
- //b
147
- let b = get(rule, `${k}`)
148
- if (b === 'y' || b === 'n') {
149
- r = b
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 = def
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
- return rulesDisplay
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
- function getUserRules(user, ruleGroups, targets) {
168
- //依照使用者所允許之ruleGroups轉出對全部targets權限
253
+ return arr
254
+ }
169
255
 
170
- //ruleGroupsIds
171
- let ruleGroupsIds = get(user, 'ruleGroupsIds', '')
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
- //getUserGroups
174
- let gs = getUserGroups(user, ruleGroups)
175
- // console.log('gs', gs)
274
+ let mergeRules = (rs) => {
176
275
 
177
- //ruleGroupsNames
178
- let ruleGroupsNames = map(gs, 'name')
179
- ruleGroupsNames = join(ruleGroupsNames, ';')
276
+ //ts
277
+ let ts = []
278
+ each(rs, (v) => {
180
279
 
181
- //getTargetsByGroup
182
- let rulesDisplay = {}
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 (!haskey(rulesDisplay, k)) {
189
- rulesDisplay[k] = {}
284
+ if (mode !== 'OR' && mode !== 'AND') {
285
+ return true //跳出換下一個
190
286
  }
191
287
 
192
- //merge
193
- let ks = ['show', 'active']
194
- each(ks, (kk) => {
195
- let bOld = rulesDisplay[k][kk]
196
- let bNew = r[k][kk]
197
- if (bOld === 'y') {
198
- //不用覆寫
199
- }
200
- else {
201
- //需覆寫
202
- if (bNew === 'y') {
203
- rulesDisplay[k][kk] = 'y'
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
- rulesDisplay[k][kk] = 'n'
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('rulesDisplay', rulesDisplay)
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
- ruleGroupsIds,
217
- ruleGroupsNames,
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