@steedos/objectql 2.2.50 → 2.2.51-beta.4

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 (143) hide show
  1. package/lib/services/helpers/graphql/consts.d.ts +17 -0
  2. package/lib/services/helpers/graphql/consts.js +28 -0
  3. package/lib/services/helpers/graphql/consts.js.map +1 -0
  4. package/lib/services/helpers/graphql/getQueryFields.js +17 -2
  5. package/lib/services/helpers/graphql/getQueryFields.js.map +1 -1
  6. package/lib/services/helpers/graphql/index.d.ts +1 -1
  7. package/lib/services/helpers/graphql/index.js +31 -46
  8. package/lib/services/helpers/graphql/index.js.map +1 -1
  9. package/lib/util/index.js +7 -0
  10. package/lib/util/index.js.map +1 -1
  11. package/package.json +11 -12
  12. package/src/actions/field_updates.ts +0 -118
  13. package/src/actions/index.ts +0 -3
  14. package/src/actions/types/field_update_target.ts +0 -7
  15. package/src/actions/types/workflow_notification.ts +0 -9
  16. package/src/actions/types/workflow_rule.ts +0 -11
  17. package/src/actions/workflow_notifications.ts +0 -81
  18. package/src/actions/workflow_rule.ts +0 -136
  19. package/src/driver/driver.ts +0 -102
  20. package/src/driver/field-encrytion/index.ts +0 -8
  21. package/src/driver/field-encrytion/sharedconst.ts +0 -34
  22. package/src/driver/fieldDBType.ts +0 -14
  23. package/src/driver/format.ts +0 -36
  24. package/src/driver/index.ts +0 -20
  25. package/src/driver/metadata.ts +0 -226
  26. package/src/driver/meteorMongo.ts +0 -639
  27. package/src/driver/mongo.ts +0 -416
  28. package/src/driver/mysql.ts +0 -47
  29. package/src/driver/oracle.ts +0 -60
  30. package/src/driver/postgres.ts +0 -46
  31. package/src/driver/sqlite3.ts +0 -40
  32. package/src/driver/sqlserver.ts +0 -52
  33. package/src/dynamic-load/actions.ts +0 -146
  34. package/src/dynamic-load/approval_process.ts +0 -73
  35. package/src/dynamic-load/button.ts +0 -75
  36. package/src/dynamic-load/chart.ts +0 -22
  37. package/src/dynamic-load/client_script.ts +0 -65
  38. package/src/dynamic-load/field.ts +0 -77
  39. package/src/dynamic-load/flow_role.ts +0 -46
  40. package/src/dynamic-load/index.ts +0 -21
  41. package/src/dynamic-load/layout.ts +0 -53
  42. package/src/dynamic-load/listview.ts +0 -57
  43. package/src/dynamic-load/method.ts +0 -63
  44. package/src/dynamic-load/object_translations.ts +0 -61
  45. package/src/dynamic-load/originalObject.ts +0 -8
  46. package/src/dynamic-load/package.ts +0 -312
  47. package/src/dynamic-load/page.ts +0 -23
  48. package/src/dynamic-load/permission.ts +0 -71
  49. package/src/dynamic-load/permissionset.ts +0 -78
  50. package/src/dynamic-load/preload_data.ts +0 -104
  51. package/src/dynamic-load/profile.ts +0 -90
  52. package/src/dynamic-load/query.ts +0 -22
  53. package/src/dynamic-load/restrictionRules.ts +0 -23
  54. package/src/dynamic-load/role.ts +0 -46
  55. package/src/dynamic-load/shareRules.ts +0 -23
  56. package/src/dynamic-load/tab.ts +0 -17
  57. package/src/dynamic-load/tabs.ts +0 -13
  58. package/src/dynamic-load/translations.ts +0 -54
  59. package/src/dynamic-load/trigger.ts +0 -236
  60. package/src/dynamic-load/validation_rule.ts +0 -77
  61. package/src/dynamic-load/workflow.ts +0 -114
  62. package/src/errors/index.ts +0 -111
  63. package/src/formula/core.ts +0 -490
  64. package/src/formula/field_formula.ts +0 -107
  65. package/src/formula/index.ts +0 -81
  66. package/src/formula/params.ts +0 -197
  67. package/src/formula/recompute.ts +0 -65
  68. package/src/formula/simple_params.ts +0 -92
  69. package/src/formula/type.ts +0 -107
  70. package/src/formula/util.ts +0 -207
  71. package/src/index.ts +0 -24
  72. package/src/metadata-register/_base.ts +0 -85
  73. package/src/metadata-register/app.ts +0 -30
  74. package/src/metadata-register/chart.ts +0 -9
  75. package/src/metadata-register/index.ts +0 -123
  76. package/src/metadata-register/layout.ts +0 -38
  77. package/src/metadata-register/object.ts +0 -68
  78. package/src/metadata-register/page.ts +0 -9
  79. package/src/metadata-register/permissionFields.ts +0 -13
  80. package/src/metadata-register/permissionset.ts +0 -25
  81. package/src/metadata-register/process.ts +0 -16
  82. package/src/metadata-register/processTrigger.ts +0 -24
  83. package/src/metadata-register/profile.ts +0 -25
  84. package/src/metadata-register/query.ts +0 -9
  85. package/src/metadata-register/restrictionRules.ts +0 -12
  86. package/src/metadata-register/shareRules.ts +0 -13
  87. package/src/metadata-register/tab.ts +0 -9
  88. package/src/metadata-register/tabs.ts +0 -43
  89. package/src/services/datasourceServiceFactory.ts +0 -55
  90. package/src/services/helpers/graphql/getPrimaryFieldType.ts +0 -48
  91. package/src/services/helpers/graphql/getQueryFields.ts +0 -36
  92. package/src/services/helpers/graphql/index.ts +0 -681
  93. package/src/services/helpers/rest.ts +0 -57
  94. package/src/services/index.ts +0 -13
  95. package/src/services/objectService.ts +0 -846
  96. package/src/services/objectServiceDispatcher.ts +0 -209
  97. package/src/services/objectServiceFactory.ts +0 -29
  98. package/src/summary/core.ts +0 -263
  99. package/src/summary/field_summary.ts +0 -71
  100. package/src/summary/index.ts +0 -96
  101. package/src/summary/recompute.ts +0 -31
  102. package/src/summary/type.ts +0 -60
  103. package/src/ts-types/index.ts +0 -3
  104. package/src/ts-types/permissionset.ts +0 -8
  105. package/src/ts-types/profile.ts +0 -11
  106. package/src/ts-types/triggerActionParams.ts +0 -22
  107. package/src/typeorm/driver.ts +0 -379
  108. package/src/typeorm/index.ts +0 -3
  109. package/src/typeorm/util.ts +0 -147
  110. package/src/types/action.ts +0 -52
  111. package/src/types/app.ts +0 -280
  112. package/src/types/config.ts +0 -152
  113. package/src/types/connection.ts +0 -87
  114. package/src/types/dashboard.ts +0 -91
  115. package/src/types/datasource.ts +0 -570
  116. package/src/types/field.ts +0 -370
  117. package/src/types/field_permission.ts +0 -42
  118. package/src/types/field_types.ts +0 -1
  119. package/src/types/index.ts +0 -21
  120. package/src/types/list_view.ts +0 -56
  121. package/src/types/listeners.ts +0 -18
  122. package/src/types/object.ts +0 -2076
  123. package/src/types/object_dynamic_load.ts +0 -426
  124. package/src/types/object_events.ts +0 -43
  125. package/src/types/object_layouts.ts +0 -20
  126. package/src/types/object_permission.ts +0 -134
  127. package/src/types/query.ts +0 -28
  128. package/src/types/report.ts +0 -128
  129. package/src/types/restrictionRule.ts +0 -57
  130. package/src/types/schema.ts +0 -273
  131. package/src/types/shareRule.ts +0 -57
  132. package/src/types/trigger.ts +0 -88
  133. package/src/types/userSession.ts +0 -45
  134. package/src/types/validation_rules.ts +0 -29
  135. package/src/util/convert.ts +0 -131
  136. package/src/util/field.ts +0 -93
  137. package/src/util/function_expression.ts +0 -63
  138. package/src/util/index.ts +0 -1058
  139. package/src/util/locale.ts +0 -24
  140. package/src/util/permission_shares.ts +0 -25
  141. package/src/util/suffix.ts +0 -78
  142. package/src/util/transform.ts +0 -239
  143. package/src/validators/index.ts +0 -36
