@steedos/standard-object-database 2.2.55-beta.16

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 (90) hide show
  1. package/main/default/applications/.gitkeep +0 -0
  2. package/main/default/client/datasources.client.js +7 -0
  3. package/main/default/client/object_fields.client.js +212 -0
  4. package/main/default/client/object_layouts.client.js +86 -0
  5. package/main/default/objectTranslations/_object_reload_logs.en/_object_reload_logs.en.objectTranslation.yml +16 -0
  6. package/main/default/objectTranslations/_object_reload_logs.zh-CN/_object_reload_logs.zh-CN.objectTranslation.yml +16 -0
  7. package/main/default/objectTranslations/datasources.en/datasources.en.objectTranslation.yml +121 -0
  8. package/main/default/objectTranslations/datasources.zh-CN/datasources.zh-CN.objectTranslation.yml +105 -0
  9. package/main/default/objectTranslations/object_actions.en/object_actions.en.objectTranslation.yml +55 -0
  10. package/main/default/objectTranslations/object_actions.zh-CN/object_actions.zh-CN.objectTranslation.yml +50 -0
  11. package/main/default/objectTranslations/object_fields.en/object_fields.en.objectTranslation.yml +335 -0
  12. package/main/default/objectTranslations/object_fields.zh-CN/object_fields.zh-CN.objectTranslation.yml +312 -0
  13. package/main/default/objectTranslations/object_layouts.en/object_layouts.en.objectTranslation.yml +72 -0
  14. package/main/default/objectTranslations/object_layouts.zh-CN/object_layouts.zh-CN.objectTranslation.yml +116 -0
  15. package/main/default/objectTranslations/object_listviews.en/object_listviews.en.objectTranslation.yml +153 -0
  16. package/main/default/objectTranslations/object_listviews.zh-CN/object_listviews.zh-CN.objectTranslation.yml +146 -0
  17. package/main/default/objectTranslations/object_related_list.en/object_related_list.en.objectTranslation.yml +82 -0
  18. package/main/default/objectTranslations/object_related_list.zh-CN/object_related_list.zh-CN.objectTranslation.yml +82 -0
  19. package/main/default/objectTranslations/object_triggers.en/object_triggers.en.objectTranslation.yml +30 -0
  20. package/main/default/objectTranslations/object_triggers.zh-CN/object_triggers.zh-CN.objectTranslation.yml +29 -0
  21. package/main/default/objectTranslations/object_validation_rules.en/object_validation_rules.en.objectTranslation.yml +40 -0
  22. package/main/default/objectTranslations/object_validation_rules.zh-CN/object_validation_rules.zh-CN.objectTranslation.yml +38 -0
  23. package/main/default/objectTranslations/objects.en/objects.en.objectTranslation.yml +219 -0
  24. package/main/default/objectTranslations/objects.zh-CN/objects.zh-CN.objectTranslation.yml +218 -0
  25. package/main/default/objects/0.datasources.observe.object.js +83 -0
  26. package/main/default/objects/0.objects_reload.object.js +26 -0
  27. package/main/default/objects/1.objects.observe.object.js +61 -0
  28. package/main/default/objects/10.tabs.observe.object.js +36 -0
  29. package/main/default/objects/11.restriction_rules.observe.object.js +37 -0
  30. package/main/default/objects/12.share_rules.observe.object.js +37 -0
  31. package/main/default/objects/13.permission_fields.observe.object.js +37 -0
  32. package/main/default/objects/14.object_fields.observe.object.js +44 -0
  33. package/main/default/objects/15.permission_objects.observe.object.js +44 -0
  34. package/main/default/objects/2.object_triggers.observe.object.js +35 -0
  35. package/main/default/objects/3.permission_objects.observe.object.js +29 -0
  36. package/main/default/objects/4.permission_set.observe.object.js +39 -0
  37. package/main/default/objects/5.holidays.observe.object.js +30 -0
  38. package/main/default/objects/6.business_hours.observe.object.js +33 -0
  39. package/main/default/objects/7.object_actions.observe.object.js +43 -0
  40. package/main/default/objects/7.object_layouts.observe.object.js +33 -0
  41. package/main/default/objects/9.apps.observe.object.js +33 -0
  42. package/main/default/objects/_object_reload_logs.object.yml +10 -0
  43. package/main/default/objects/datasources.action.js +51 -0
  44. package/main/default/objects/datasources.core.js +34 -0
  45. package/main/default/objects/datasources.object.js +168 -0
  46. package/main/default/objects/datasources.object.yml +113 -0
  47. package/main/default/objects/object_actions.object.js +152 -0
  48. package/main/default/objects/object_actions.object.yml +142 -0
  49. package/main/default/objects/object_fields.action.js +128 -0
  50. package/main/default/objects/object_fields.function.js +104 -0
  51. package/main/default/objects/object_fields.object.js +501 -0
  52. package/main/default/objects/object_fields.object.yml +690 -0
  53. package/main/default/objects/object_layouts.action.js +31 -0
  54. package/main/default/objects/object_layouts.layouts.action.js +19 -0
  55. package/main/default/objects/object_layouts.object.yml +356 -0
  56. package/main/default/objects/object_listviews.action.js +93 -0
  57. package/main/default/objects/object_listviews.object.js +100 -0
  58. package/main/default/objects/object_listviews.object.yml +309 -0
  59. package/main/default/objects/object_manager.app.todo.yml +11 -0
  60. package/main/default/objects/object_related_list.object.js +110 -0
  61. package/main/default/objects/object_related_list.object.yml +208 -0
  62. package/main/default/objects/object_triggers.core.js +58 -0
  63. package/main/default/objects/object_triggers.object.js +65 -0
  64. package/main/default/objects/object_triggers.object.yml +124 -0
  65. package/main/default/objects/object_validation_rules.action.js +33 -0
  66. package/main/default/objects/object_validation_rules.object.yml +100 -0
  67. package/main/default/objects/objects.action.js +157 -0
  68. package/main/default/objects/objects.core.js +398 -0
  69. package/main/default/objects/objects.erd.data.function.js +85 -0
  70. package/main/default/objects/objects.lib.js +42 -0
  71. package/main/default/objects/objects.object.js +543 -0
  72. package/main/default/objects/objects.object.yml +512 -0
  73. package/main/default/objects/objects.tree.js +58 -0
  74. package/main/default/objects/permission_objects.core.js +75 -0
  75. package/main/default/permissionsets/.gitkeep +0 -0
  76. package/main/default/profiles/.gitkeep +0 -0
  77. package/main/default/tabs/.gitkeep +0 -0
  78. package/main/default/triggers/datasources.trigger.js +93 -0
  79. package/main/default/triggers/object_actions.trigger.js +98 -0
  80. package/main/default/triggers/object_fields.trigger.js +376 -0
  81. package/main/default/triggers/object_layouts.trigger.js +153 -0
  82. package/main/default/triggers/object_listviews.trigger.js +139 -0
  83. package/main/default/triggers/object_triggers.trigger.js +50 -0
  84. package/main/default/triggers/object_validation_rules.trigger.js +80 -0
  85. package/main/default/triggers/objects.trigger.js +136 -0
  86. package/package.json +16 -0
  87. package/package.service.js +75 -0
  88. package/public/.md +3 -0
  89. package/src/.md +3 -0
  90. package/webapp/.md +1 -0
