@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.
Files changed (39) hide show
  1. package/main/default/applications/.gitkeep +0 -0
  2. package/main/default/client/permission_set.client.js +38 -0
  3. package/main/default/objectTranslations/permission_objects.en/permission_objects.en.objectTranslation.yml +108 -0
  4. package/main/default/objectTranslations/permission_objects.zh-CN/permission_objects.zh-CN.objectTranslation.yml +108 -0
  5. package/main/default/objectTranslations/permission_set.en/permission_set.en.objectTranslation.yml +87 -0
  6. package/main/default/objectTranslations/permission_set.zh-CN/permission_set.zh-CN.objectTranslation.yml +87 -0
  7. package/main/default/objectTranslations/permission_shares.en/permission_shares.en.objectTranslation.yml +27 -0
  8. package/main/default/objectTranslations/permission_shares.zh-CN/permission_shares.zh-CN.objectTranslation.yml +27 -0
  9. package/main/default/objects/permission_fields.object.yml +184 -0
  10. package/main/default/objects/permission_objects.action.js +57 -0
  11. package/main/default/objects/permission_objects.function.js +23 -0
  12. package/main/default/objects/permission_objects.object.js +20 -0
  13. package/main/default/objects/permission_objects.object.yml +394 -0
  14. package/main/default/objects/permission_set/buttons/permission_set.action.js +17 -0
  15. package/main/default/objects/permission_set/permission_set.object.yml +268 -0
  16. package/main/default/objects/permission_shares.object.js +57 -0
  17. package/main/default/objects/permission_shares.object.yml +63 -0
  18. package/main/default/objects/restriction_rules.action.js +25 -0
  19. package/main/default/objects/restriction_rules.object.yml +82 -0
  20. package/main/default/objects/share_rules.action.js +25 -0
  21. package/main/default/objects/share_rules.object.yml +82 -0
  22. package/main/default/permissionsets/.gitkeep +0 -0
  23. package/main/default/profiles/.gitkeep +0 -0
  24. package/main/default/routes/copyProfile.router.js +113 -0
  25. package/main/default/server/permission_set.object.js +130 -0
  26. package/main/default/tabs/.gitkeep +0 -0
  27. package/main/default/triggers/.gitkeep +0 -0
  28. package/main/default/triggers/permission_fields.trigger.js +94 -0
  29. package/main/default/triggers/permission_objects.trigger.js +159 -0
  30. package/main/default/triggers/permission_set.trigger.js +89 -0
  31. package/main/default/triggers/restriction_rules.trigger.js +67 -0
  32. package/main/default/triggers/restriction_rules_api_name.trigger.js +30 -0
  33. package/main/default/triggers/share_rules.trigger.js +68 -0
  34. package/main/default/triggers/share_rules_api_name.trigger.js +30 -0
  35. package/package.json +16 -0
  36. package/package.service.js +75 -0
  37. package/public/.md +3 -0
  38. package/src/.md +3 -0
  39. 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
@@ -0,0 +1,3 @@
1
+ ### 静态公开资源文件
2
+
3
+ - 此文件夹中的文件自动添加到根路由
package/src/.md ADDED
@@ -0,0 +1,3 @@
1
+ ### src
2
+
3
+ - 软件包不会加载此文件夹下的文件, 可用于存放ts文件等
package/webapp/.md ADDED
@@ -0,0 +1 @@
1
+ - 存放web项目