@@ -1,63 +0,0 @@
1
- import { SteedosActionTypeConfig } from '../types'
2
- import { Dictionary, JsonMap } from '@salesforce/ts-types';
3
- import { getObjectConfig } from '../types'
4
- import _ = require('lodash');
5
- var util = require('../util');
6
- var clone = require('clone');
7
-
8
- const _lazyLoadMethods: Dictionary<any> = {};
9
-
10
- const addLazyLoadMethods = function(objectName: string, json: SteedosActionTypeConfig){
11
- if(!_lazyLoadMethods[objectName]){
12
- _lazyLoadMethods[objectName] = []
13
- }
14
- _lazyLoadMethods[objectName].push(json)
15
- }
16
-
17
- const getLazyLoadMethods = function(objectName: string){
18
- return _lazyLoadMethods[objectName]
19
- }
20
-
21
- export const loadObjectLazyMethods = function(objectName: string){
22
- let methods = getLazyLoadMethods(objectName);
23
- _.each(methods, function(methods){
24
- addObjectMethodConfig(clone(methods));
25
- })
26
- }
27
-
28
- export const addObjectMethodConfig = (json: JsonMap)=>{
29
- if (!json.listenTo) {
30
- throw new Error('missing attribute listenTo')
31
- }
32
-
33
- if (!_.isString(json.listenTo) && !_.isFunction(json.listenTo)) {
34
- throw new Error('listenTo must be a function or string')
35
- }
36
-
37
- let object_name = '';
38
-
39
- if (_.isString(json.listenTo)) {
40
- object_name = json.listenTo
41
- } else if (_.isFunction(json.listenTo)) {
42
- object_name = json.listenTo()
43
- }
44
-
45
- let object = getObjectConfig(object_name);
46
- if (object) {
47
- if(!object.methods){
48
- object.methods = {}
49
- }
50
- delete json.listenTo
51
-
52
- Object.assign(object.methods, json);
53
-
54
- }
55
- addLazyLoadMethods(object_name, Object.assign({}, json, {listenTo: object_name}));
56
- }
57
-
58
- export const loadObjectMethods = function (filePath: string){
59
- let methods = util.loadMethods(filePath)
60
- _.each(methods, (json: JsonMap) => {
61
- addObjectMethodConfig(json);
62
- })
63
- }
@@ -1,61 +0,0 @@
1
- /*
2
- * @Author: baozhoutao@steedos.com
3
- * @Date: 2022-03-28 09:35:34
4
- * @LastEditors: baozhoutao@steedos.com
5
- * @LastEditTime: 2022-06-18 10:36:17
6
- * @Description:
7
- */
8
- import { getSteedosSchema } from '../types/schema';
9
- import path = require('path');
10
- import * as _ from 'underscore';
11
- import { map, defaultsDeep, each, filter, reverse } from 'lodash';
12
- var util = require('../util');
13
-
14
- // const addObjectsTranslation = async (objectApiName, data)=>{
15
- // return await getSteedosSchema().metadataBroker?.call('translations.addObjectTranslation', {
16
- // objectApiName, data
17
- // })
18
- // }
19
-
20
- const addObjectTranslations = async (data) => {
21
- return await getSteedosSchema().metadataBroker?.call('translations.addObjectTranslations', {
22
- data
23
- })
24
- }
25
-
26
- export const addObjectTranslationsFiles = async (filePath: string)=>{
27
- if(!path.isAbsolute(filePath)){
28
- throw new Error(`${filePath} must be an absolute path`);
29
- }
30
-
31
- let objectTranslations = util.loadObjectTranslations(filePath)
32
- // for (const element of objectTranslations) {
33
- // try {
34
- // await addObjectsTranslation(element.objectApiName, element)
35
- // } catch (error) {
36
- // console.error(`addObjectsTranslation error`, error.message)
37
- // }
38
- // }
39
- if (objectTranslations && objectTranslations.length > 0) {
40
- await addObjectTranslations(objectTranslations);
41
- }
42
- }
43
-
44
- export const getObjectTranslations = async ()=>{
45
- const objectsTranslations = await getSteedosSchema().metadataBroker.call('translations.getObjectTranslations');
46
- const objectTranslationsTemplates = await getSteedosSchema().metadataBroker.call('translations.getObjectTranslationTemplates');
47
-
48
- const results = [];
49
-
50
- map(objectTranslationsTemplates, ({metadata: defaultTranslation})=>{
51
- each(['zh-CN', 'en'], (lng)=>{
52
- let objectTranslation = {};
53
- const objectTranslations: Array<any> = filter(objectsTranslations, {lng: lng, objectApiName: defaultTranslation.objectApiName});
54
- if(objectTranslations.length > 0){
55
- objectTranslation = defaultsDeep(objectTranslation, ...(reverse(objectTranslations)))
56
- }
57
- results.push(defaultsDeep({ lng: lng }, objectTranslation, defaultTranslation));
58
- })
59
- });
60
- return results;
61
- }
@@ -1,8 +0,0 @@
1
- import { getOriginalObjectConfig } from '../types';
2
-
3
- var util = require('../util');
4
-
5
- export function overrideOriginalObject(objectName, data){
6
- const originalObjectConfig = getOriginalObjectConfig(objectName);
7
- util.extend(originalObjectConfig, data);
8
- }
@@ -1,312 +0,0 @@
1
- import _ = require('lodash');
2
- import { getLazyLoadFields } from './field';
3
- import { getLazyLoadButtons } from './button';
4
- import { addObjectConfig } from '../types/object_dynamic_load';
5
- import { addPermissionConfig, getLazyLoadPermissions, loadObjectMethods, loadObjectTriggers } from '../dynamic-load'
6
- import { getSteedosSchema } from '../types'
7
- import { objectToJson } from '../util/convert';
8
- import { registerPermissionFields } from '..';
9
- var util = require('../util');
10
- var clone = require('clone');
11
- // let Fiber = require('fibers');
12
- declare var Creator: any;
13
-
14
- /***
15
- * 此文件应该迁移到metadata/core中:系统的结构为所有元数据加载都有metadata/core处理,这样metadata的处理就集中了,规则也就一致了,目前metadata core、objectql各自维护一套。
16
- */
17
- const getListenTo = function (json) {
18
- if (!json.listenTo) {
19
- console.log('json', json);
20
- throw new Error('missing attribute listenTo');
21
- }
22
-
23
- if (!_.isString(json.listenTo) && !_.isFunction(json.listenTo)) {
24
- throw new Error('listenTo must be a function or string')
25
- }
26
-
27
- let listenTo: string = '';
28
-
29
- if (_.isString(json.listenTo)) {
30
- listenTo = json.listenTo
31
- } else if (_.isFunction(json.listenTo)) {
32
- listenTo = json.listenTo()
33
- }
34
- return listenTo;
35
- }
36
-
37
- const loadPackageObjects = function (filePath: string) {
38
- const objectJsons = util.loadObjects(filePath);
39
- return objectJsons;
40
- }
41
-
42
- const loadPackageFields = function (filePath: string) {
43
- const fieldJsons = util.loadFields(filePath);
44
- return fieldJsons;
45
- }
46
-
47
- const loadPackageListViews = function (filePath: string) {
48
- let listViewJsons = util.loadListViews(filePath);
49
- return listViewJsons;
50
- }
51
-
52
- const loadPackageButtons = function (filePath: string) {
53
- let buttonJsons = util.loadButtons(filePath);
54
- return buttonJsons;
55
- }
56
-
57
- const loadPackageActions = function (filePath: string) {
58
- let actions = util.loadActions(filePath);
59
- return _.map(actions, actionToMetadata);
60
- }
61
-
62
- const loadPackageActionScripts = function (filePath: string) {
63
- let buttonScripts = util.loadButtonScripts(filePath);
64
- return _.map(buttonScripts, actionToMetadata);
65
- }
66
-
67
- const actionToMetadata = (config) => {
68
- const actions = {};
69
- let object_name = getListenTo(config);
70
- const keys = _.keys(config);
71
- _.each(keys, (key) => {
72
- if (key.endsWith('Visible')) {
73
- if (_.isFunction(config[key])) {
74
- const _key = key.replace(/(.*)Visible/, '$1');
75
- if (!actions[_key]) {
76
- actions[_key] = {};
77
- }
78
- actions[_key]._visible = config[key].toString();
79
- }
80
- } else {
81
- if (_.isFunction(config[key])) {
82
- if (!actions[key]) {
83
- actions[key] = {};
84
- }
85
- actions[key].todo = config[key].toString();
86
- actions[key]._todo = config[key].toString();
87
- }
88
- }
89
- })
90
- return { object_name, actions };
91
- }
92
-
93
- const loadPackagePermissions = function (filePath: string) {
94
- let permissions = util.loadPermissions(filePath);
95
- return _.map(permissions, (permission) => {
96
- delete permission.field_permissions;
97
- return permission;
98
- });
99
- }
100
-
101
- const registerPackageFieldPermissions = async function (filePath: string, broker, serviceName: string) {
102
- let permissions = util.loadPermissions(filePath);
103
- permissions.forEach(permission => {
104
- addPermissionConfig(permission.object_name, permission);
105
- });
106
-
107
- const data = [];
108
-
109
- for (const permission of permissions) {
110
- const { field_permissions } = permission;
111
- if (field_permissions && _.isArray(field_permissions) && field_permissions.length > 0) {
112
- for (const field_permission of field_permissions) {
113
- data.push({
114
- "name": `${permission.name}.${permission.object_name}.${field_permission.field}`,
115
- "permission_set_id": permission.name,
116
- "permission_object": `${permission.name}_${permission.object_name}`,
117
- "object_name": permission.object_name,
118
- "field": field_permission.field,
119
- "readable": field_permission.readable,
120
- "editable": field_permission.editable,
121
- "is_system": true,
122
- })
123
- }
124
- }
125
- }
126
- if (data.length > 0) {
127
- return await registerPermissionFields.mregister(broker, serviceName, data);
128
- }
129
- }
130
-
131
- async function addObjectConfigs(broker, serviceName, objectConfigs) {
132
- let metadatas = clone(objectConfigs);
133
- _.map(metadatas, (metadata) => {
134
- delete metadata.triggers;
135
- delete metadata.listeners;
136
- delete metadata.methods;
137
- objectToJson(metadata);
138
- })
139
- const res = await broker.call("objects.addConfigs", { data: metadatas }, {
140
- meta: {
141
- metadataServiceName: serviceName,
142
- caller: {
143
- nodeID: broker.nodeID
144
- }
145
- }
146
- });
147
- return res;
148
- }
149
-
150
- /**
151
- * 加载软件包下的所有元数据
152
- * 1 在内存中合并所有对象元数据并发送: object.yml 、field.yml、.listview.yml、.button.yml、TODO .action.yml
153
- * 2 TODO 其他元数据发送
154
- * @param packagePath 软件包路径
155
- * @param datasource 软件数据源
156
- * @param serviceName 软件包服务名称
157
- */
158
- export const loadPackageMetadatas = async function (packagePath: string, datasource: string, serviceName?: string) {
159
- let packageObjects = loadPackageObjects(packagePath);
160
- const packageFields = loadPackageFields(packagePath);
161
- const packageListviews = loadPackageListViews(packagePath);
162
- const packageButtons = loadPackageButtons(packagePath);
163
- const packageActions = loadPackageActions(packagePath);
164
- const packageActionScripts = loadPackageActionScripts(packagePath);
165
- const packagePermissions = loadPackagePermissions(packagePath);
166
-
167
- const packageObjectApiNames = _.map(packageObjects, 'name');
168
-
169
- packageObjects = _.map(packageObjects, (packageObject) => {
170
- _.map(packageFields, (field) => {
171
- if (field && field.object_name == packageObject.name) {
172
- packageObject = _.defaultsDeep(packageObject, { fields: { [field.name]: field } }, packageObject);
173
- }
174
- })
175
- _.map(packageListviews, (listview) => {
176
- if (listview && listview.object_name == packageObject.name) {
177
- packageObject = _.defaultsDeep(packageObject, { list_views: { [listview.name]: listview } }, packageObject);
178
- }
179
- })
180
-
181
- _.map(packageButtons, (button) => {
182
- if (button && button.object_name == packageObject.name) {
183
- packageObject = _.defaultsDeep(packageObject, { actions: { [button.name]: button } }, packageObject);
184
- }
185
- })
186
-
187
- _.map(packageActions, (action) => {
188
- if (action && action.object_name == packageObject.name) {
189
- packageObject = _.defaultsDeep(packageObject, { actions: action.actions }, packageObject);
190
- }
191
- })
192
-
193
- _.map(packageActionScripts, (actionScript) => {
194
- if (actionScript && actionScript.object_name == packageObject.name) {
195
- packageObject = _.defaultsDeep(packageObject, { actions: actionScript.actions }, packageObject);
196
- }
197
- })
198
-
199
- _.map(packagePermissions, (permission) => {
200
- if (permission && permission.object_name == packageObject.name) {
201
- packageObject = _.defaultsDeep(packageObject, { permission_set: { [permission.name]: permission } }, packageObject);
202
- }
203
- })
204
- return packageObject;
205
- })
206
- for (const element of packageObjects) {
207
- if (datasource) {
208
- element.datasource = datasource
209
- }
210
- if (!element.extend) {
211
- element.isMain = true;
212
- }
213
- let startNo = 10;
214
- _.each(element.fields, function (field) {
215
- if (!_.has(field, 'sort_no')) {
216
- field.sort_no = startNo;
217
- startNo = startNo + 10;
218
- }
219
- })
220
- if (!element.fields) {
221
- element.fields = {}
222
- }
223
- _.each(getLazyLoadFields(element.name), function (field) {
224
- util.extend(element.fields, { [field.name]: field })
225
- })
226
- if (!element.actions) {
227
- element.actions = {}
228
- }
229
- _.each(getLazyLoadButtons(element.name), function (action) {
230
- util.extend(element.actions, { [action.name]: action })
231
- })
232
- let _mf = _.maxBy(_.values(element.fields), function (field) { return field.sort_no; });
233
- if (_mf && element.name) {
234
- element.fields_serial_number = _mf.sort_no + 10;
235
- }
236
-
237
- if (!element.permission_set) {
238
- element.permission_set = {}
239
- }
240
- _.each(getLazyLoadPermissions(element.name), function (permission) {
241
- util.extend(element.permission_set, {[permission.name]: permission})
242
- })
243
-
244
- addObjectConfig(element, datasource, null);
245
- }
246
-
247
- loadObjectTriggers(packagePath, serviceName);
248
- //此功能不支持微服务模式
249
- loadObjectMethods(packagePath);
250
-
251
- await addObjectConfigs(getSteedosSchema().metadataBroker, serviceName, packageObjects);
252
- if (serviceName) {
253
- for await (const packageField of packageFields) {
254
- if (packageField && !_.includes(packageObjectApiNames, packageField.object_name)) {
255
-
256
- await getSteedosSchema().metadataRegister.addObjectConfig(serviceName, Object.assign({ extend: packageField.object_name }, {
257
- fields: {
258
- [packageField.name]: packageField
259
- }
260
- }));
261
- }
262
- }
263
-
264
- for await (const packageListview of packageListviews) {
265
- if (packageListview && !_.includes(packageObjectApiNames, packageListview.object_name)) {
266
- await getSteedosSchema().metadataRegister.addObjectConfig(serviceName, Object.assign({ extend: packageListview.object_name }, {
267
- list_views: {
268
- [packageListview.name]: packageListview
269
- }
270
- }));
271
- }
272
- }
273
-
274
- for await (const packageButton of packageButtons) {
275
- if (packageButton && !_.includes(packageObjectApiNames, packageButton.object_name)) {
276
- await getSteedosSchema().metadataRegister.addObjectConfig(serviceName, Object.assign({ extend: packageButton.object_name }, {
277
- actions: {
278
- [packageButton.name]: packageButton
279
- }
280
- }));
281
- }
282
- }
283
-
284
- for await (const packageAction of packageActions) {
285
- if (packageAction && !_.includes(packageObjectApiNames, packageAction.object_name)) {
286
- await getSteedosSchema().metadataRegister.addObjectConfig(serviceName, Object.assign({ extend: packageAction.object_name }, {
287
- actions: packageAction.actions
288
- }));
289
- }
290
- }
291
-
292
- for await (const packageActionScript of packageActionScripts) {
293
- if (packageActionScript && !_.includes(packageObjectApiNames, packageActionScript.object_name)) {
294
- await getSteedosSchema().metadataRegister.addObjectConfig(serviceName, Object.assign({ extend: packageActionScript.object_name }, {
295
- actions: packageActionScript.actions
296
- }));
297
- }
298
- }
299
-
300
- for await (const permission of packagePermissions) {
301
- if (permission && !_.includes(packageObjectApiNames, permission.object_name)) {
302
- await getSteedosSchema().metadataRegister.addObjectConfig(serviceName, Object.assign({ extend: permission.object_name }, {
303
- permission_set: {
304
- [permission.name]: permission
305
- }
306
- }));
307
- }
308
- }
309
- }
310
-
311
- await registerPackageFieldPermissions(packagePath, getSteedosSchema().metadataBroker, packagePath)
312
- }
@@ -1,23 +0,0 @@
1
- import { LoadPageFile } from '@steedos/metadata-core';
2
- import { registerPage } from '../metadata-register/page';
3
- import { getSteedosSchema } from '../types'
4
- const loadPageFile = new LoadPageFile();
5
-
6
- export const registerPackagePages = async (packagePath: string, packageServiceName: string)=>{
7
- const pages = loadPageFile.load(packagePath);
8
- const schema = getSteedosSchema();
9
- const data = [];
10
- for (const apiName in pages) {
11
- const page = pages[apiName];
12
- data.push(Object.assign(page, {
13
- is_system: true, record_permissions: {
14
- allowEdit: false,
15
- allowDelete: false,
16
- allowRead: true,
17
- }}))
18
-
19
- }
20
- if (data.length > 0) {
21
- await registerPage.mregister(schema.broker, packageServiceName, data)
22
- }
23
- }
@@ -1,71 +0,0 @@
1
- import { Dictionary } from '@salesforce/ts-types';
2
- import { getObjectConfig, getSteedosSchema, SteedosObjectPermissionTypeConfig } from '../types'
3
- import { registerPermissionFields } from '../metadata-register/permissionFields'
4
- import _ = require('lodash');
5
- var util = require('../util');
6
- var clone = require('clone');
7
-
8
- const _lazyLoads: Dictionary<any> = {};
9
-
10
- const addLazyLoad = function(objectName: string, json: SteedosObjectPermissionTypeConfig){
11
- if(!_lazyLoads[objectName]){
12
- _lazyLoads[objectName] = []
13
- }
14
- _lazyLoads[objectName].push(json)
15
- }
16
-
17
- const getLazyLoads = function(objectName: string){
18
- return _lazyLoads[objectName]
19
- }
20
-
21
- export const getLazyLoadPermissions = function(objectName: string){
22
- return getLazyLoads(objectName);
23
- }
24
-
25
- export const lazyloadPermissions = function(objectName: string){
26
- let permissions = getLazyLoads(objectName);
27
- _.each(permissions, function(permission){
28
- addPermissionConfig(permission.object_name, clone(permission));
29
- })
30
- }
31
-
32
- export const addPermissionConfig = (objectName: string, json: SteedosObjectPermissionTypeConfig)=>{
33
- if (!json.object_name) {
34
- throw new Error('missing attribute object_name')
35
- }
36
- let object = getObjectConfig(json.object_name);
37
- if (object) {
38
- if(!object.permission_set){
39
- object.permission_set = {}
40
- }
41
- util.extend(object.permission_set, {[json.name]: json})
42
- // getDataSource(object.datasource).setObjectPermission(objectName, json);
43
- } else {
44
- addLazyLoad(objectName, json);
45
- }
46
- }
47
-
48
- export const loadObjectPermissions = async function (filePath: string, serviceName: string){
49
- let permissions = util.loadPermissions(filePath);
50
- permissions.forEach(permission => {
51
- addPermissionConfig(permission.object_name, permission);
52
- });
53
- if(serviceName)
54
- for await (const permission of permissions) {
55
- const { field_permissions } = permission;
56
- if (field_permissions && _.isArray(field_permissions) && field_permissions.length > 0) {
57
- for await (const field_permission of field_permissions) {
58
- await registerPermissionFields.register(getSteedosSchema().broker, serviceName, {
59
- "name": `${permission.name}.${permission.object_name}.${field_permission.field}`,
60
- "permission_set_id": permission.name,
61
- "permission_object": `${permission.name}_${permission.object_name}`,
62
- "object_name": permission.object_name,
63
- "field": field_permission.field,
64
- "readable": field_permission.readable,
65
- "editable": field_permission.editable,
66
- "is_system": true,
67
- })
68
- }
69
- }
70
- }
71
- }
@@ -1,78 +0,0 @@
1
- import { SteedosPermissionsetTypeConfig } from '../ts-types';
2
- import { getSteedosSchema } from '../types/schema';
3
- var util = require('../util');
4
- var clone = require('clone');
5
- var _ = require('underscore');
6
- const PERMISSIONS = {
7
- allowEdit: false,
8
- allowDelete: false,
9
- allowRead: true,
10
- };
11
-
12
- const BASERECORD = {
13
- is_system: true,
14
- type: "permission_set",
15
- record_permissions: PERMISSIONS
16
- };
17
-
18
- const STANDARD_PERMISSIONSETS = {
19
- none: {_id: 'none', name: 'none', label: 'none', license: '', ...BASERECORD}
20
- }
21
-
22
- const getStandardpPermissionset = function(name){
23
- return getStandardpPermissionsets()[name];
24
- }
25
-
26
- const getStandardpPermissionsets = function(){
27
- return clone(STANDARD_PERMISSIONSETS);
28
- }
29
-
30
- // const PERMISSION_SET_KEY = 'STANDARD_PERMISSION_SETS';
31
-
32
- const addPermissionset = async function(json: SteedosPermissionsetTypeConfig, serviceName: string){
33
- if(!json.name){
34
- throw new Error('missing attribute name: ' + (json as any)?.__filename)
35
- }
36
- let permissionsetConfig = null;
37
-
38
- if(_.include(_.keys(STANDARD_PERMISSIONSETS), json.name)){
39
- permissionsetConfig = Object.assign({}, getStandardpPermissionset(json.name), json, clone(BASERECORD))
40
- }else{
41
- permissionsetConfig = Object.assign({}, json, clone(BASERECORD))
42
- }
43
- const schema = getSteedosSchema();
44
- await schema.metadataRegister?.addPermissionset(serviceName, permissionsetConfig);
45
- }
46
-
47
- export const loadStandardPermissionsets = async function(serviceName: string){
48
- const schema = getSteedosSchema();
49
- const keys = _.keys(STANDARD_PERMISSIONSETS);
50
- for (const key of keys) {
51
- const standardPermissionset = STANDARD_PERMISSIONSETS[key];
52
- await schema.metadataRegister.addPermissionset(serviceName, standardPermissionset);
53
- }
54
- }
55
-
56
- export const loadSourcePermissionset = async function (filePath: string, serviceName: string){
57
- let permissionsets = util.loadPermissionsets(filePath)
58
- for (const permissionset of permissionsets) {
59
- await addPermissionset(permissionset, serviceName);
60
- }
61
- }
62
-
63
- export const getSourcePermissionset = async function(name){
64
- const schema = getSteedosSchema();
65
- const permissionset = await schema.metadataRegister.getPermissionset(name);
66
- return permissionset?.metadata
67
- }
68
-
69
- export const getSourcePermissionsetKeys = async function(){
70
- const permissionsets = await getSourcePermissionsets();
71
- return _.pluck(permissionsets, 'name');
72
- }
73
-
74
- export const getSourcePermissionsets = async function(){
75
- const schema = getSteedosSchema();
76
- const permissionsets = await schema.metadataRegister.getPermissionsets();
77
- return permissionsets ? _.pluck(permissionsets, 'metadata') : [];
78
- }