@steedos/standard-permission 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.
- package/main/default/applications/.gitkeep +0 -0
- package/main/default/client/permission_set.client.js +38 -0
- package/main/default/objectTranslations/permission_objects.en/permission_objects.en.objectTranslation.yml +108 -0
- package/main/default/objectTranslations/permission_objects.zh-CN/permission_objects.zh-CN.objectTranslation.yml +108 -0
- package/main/default/objectTranslations/permission_set.en/permission_set.en.objectTranslation.yml +87 -0
- package/main/default/objectTranslations/permission_set.zh-CN/permission_set.zh-CN.objectTranslation.yml +87 -0
- package/main/default/objectTranslations/permission_shares.en/permission_shares.en.objectTranslation.yml +27 -0
- package/main/default/objectTranslations/permission_shares.zh-CN/permission_shares.zh-CN.objectTranslation.yml +27 -0
- package/main/default/objects/permission_fields.object.yml +184 -0
- package/main/default/objects/permission_objects.action.js +57 -0
- package/main/default/objects/permission_objects.function.js +23 -0
- package/main/default/objects/permission_objects.object.js +20 -0
- package/main/default/objects/permission_objects.object.yml +394 -0
- package/main/default/objects/permission_set/buttons/permission_set.action.js +17 -0
- package/main/default/objects/permission_set/permission_set.object.yml +268 -0
- package/main/default/objects/permission_shares.object.js +57 -0
- package/main/default/objects/permission_shares.object.yml +63 -0
- package/main/default/objects/restriction_rules.action.js +25 -0
- package/main/default/objects/restriction_rules.object.yml +82 -0
- package/main/default/objects/share_rules.action.js +25 -0
- package/main/default/objects/share_rules.object.yml +82 -0
- package/main/default/permissionsets/.gitkeep +0 -0
- package/main/default/profiles/.gitkeep +0 -0
- package/main/default/routes/copyProfile.router.js +113 -0
- package/main/default/server/permission_set.object.js +130 -0
- package/main/default/tabs/.gitkeep +0 -0
- package/main/default/triggers/.gitkeep +0 -0
- package/main/default/triggers/permission_fields.trigger.js +94 -0
- package/main/default/triggers/permission_objects.trigger.js +159 -0
- package/main/default/triggers/permission_set.trigger.js +89 -0
- package/main/default/triggers/restriction_rules.trigger.js +67 -0
- package/main/default/triggers/restriction_rules_api_name.trigger.js +30 -0
- package/main/default/triggers/share_rules.trigger.js +68 -0
- package/main/default/triggers/share_rules_api_name.trigger.js +30 -0
- package/package.json +16 -0
- package/package.service.js +75 -0
- package/public/.md +3 -0
- package/src/.md +3 -0
- package/webapp/.md +1 -0
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
const objectql = require('@steedos/objectql');
|
|
2
|
+
const auth = require('@steedos/auth');
|
|
3
|
+
const _ = require('underscore');
|
|
4
|
+
const clone = require('clone');
|
|
5
|
+
async function getAll() {
|
|
6
|
+
const schema = objectql.getSteedosSchema();
|
|
7
|
+
const configs = await objectql.registerShareRules.getAll(schema.broker)
|
|
8
|
+
const dataList = _.pluck(configs, 'metadata');
|
|
9
|
+
|
|
10
|
+
_.each(dataList, function (item) {
|
|
11
|
+
if (!item._id) {
|
|
12
|
+
item._id = `${item.object_name}.${item.name}`
|
|
13
|
+
}
|
|
14
|
+
})
|
|
15
|
+
return dataList;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
async function get(apiName) {
|
|
19
|
+
const schema = objectql.getSteedosSchema();
|
|
20
|
+
const config = await objectql.registerShareRules.get(schema.broker, apiName)
|
|
21
|
+
return config ? Object.assign(config.metadata, { _id: config.metadata._id || `${config.metadata.object_name}.${config.metadata.name}` }) : null;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
module.exports = {
|
|
25
|
+
listenTo: 'share_rules',
|
|
26
|
+
|
|
27
|
+
afterFind: async function () {
|
|
28
|
+
let spaceId = this.spaceId;
|
|
29
|
+
let dataList = await getAll();
|
|
30
|
+
const values = clone(this.data.values);
|
|
31
|
+
_.each(dataList, (item) => {
|
|
32
|
+
if (!_.find(this.data.values, (value) => {
|
|
33
|
+
return value._id === item._id
|
|
34
|
+
})) {
|
|
35
|
+
values.push(item)
|
|
36
|
+
}
|
|
37
|
+
})
|
|
38
|
+
this.data.values = objectql.getSteedosSchema().metadataDriver.find(values, this.query, spaceId);
|
|
39
|
+
|
|
40
|
+
},
|
|
41
|
+
afterAggregate: async function () {
|
|
42
|
+
let spaceId = this.spaceId;
|
|
43
|
+
let dataList = await getAll();
|
|
44
|
+
const values = clone(this.data.values);
|
|
45
|
+
_.each(dataList, (item) => {
|
|
46
|
+
if (!_.find(this.data.values, (value) => {
|
|
47
|
+
return value._id === item._id
|
|
48
|
+
})) {
|
|
49
|
+
values.push(item)
|
|
50
|
+
}
|
|
51
|
+
})
|
|
52
|
+
this.data.values = objectql.getSteedosSchema().metadataDriver.find(values, this.query, spaceId);
|
|
53
|
+
|
|
54
|
+
},
|
|
55
|
+
afterCount: async function () {
|
|
56
|
+
let result = await objectql.getObject(this.object_name).find(this.query, await auth.getSessionByUserId(this.userId, this.spaceId))
|
|
57
|
+
this.data.values = result.length;
|
|
58
|
+
},
|
|
59
|
+
afterFindOne: async function () {
|
|
60
|
+
if (_.isEmpty(this.data.values)) {
|
|
61
|
+
let id = this.id
|
|
62
|
+
let data = await get(id);
|
|
63
|
+
if (data) {
|
|
64
|
+
this.data.values = data;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* @Author: sunhaolin@hotoa.com
|
|
3
|
+
* @Date: 2021-12-27 10:49:33
|
|
4
|
+
* @LastEditors: sunhaolin@hotoa.com
|
|
5
|
+
* @LastEditTime: 2022-07-30 13:22:15
|
|
6
|
+
* @Description:
|
|
7
|
+
*/
|
|
8
|
+
const util = require('@steedos/standard-objects').util;
|
|
9
|
+
const _ = require('lodash');
|
|
10
|
+
const objectql = require('@steedos/objectql');
|
|
11
|
+
module.exports = {
|
|
12
|
+
listenTo: 'share_rules',
|
|
13
|
+
|
|
14
|
+
beforeInsert: async function () {
|
|
15
|
+
const { object_name, doc } = this;
|
|
16
|
+
await util.checkAPIName(object_name, 'name', doc.name, undefined, [['is_system', '!=', true], ['object_name', '=', doc.object_name]]);
|
|
17
|
+
},
|
|
18
|
+
|
|
19
|
+
beforeUpdate: async function () {
|
|
20
|
+
const oldDoc = await objectql.getObject(this.object_name).findOne(this.id)
|
|
21
|
+
let name = oldDoc.name, object_name = oldDoc.object_name;
|
|
22
|
+
if (_.has(this.doc, 'name')) {
|
|
23
|
+
name = this.doc.name
|
|
24
|
+
}
|
|
25
|
+
if (_.has(this.doc, 'object_name')) {
|
|
26
|
+
object_name = this.doc.object_name
|
|
27
|
+
}
|
|
28
|
+
await util.checkAPIName(this.object_name, 'name', name, this.id, [['is_system', '!=', true], ['object_name', '=', object_name]]);
|
|
29
|
+
}
|
|
30
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@steedos/standard-permission",
|
|
3
|
+
"version": "2.2.55-beta.16",
|
|
4
|
+
"main": "package.service.js",
|
|
5
|
+
"private": false,
|
|
6
|
+
"publishConfig": {
|
|
7
|
+
"access": "public"
|
|
8
|
+
},
|
|
9
|
+
"keywords": [
|
|
10
|
+
"steedos"
|
|
11
|
+
],
|
|
12
|
+
"description": "steedos package",
|
|
13
|
+
"repository": {},
|
|
14
|
+
"license": "MIT",
|
|
15
|
+
"dependencies": {}
|
|
16
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* @Author: sunhaolin@hotoa.com
|
|
3
|
+
* @Date: 2022-07-29 09:40:31
|
|
4
|
+
* @LastEditors: sunhaolin@hotoa.com
|
|
5
|
+
* @LastEditTime: 2022-07-29 14:37:14
|
|
6
|
+
* @Description:
|
|
7
|
+
*/
|
|
8
|
+
"use strict";
|
|
9
|
+
const project = require('./package.json');
|
|
10
|
+
const packageName = project.name;
|
|
11
|
+
const packageLoader = require('@steedos/service-meteor-package-loader');
|
|
12
|
+
/**
|
|
13
|
+
* @typedef {import('moleculer').Context} Context Moleculer's Context
|
|
14
|
+
*/
|
|
15
|
+
module.exports = {
|
|
16
|
+
name: packageName,
|
|
17
|
+
namespace: "steedos",
|
|
18
|
+
mixins: [packageLoader],
|
|
19
|
+
/**
|
|
20
|
+
* Settings
|
|
21
|
+
*/
|
|
22
|
+
settings: {
|
|
23
|
+
packageInfo: {
|
|
24
|
+
path: __dirname,
|
|
25
|
+
name: packageName
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Dependencies
|
|
31
|
+
*/
|
|
32
|
+
dependencies: ['~packages-standard-objects'],
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Actions
|
|
36
|
+
*/
|
|
37
|
+
actions: {
|
|
38
|
+
|
|
39
|
+
},
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Events
|
|
43
|
+
*/
|
|
44
|
+
events: {
|
|
45
|
+
|
|
46
|
+
},
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Methods
|
|
50
|
+
*/
|
|
51
|
+
methods: {
|
|
52
|
+
|
|
53
|
+
},
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Service created lifecycle event handler
|
|
57
|
+
*/
|
|
58
|
+
async created() {
|
|
59
|
+
|
|
60
|
+
},
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Service started lifecycle event handler
|
|
64
|
+
*/
|
|
65
|
+
async started() {
|
|
66
|
+
|
|
67
|
+
},
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Service stopped lifecycle event handler
|
|
71
|
+
*/
|
|
72
|
+
async stopped() {
|
|
73
|
+
|
|
74
|
+
}
|
|
75
|
+
};
|
package/public/.md
ADDED
package/src/.md
ADDED
package/webapp/.md
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
- 存放web项目
|