@steedos/objectql 2.2.50-beta.7 → 2.2.51-beta.2
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/lib/services/helpers/graphql/consts.d.ts +17 -0
- package/lib/services/helpers/graphql/consts.js +28 -0
- package/lib/services/helpers/graphql/consts.js.map +1 -0
- package/lib/services/helpers/graphql/getQueryFields.js +17 -2
- package/lib/services/helpers/graphql/getQueryFields.js.map +1 -1
- package/lib/services/helpers/graphql/index.d.ts +1 -1
- package/lib/services/helpers/graphql/index.js +31 -46
- package/lib/services/helpers/graphql/index.js.map +1 -1
- package/lib/util/index.js +7 -0
- package/lib/util/index.js.map +1 -1
- package/package.json +10 -10
- package/src/actions/field_updates.ts +0 -118
- package/src/actions/index.ts +0 -3
- package/src/actions/types/field_update_target.ts +0 -7
- package/src/actions/types/workflow_notification.ts +0 -9
- package/src/actions/types/workflow_rule.ts +0 -11
- package/src/actions/workflow_notifications.ts +0 -81
- package/src/actions/workflow_rule.ts +0 -136
- package/src/driver/driver.ts +0 -102
- package/src/driver/field-encrytion/index.ts +0 -8
- package/src/driver/field-encrytion/sharedconst.ts +0 -34
- package/src/driver/fieldDBType.ts +0 -14
- package/src/driver/format.ts +0 -36
- package/src/driver/index.ts +0 -20
- package/src/driver/metadata.ts +0 -226
- package/src/driver/meteorMongo.ts +0 -639
- package/src/driver/mongo.ts +0 -416
- package/src/driver/mysql.ts +0 -47
- package/src/driver/oracle.ts +0 -60
- package/src/driver/postgres.ts +0 -46
- package/src/driver/sqlite3.ts +0 -40
- package/src/driver/sqlserver.ts +0 -52
- package/src/dynamic-load/actions.ts +0 -146
- package/src/dynamic-load/approval_process.ts +0 -73
- package/src/dynamic-load/button.ts +0 -75
- package/src/dynamic-load/chart.ts +0 -22
- package/src/dynamic-load/client_script.ts +0 -65
- package/src/dynamic-load/field.ts +0 -77
- package/src/dynamic-load/flow_role.ts +0 -46
- package/src/dynamic-load/index.ts +0 -21
- package/src/dynamic-load/layout.ts +0 -53
- package/src/dynamic-load/listview.ts +0 -57
- package/src/dynamic-load/method.ts +0 -63
- package/src/dynamic-load/object_translations.ts +0 -61
- package/src/dynamic-load/originalObject.ts +0 -8
- package/src/dynamic-load/package.ts +0 -312
- package/src/dynamic-load/page.ts +0 -23
- package/src/dynamic-load/permission.ts +0 -71
- package/src/dynamic-load/permissionset.ts +0 -78
- package/src/dynamic-load/preload_data.ts +0 -104
- package/src/dynamic-load/profile.ts +0 -90
- package/src/dynamic-load/query.ts +0 -22
- package/src/dynamic-load/restrictionRules.ts +0 -23
- package/src/dynamic-load/role.ts +0 -46
- package/src/dynamic-load/shareRules.ts +0 -23
- package/src/dynamic-load/tab.ts +0 -17
- package/src/dynamic-load/tabs.ts +0 -13
- package/src/dynamic-load/translations.ts +0 -54
- package/src/dynamic-load/trigger.ts +0 -236
- package/src/dynamic-load/validation_rule.ts +0 -77
- package/src/dynamic-load/workflow.ts +0 -114
- package/src/errors/index.ts +0 -111
- package/src/formula/core.ts +0 -490
- package/src/formula/field_formula.ts +0 -107
- package/src/formula/index.ts +0 -81
- package/src/formula/params.ts +0 -197
- package/src/formula/recompute.ts +0 -65
- package/src/formula/simple_params.ts +0 -92
- package/src/formula/type.ts +0 -107
- package/src/formula/util.ts +0 -207
- package/src/index.ts +0 -24
- package/src/metadata-register/_base.ts +0 -85
- package/src/metadata-register/app.ts +0 -30
- package/src/metadata-register/chart.ts +0 -9
- package/src/metadata-register/index.ts +0 -123
- package/src/metadata-register/layout.ts +0 -38
- package/src/metadata-register/object.ts +0 -68
- package/src/metadata-register/page.ts +0 -9
- package/src/metadata-register/permissionFields.ts +0 -13
- package/src/metadata-register/permissionset.ts +0 -25
- package/src/metadata-register/process.ts +0 -16
- package/src/metadata-register/processTrigger.ts +0 -24
- package/src/metadata-register/profile.ts +0 -25
- package/src/metadata-register/query.ts +0 -9
- package/src/metadata-register/restrictionRules.ts +0 -12
- package/src/metadata-register/shareRules.ts +0 -13
- package/src/metadata-register/tab.ts +0 -9
- package/src/metadata-register/tabs.ts +0 -43
- package/src/services/datasourceServiceFactory.ts +0 -55
- package/src/services/helpers/graphql/getPrimaryFieldType.ts +0 -48
- package/src/services/helpers/graphql/getQueryFields.ts +0 -36
- package/src/services/helpers/graphql/index.ts +0 -681
- package/src/services/helpers/rest.ts +0 -57
- package/src/services/index.ts +0 -13
- package/src/services/objectService.ts +0 -846
- package/src/services/objectServiceDispatcher.ts +0 -209
- package/src/services/objectServiceFactory.ts +0 -29
- package/src/summary/core.ts +0 -263
- package/src/summary/field_summary.ts +0 -71
- package/src/summary/index.ts +0 -96
- package/src/summary/recompute.ts +0 -31
- package/src/summary/type.ts +0 -60
- package/src/ts-types/index.ts +0 -3
- package/src/ts-types/permissionset.ts +0 -8
- package/src/ts-types/profile.ts +0 -11
- package/src/ts-types/triggerActionParams.ts +0 -22
- package/src/typeorm/driver.ts +0 -379
- package/src/typeorm/index.ts +0 -3
- package/src/typeorm/util.ts +0 -147
- package/src/types/action.ts +0 -52
- package/src/types/app.ts +0 -280
- package/src/types/config.ts +0 -152
- package/src/types/connection.ts +0 -87
- package/src/types/dashboard.ts +0 -91
- package/src/types/datasource.ts +0 -570
- package/src/types/field.ts +0 -370
- package/src/types/field_permission.ts +0 -42
- package/src/types/field_types.ts +0 -1
- package/src/types/index.ts +0 -21
- package/src/types/list_view.ts +0 -56
- package/src/types/listeners.ts +0 -18
- package/src/types/object.ts +0 -2076
- package/src/types/object_dynamic_load.ts +0 -426
- package/src/types/object_events.ts +0 -43
- package/src/types/object_layouts.ts +0 -20
- package/src/types/object_permission.ts +0 -134
- package/src/types/query.ts +0 -28
- package/src/types/report.ts +0 -128
- package/src/types/restrictionRule.ts +0 -57
- package/src/types/schema.ts +0 -273
- package/src/types/shareRule.ts +0 -57
- package/src/types/trigger.ts +0 -88
- package/src/types/userSession.ts +0 -45
- package/src/types/validation_rules.ts +0 -29
- package/src/util/convert.ts +0 -131
- package/src/util/field.ts +0 -93
- package/src/util/function_expression.ts +0 -63
- package/src/util/index.ts +0 -1058
- package/src/util/locale.ts +0 -24
- package/src/util/permission_shares.ts +0 -25
- package/src/util/suffix.ts +0 -78
- package/src/util/transform.ts +0 -239
- 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,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
|
-
}
|
package/src/dynamic-load/page.ts
DELETED
|
@@ -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
|
-
}
|