free-be-account 0.0.28 → 0.0.30

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/index.js CHANGED
@@ -27,16 +27,15 @@ try {
27
27
  let __app_service_list_saved = false;
28
28
  let __saved_service_list;
29
29
 
30
- const __getServiceList = async (res, filter = { Enabled: true }, scopeFilter) => {
30
+ const __getServiceList = async (res, filter, scopeFilter) => {
31
31
  // add app.serviceList into db if not yet
32
32
  if (!__app_service_list_saved) {
33
33
  await res.app.modules.account.utils.saveServiceList(res.app);
34
- __app_service_list_saved = true;
35
- } else if (!filter){
34
+ } else if (!filter) {
36
35
  return __saved_service_list;
37
36
  }
38
37
 
39
- const allPerms = await res.app.models.permission.find(filter).lean();
38
+ const allPerms = await res.app.models.permission.find(filter ? { ...filter, Enabled: true } : { Enabled: true }).lean();
40
39
 
41
40
  const permList = {};
42
41
  if (allPerms && allPerms.length > 0) {
@@ -60,7 +59,7 @@ const __getServiceList = async (res, filter = { Enabled: true }, scopeFilter) =>
60
59
  },
61
60
  ((doc.Scope || []).length <= 0) ? {} : {
62
61
  Scope: doc.Scope.map(sc => {
63
- const dso = app.getContainerContent('DataScope').find(ds => ds.Name === sc.Name);
62
+ const dso = res.app.getContainerContent('DataScope').find(ds => ds.Name === sc.Name);
64
63
 
65
64
  if (!dso) {
66
65
  return {};
@@ -97,8 +96,9 @@ const __getServiceList = async (res, filter = { Enabled: true }, scopeFilter) =>
97
96
  })
98
97
  }
99
98
 
100
- if (!filter) {
99
+ if (!filter && !__app_service_list_saved) {
101
100
  __saved_service_list = permList;
101
+ __app_service_list_saved = true;
102
102
  }
103
103
 
104
104
  return permList;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "free-be-account",
3
- "version": "0.0.28",
3
+ "version": "0.0.30",
4
4
  "main": "index.js",
5
5
  "license": "UNLICENSED",
6
6
  "repository": {
@@ -4,26 +4,34 @@ const router = express.Router();
4
4
  const { AccountAuditStatus } = require('../../enum');
5
5
  const { clearPermission, encryptPwd, crypto } = require('../../utils');
6
6
 
7
+ // 2024-7-4,曾经添加id过滤器,并删除所有label and placeholder,但为什么?
7
8
  const accountFilters = [
8
- {
9
- Name: 'id',
10
- Type: 'String',
11
- Info: {
12
- Separate: true,
13
- },
14
- },
9
+ // {
10
+ // Name: 'id',
11
+ // Type: 'String',
12
+ // Info: {
13
+ // Separate: true,
14
+ // },
15
+ // Label: '账号ID',
16
+ // },
15
17
  {
16
18
  Name: 'LastUpdateDate',
17
19
  Type: 'DateRange',
20
+ Label: '更新日期',
21
+ Placeholder: '请选择',
18
22
  },
19
23
  {
20
24
  Name: 'Enabled',
21
25
  Type: 'Select',
26
+ Label: '激活状态',
27
+ Placeholder: '请选择',
22
28
  Options: [
23
29
  {
30
+ Label: '已激活',
24
31
  Value: true,
25
32
  },
26
33
  {
34
+ Label: '未激活',
27
35
  Value: false,
28
36
  },
29
37
  ],
@@ -31,18 +39,22 @@ const accountFilters = [
31
39
  {
32
40
  Name: 'Profile.Name',
33
41
  Type: 'String',
42
+ Label: '姓名',
34
43
  },
35
44
  {
36
45
  Name: 'Profile.Title',
37
46
  Type: 'String',
47
+ Label: '职务',
38
48
  },
39
49
  {
40
50
  Name: 'PhoneNumber',
41
51
  Type: 'String',
52
+ Label: '手机号',
42
53
  },
43
54
  {
44
55
  Name: 'UserName',
45
56
  Type: 'String',
57
+ Label: '用户名',
46
58
  },
47
59
  ];
48
60
 
package/utils.js CHANGED
@@ -210,6 +210,38 @@ async function saveServiceList (app, clean=false) {
210
210
  await checkService(serviceList, undefined, '');
211
211
  }
212
212
 
213
+ /**
214
+ * 给指定的静态资源文件添加权限控制记录
215
+ *
216
+ * @param {String or Array} assets asset file(s)
217
+ * @param {String or Object} user The current user
218
+ * @param {String} users Users
219
+ * @param {String} perms Permissions
220
+ * @param {String} refs Referers
221
+ * @returns
222
+ */
223
+ async function addPermControlToAssetFiles(afile, user, users, perms, refs) {
224
+ if (!afile) return;
225
+
226
+ if (!Array.isArray(afile)) {
227
+ afile = [afile];
228
+ }
229
+
230
+ for (let i = 0; i < afile.length; i += 1) {
231
+ const af = afile[i];
232
+
233
+ const assetsFilePath = af.split(/[\\|/]/g).slice(-2).join('/');
234
+ await app.models.staticResourcePermissionControl.create({
235
+ User: user?.id || user,
236
+ ResourcePath: assetsFilePath,
237
+
238
+ Users: users || '',
239
+ Permissions: perms || '',
240
+ Referers: refs || '',
241
+ });
242
+ }
243
+ }
244
+
213
245
  module.exports = {
214
246
  clearPermission,
215
247
  getPermissionPathList,
@@ -218,4 +250,5 @@ module.exports = {
218
250
  getClearPwd,
219
251
  crypto,
220
252
  saveServiceList,
253
+ addPermControlToAssetFiles,
221
254
  }