@@ -0,0 +1,512 @@
1
+ name: objects
2
+ icon: orders
3
+ label: Object
4
+ version: 2
5
+ hidden: true
6
+ fields:
7
+ datasource:
8
+ type: master_detail
9
+ label: Datasource
10
+ reference_to: datasources
11
+ showIcon: false
12
+ required: true
13
+ # optionsFunction: !<tag:yaml.org,2002:js/function> |-
14
+ # function(){
15
+ # var options = [{
16
+ # label: t('objects_field_datasource_defaultValue'),
17
+ # value: 'default'}];
18
+ # var spaceDatasources = Creator.getCollection("datasources").find({space: Session.get("spaceId")}, {fields: {_id:1, name: 1, label:1}}).fetch();
19
+ # _.each(spaceDatasources, function(doc){
20
+ # options.push({label: doc.label || doc.name, value: doc._id})
21
+ # })
22
+ # return options;
23
+ # }
24
+ defaultValue: 'default'
25
+ label:
26
+ type: text
27
+ label: Label
28
+ required: true
29
+ is_name: true
30
+ name:
31
+ type: text
32
+ label: API Name
33
+ searchable: true
34
+ index: true
35
+ required: true
36
+ inlineHelpText: Can only contain lowercase letters and numbers, must start with a letter, cannot end with an underscore character or contain two consecutive underscore characters
37
+ icon:
38
+ type: lookup
39
+ label: Icon
40
+ required: true
41
+ optionsFunction: !<tag:yaml.org,2002:js/function> |-
42
+ function () {
43
+ var options;
44
+ options = [];
45
+
46
+ _.forEach(Creator.resources.sldsIcons.standard, function (svg) {
47
+ return options.push({
48
+ value: svg,
49
+ label: svg,
50
+ icon: svg
51
+ });
52
+ });
53
+
54
+ return options;
55
+ }
56
+ is_enable:
57
+ label: Enable
58
+ type: boolean
59
+ defaultValue: true
60
+ in_development:
61
+ type: select
62
+ label: Development State
63
+ inlineHelpText: Developing ( Only administrators can access. )
64
+ options:
65
+ - label: Developing ( Only administrators can access. )
66
+ value: "1"
67
+ - label: Deployed
68
+ value: "0"
69
+ defaultValue: "1"
70
+ required: true
71
+ enable_search:
72
+ type: boolean
73
+ label: Enable Search
74
+ group: Switch
75
+ enable_files:
76
+ type: boolean
77
+ label: Enable Files
78
+ group: Switch
79
+ enable_tasks:
80
+ type: boolean
81
+ label: Enable Tasks
82
+ group: Switch
83
+ enable_notes:
84
+ type: boolean
85
+ label: Enable Notes
86
+ group: Switch
87
+ enable_events:
88
+ type: boolean
89
+ label: Enable Events
90
+ group: Switch
91
+ enable_api:
92
+ type: boolean
93
+ defaultValue: true
94
+ hidden: true
95
+ label: Enable API
96
+ group: Switch
97
+ enable_share:
98
+ type: boolean
99
+ defaultValue: false
100
+ label: Enable Share
101
+ group: Switch
102
+ enable_workflow:
103
+ type: boolean
104
+ label: Enable Workflow
105
+ group: Switch
106
+ enable_instances:
107
+ type: boolean
108
+ label: Enable Instances
109
+ group: Switch
110
+ enable_chatter:
111
+ type: boolean
112
+ label: Enable Chatter
113
+ group: Switch
114
+ enable_inline_edit:
115
+ type: boolean
116
+ defaultValue: true
117
+ label: Enable Single Field Edit
118
+ group: Switch
119
+ enable_tree:
120
+ type: boolean
121
+ label: Enable Tree
122
+ inlineHelpText: Enable a tree structure to display records
123
+ group: Switch
124
+ enable_enhanced_lookup:
125
+ type: boolean
126
+ label: Enable Enhanced Lookup
127
+ inlineHelpText: When enabled, the lookup field associated with this object displays its options as a pop-up window.
128
+ group: Switch
129
+ defaultValue: false
130
+ # enable_trash:
131
+ # type: boolean
132
+ # enable_space_global:
133
+ # type: boolean
134
+ # defaultValue: false
135
+ # enable_web_forms:
136
+ # type: boolean
137
+ # defaultValue: fasle
138
+ # label: Enable Web Forms
139
+ # group: Switch
140
+ # is_view:
141
+ # type: boolean
142
+ # defaultValue: false
143
+ # omit: true
144
+ # hidden:
145
+ # label: 隐藏
146
+ # type: boolean
147
+ # omit: true
148
+ table_name:
149
+ type: text
150
+ label: Table Name
151
+ index: true
152
+ searchable: true
153
+ inlineHelpText: The default data source does not support this property
154
+ group: External data source
155
+ version:
156
+ readonly: true
157
+ label: Version
158
+ type: number
159
+ scale: 0
160
+ defaultValue: 2
161
+ hidden: true
162
+ description:
163
+ label: Description
164
+ type: textarea
165
+ is_wide: true
166
+ sidebar:
167
+ type: object
168
+ label: Sidebar
169
+ blackbox: true
170
+ omit: true
171
+ hidden: true
172
+ fields:
173
+ type: object
174
+ label: Fields
175
+ blackbox: true
176
+ omit: true
177
+ hidden: true
178
+ list_views:
179
+ type: object
180
+ label: ListViews
181
+ blackbox: true
182
+ omit: true
183
+ hidden: true
184
+ actions:
185
+ type: object
186
+ label: Actions
187
+ blackbox: true
188
+ omit: true
189
+ hidden: true
190
+ relatedList:
191
+ type: grid
192
+ label: Related List
193
+ blackbox: true
194
+ omit: true
195
+ hidden: true
196
+ permission_set:
197
+ type: object
198
+ label: Permission Set
199
+ blackbox: true
200
+ omit: true
201
+ hidden: true
202
+ triggers:
203
+ type: object
204
+ label: Triggers
205
+ blackbox: true
206
+ omit: true
207
+ hidden: true
208
+ custom:
209
+ label: Custom
210
+ type: boolean
211
+ omit: true
212
+ hidden: true
213
+ owner:
214
+ type: lookup
215
+ hidden: true
216
+ app_unique_id:
217
+ type: text
218
+ hidden: true
219
+ label: App Unique ID
220
+ app_version:
221
+ type: text
222
+ hidden: true
223
+ label: App Version
224
+ is_system:
225
+ type: boolean
226
+ label: System
227
+ # omit: true
228
+ readonly: true
229
+ visible_on: "{{global.mode ==='read' ? true : false}}"
230
+ disabled: true
231
+ fields_serial_number:
232
+ type: number
233
+ scale: 0
234
+ omit: true
235
+ hidden: true
236
+ disabled: true
237
+ is_deleted:
238
+ hidden: false
239
+ omit: true
240
+ disabled: false
241
+ readonly: false
242
+ reload_time:
243
+ type: datetime
244
+ hidden: true
245
+ omit: true
246
+ disabled: true
247
+ readonly: true
248
+ form:
249
+ type: object
250
+ label: Form Events
251
+ group: script
252
+ blackbox: true
253
+ is_wide: true
254
+ form.onRendered:
255
+ type: code
256
+ language: javascript
257
+ rows: 3
258
+ is_wide: true
259
+ form.onDestroy:
260
+ type: code
261
+ language: javascript
262
+ rows: 3
263
+ is_wide: true
264
+ form.onValuesChange:
265
+ type: code
266
+ language: javascript
267
+ rows: 3
268
+ is_wide: true
269
+ form.initialValues:
270
+ type: code
271
+ language: javascript
272
+ rows: 3
273
+ is_wide: true
274
+ form.validate:
275
+ type: code
276
+ language: javascript
277
+ rows: 3
278
+ is_wide: true
279
+ hidden: true
280
+ form.beforeInsert:
281
+ type: code
282
+ language: javascript
283
+ rows: 3
284
+ is_wide: true
285
+ hidden: true
286
+ form.beforeUpdate:
287
+ type: code
288
+ language: javascript
289
+ rows: 3
290
+ is_wide: true
291
+ hidden: true
292
+ form.beforeDelete:
293
+ type: code
294
+ language: javascript
295
+ rows: 3
296
+ is_wide: true
297
+ form.afterInsert:
298
+ type: code
299
+ language: javascript
300
+ rows: 3
301
+ is_wide: true
302
+ hidden: true
303
+ form.afterUpdate:
304
+ type: code
305
+ language: javascript
306
+ rows: 3
307
+ is_wide: true
308
+ hidden: true
309
+ form.afterDelete:
310
+ type: code
311
+ language: javascript
312
+ rows: 3
313
+ is_wide: true
314
+ form.errorInsert:
315
+ type: code
316
+ language: javascript
317
+ rows: 3
318
+ is_wide: true
319
+ hidden: true
320
+ form.errorUpdate:
321
+ type: code
322
+ language: javascript
323
+ rows: 3
324
+ is_wide: true
325
+ hidden: true
326
+ form.errorDelete:
327
+ type: code
328
+ language: javascript
329
+ rows: 3
330
+ is_wide: true
331
+ hidden: true
332
+ form.beforeView:
333
+ type: code
334
+ language: javascript
335
+ rows: 3
336
+ is_wide: true
337
+ form.afterView:
338
+ type: code
339
+ language: javascript
340
+ rows: 3
341
+ is_wide: true
342
+ form.beforeEdit:
343
+ type: code
344
+ language: javascript
345
+ rows: 3
346
+ is_wide: true
347
+ hidden: true
348
+ form.afterEdit:
349
+ type: code
350
+ language: javascript
351
+ rows: 3
352
+ is_wide: true
353
+ hidden: true
354
+ paging:
355
+ enabled: false
356
+ relatedList:
357
+ - objectName: object_fields
358
+ columns:
359
+ - label
360
+ - name
361
+ - type
362
+ - object
363
+ - group
364
+ - sort_no
365
+ - objectName: object_listviews
366
+ columns:
367
+ - label
368
+ - name
369
+ - shared
370
+ - owner
371
+ - objectName: object_actions
372
+ columns:
373
+ - label
374
+ - name
375
+ - object
376
+ - 'on'
377
+ - is_enable
378
+ - objectName: object_layouts
379
+ columns:
380
+ - label
381
+ - name
382
+ - object_name
383
+ - profiles
384
+ - permission_objects
385
+ - object_workflows
386
+ - process_definition
387
+ - object_validation_rules
388
+ - restriction_rules
389
+ - share_rules
390
+ - process
391
+ list_views:
392
+ all:
393
+ columns:
394
+ - label
395
+ - name
396
+ # - table_name
397
+ # - datasource
398
+ - in_development
399
+ - is_enable
400
+ - is_system
401
+ label: All
402
+ filter_scope: space
403
+ extra_columns:
404
+ - datasource
405
+ - fields
406
+ - is_deleted
407
+ customize:
408
+ columns:
409
+ - label
410
+ - name
411
+ # - table_name
412
+ # - datasource
413
+ - in_development
414
+ - is_enable
415
+ - is_system
416
+ label: Customize
417
+ filters:
418
+ - ["is_system","<>",true]
419
+ filter_scope: space
420
+ extra_columns:
421
+ - datasource
422
+ - fields
423
+ - is_deleted
424
+ system:
425
+ columns:
426
+ - label
427
+ - name
428
+ # - table_name
429
+ # - datasource
430
+ - in_development
431
+ - is_enable
432
+ - is_system
433
+ label: System
434
+ filters:
435
+ - ["is_system","=",true]
436
+ filter_scope: space
437
+ extra_columns:
438
+ - datasource
439
+ - fields
440
+ - is_deleted
441
+ deleted:
442
+ columns:
443
+ - label
444
+ - name
445
+ # - table_name
446
+ # - datasource
447
+ - in_development
448
+ - is_enable
449
+ - is_system
450
+ label: Deleted
451
+ filters:
452
+ - ["is_system","<>",true]
453
+ - ["is_deleted","=",true]
454
+ filter_scope: space
455
+ extra_columns:
456
+ - datasource
457
+ - fields
458
+ - is_deleted
459
+ actions:
460
+ show_object:
461
+ label: Preview
462
+ on: record
463
+ copy_odata:
464
+ label: Copy OData URL
465
+ on: record
466
+ createDefaultRecordView:
467
+ on: record_only_more
468
+ label: 创建默认页面布局
469
+ standard_delete:
470
+ label: Delete
471
+ visible: false
472
+ delete_object:
473
+ on: record_more
474
+ label: 删除
475
+ # export:
476
+ # label: Export
477
+ # visible: true
478
+ # on: record
479
+ form:
480
+ afterInsert: !!js/function |
481
+ function(){
482
+ $("body").addClass('loading');
483
+ setTimeout(function(){
484
+ window.location.reload();
485
+ }, 2500);
486
+ }
487
+ afterView: !!js/function |
488
+ function(){
489
+ $("div", $(".crm-header-title")).css("display", "inline");
490
+ window.stores.API.client.sobject(this.doc.name).getConfig().then((res)=>{
491
+ if(!res.idFieldName){
492
+ return $(".crm-header-title").append('<span class="text-xs inline-block py-1 px-2.5 leading-none text-center whitespace-nowrap align-baseline font-bold bg-red-600 text-white rounded">'+TAPi18n.__("请配置主键字段")+'</span>')
493
+ }
494
+ }).catch(function(err){
495
+ return console.error(err.message);
496
+ });
497
+ }
498
+ permission_set:
499
+ user:
500
+ allowCreate: false
501
+ allowDelete: false
502
+ allowEdit: false
503
+ allowRead: true
504
+ modifyAllRecords: false
505
+ viewAllRecords: true
506
+ admin:
507
+ allowCreate: true
508
+ allowDelete: true
509
+ allowEdit: true
510
+ allowRead: true
511
+ modifyAllRecords: true
512
+ viewAllRecords: true
@@ -0,0 +1,58 @@
1
+ /*
2
+ * @Author: yinlianghui@steedos.com
3
+ * @Date: 2022-04-13 10:31:03
4
+ * @LastEditors: yinlianghui@steedos.com
5
+ * @LastEditTime: 2022-05-24 14:03:39
6
+ * @Description:
7
+ */
8
+ var objectql = require('@steedos/objectql');
9
+
10
+ async function insertParentAndChildrenFieldForTreeObject(doc, needToCheckExists){
11
+ const baseProps = {
12
+ object: doc.name,
13
+ reference_to: doc.name,
14
+ type: 'lookup',
15
+ owner: doc.owner,
16
+ space: doc.space,
17
+ created_by: doc.created_by,
18
+ modified_by: doc.modified_by,
19
+ company_id: doc.company_id,
20
+ company_ids: doc.company_ids
21
+ }
22
+ let isParentFieldExists = false;
23
+ let isChildrenFieldExists = false;
24
+ if(needToCheckExists){
25
+ const object = await objectql.getObject(doc.name);
26
+ const fields = object.toConfig().fields;
27
+ isParentFieldExists = _.has(fields,'parent');
28
+ isChildrenFieldExists = _.has(fields,'children');
29
+ }
30
+ let docs = [];
31
+ if(!isParentFieldExists){
32
+ docs.push(
33
+ {
34
+ _name: 'parent',
35
+ label: '父' + doc.label,
36
+ ...baseProps
37
+ }
38
+ )
39
+ }
40
+ if(!isChildrenFieldExists){
41
+ docs.push(
42
+ {
43
+ _name: 'children',
44
+ label: '子' + doc.label,
45
+ multiple: true,
46
+ visible_on: "{{false}}",
47
+ ...baseProps
48
+ }
49
+ )
50
+ }
51
+ _.each(docs, async (item)=>{
52
+ await objectql.getObject('object_fields').insert(item);
53
+ })
54
+ }
55
+
56
+ module.exports = {
57
+ insertParentAndChildrenFieldForTreeObject
58
+ }
@@ -0,0 +1,75 @@
1
+ var objectql = require('@steedos/objectql');
2
+ var objectCore = require('./objects.lib.js');
3
+ var _ = require('lodash');
4
+
5
+ function loadObjectPermission(doc){
6
+ var dbObject = objectCore.getObjectFromDB(doc.object_name);
7
+ var objectDataSourceName = objectCore.getDataSourceName(dbObject);
8
+ try {
9
+ if(_.includes(['admin', 'user', 'customer', 'supplier'], doc.permission_set_id)){
10
+ doc.name = doc.permission_set_id
11
+ }else{
12
+ const record = Creator.getCollection("permission_set").findOne(doc.permission_set_id);
13
+ if(record){
14
+ doc.name = record.name;
15
+ }else{
16
+ throw new Error(`Not found permission_set: ${doc.permission_set_id}`);
17
+ }
18
+ }
19
+ objectql.addPermissionConfig(doc.object_name, doc);
20
+ } catch (error) {
21
+ console.error(error)
22
+ }
23
+
24
+ if(!dbObject){
25
+ try {
26
+ objectDataSourceName = objectql.getObject(doc.object_name).datasource.name;
27
+ } catch (error) {
28
+ // console.warn('warn: Not loaded. Invalid custom permission_objects -> ', doc.name, doc.object_name);
29
+ return;
30
+ }
31
+ }
32
+
33
+ if(dbObject && !objectCore.canLoadObject(dbObject.name, objectDataSourceName)){
34
+ // console.warn('warn: Not loaded. Invalid custom permission_objects -> ', doc.name, doc.object_name);
35
+ return;
36
+ }
37
+ const pset = Creator.getCollection("permission_set").findOne({_id: doc.permission_set_id, space: doc.space});
38
+ if(pset){
39
+ const datasource = objectql.getDataSource(objectDataSourceName);
40
+ if(datasource){
41
+ datasource.setObjectSpacePermission(doc.object_name, doc.space, Object.assign({}, doc, {name: pset.name}));
42
+ }
43
+ }
44
+
45
+ }
46
+
47
+ function removeObjectPermission(doc){
48
+ var dbObject = objectCore.getObjectFromDB(doc.object_name);
49
+ var objectDataSourceName = objectCore.getDataSourceName(dbObject);
50
+
51
+ if(!dbObject){
52
+ try {
53
+ objectDataSourceName = objectql.getObject(doc.object_name).datasource.name;
54
+ } catch (error) {
55
+ console.warn('warn: Not loaded. Invalid custom permission_objects -> ', doc.name, doc.object_name);
56
+ return;
57
+ }
58
+ }
59
+
60
+ if(dbObject && !objectCore.canLoadObject(dbObject.name, objectDataSourceName)){
61
+ console.warn('warn: Not deleted. Invalid custom permission_objects -> ', doc.name);
62
+ return;
63
+ }
64
+ const pset = Creator.getCollection("permission_set").findOne({_id: doc.permission_set_id, space: doc.space});
65
+ if(pset){
66
+ const datasource = objectql.getDataSource(objectDataSourceName);
67
+ if(datasource){
68
+ datasource.removeObjectSpacePermission(doc.object_name, doc.space, pset.name)
69
+ }
70
+ }
71
+ }
72
+
73
+ module.exports = {
74
+ loadObjectPermission,removeObjectPermission
75
+ }
File without changes
File without changes
File without changes