@nocobase/plugin-data-visualization 1.3.0-alpha.20240710141659 → 1.3.0-alpha.20240719150832

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.
@@ -8,13 +8,13 @@
8
8
  */
9
9
 
10
10
  module.exports = {
11
- "@nocobase/client": "1.3.0-alpha.20240710141659",
11
+ "@nocobase/client": "1.3.0-alpha.20240719150832",
12
12
  "dayjs": "1.11.10",
13
13
  "@formily/react": "2.3.0",
14
14
  "@formily/shared": "2.3.0",
15
15
  "lodash": "4.17.21",
16
- "@nocobase/cache": "1.3.0-alpha.20240710141659",
17
- "@nocobase/server": "1.3.0-alpha.20240710141659",
16
+ "@nocobase/cache": "1.3.0-alpha.20240719150832",
17
+ "@nocobase/server": "1.3.0-alpha.20240719150832",
18
18
  "react": "18.2.0",
19
19
  "@ant-design/icons": "5.2.6",
20
20
  "ahooks": "3.7.8",
@@ -22,9 +22,9 @@ module.exports = {
22
22
  "antd": "5.12.8",
23
23
  "@formily/antd-v5": "1.1.9",
24
24
  "@formily/core": "2.3.0",
25
- "@nocobase/utils": "1.3.0-alpha.20240710141659",
25
+ "@nocobase/utils": "1.3.0-alpha.20240719150832",
26
26
  "react-i18next": "11.18.6",
27
27
  "sequelize": "6.35.2",
28
- "@nocobase/actions": "1.3.0-alpha.20240710141659",
29
- "@nocobase/database": "1.3.0-alpha.20240710141659"
28
+ "@nocobase/actions": "1.3.0-alpha.20240719150832",
29
+ "@nocobase/database": "1.3.0-alpha.20240719150832"
30
30
  };
@@ -1 +1 @@
1
- {"name":"koa-compose","description":"compose Koa middleware","repository":"koajs/compose","version":"4.1.0","keywords":["koa","middleware","compose"],"files":["index.js"],"dependencies":{},"devDependencies":{"codecov":"^3.0.0","jest":"^21.0.0","matcha":"^0.7.0","standard":"^10.0.3"},"scripts":{"bench":"matcha bench/bench.js","lint":"standard --fix .","test":"jest --forceExit --coverage"},"jest":{"testEnvironment":"node"},"license":"MIT","_lastModified":"2024-07-10T14:29:34.020Z"}
1
+ {"name":"koa-compose","description":"compose Koa middleware","repository":"koajs/compose","version":"4.1.0","keywords":["koa","middleware","compose"],"files":["index.js"],"dependencies":{},"devDependencies":{"codecov":"^3.0.0","jest":"^21.0.0","matcha":"^0.7.0","standard":"^10.0.3"},"scripts":{"bench":"matcha bench/bench.js","lint":"standard --fix .","test":"jest --forceExit --coverage"},"jest":{"testEnvironment":"node"},"license":"MIT","_lastModified":"2024-07-19T15:19:11.064Z"}
@@ -166,6 +166,7 @@ const parseFieldAndAssociations = async (ctx, next) => {
166
166
  const db = getDB(ctx, dataSource) || ctx.db;
167
167
  const collection = db.getCollection(collectionName);
168
168
  const fields = collection.fields;
169
+ const associations = collection.model.associations;
169
170
  const models = {};
170
171
  const parseField = (selected) => {
171
172
  var _a, _b, _c, _d;
@@ -206,11 +207,25 @@ const parseFieldAndAssociations = async (ctx, next) => {
206
207
  const parsedMeasures = (measures == null ? void 0 : measures.map(parseField)) || [];
207
208
  const parsedDimensions = (dimensions == null ? void 0 : dimensions.map(parseField)) || [];
208
209
  const parsedOrders = (orders == null ? void 0 : orders.map(parseField)) || [];
209
- const include = Object.entries(models).map(([target, { type }]) => ({
210
- association: target,
211
- attributes: [],
212
- ...type === "belongsToMany" ? { through: { attributes: [] } } : {}
213
- }));
210
+ const include = Object.entries(models).map(([target, { type }]) => {
211
+ let options = {
212
+ association: target,
213
+ attributes: []
214
+ };
215
+ if (type === "belongsToMany") {
216
+ options["through"] = { attributes: [] };
217
+ }
218
+ if (type === "belongsToArray") {
219
+ const association = associations[target];
220
+ if (association) {
221
+ options = {
222
+ ...options,
223
+ ...association.generateInclude()
224
+ };
225
+ }
226
+ }
227
+ return options;
228
+ });
214
229
  const filterParser = new import_database.FilterParser(filter, {
215
230
  collection
216
231
  });
@@ -257,9 +272,11 @@ const cacheMiddleware = async (ctx, next) => {
257
272
  }
258
273
  };
259
274
  const checkPermission = (ctx, next) => {
260
- const { collection } = ctx.action.params.values;
275
+ var _a;
276
+ const { collection, dataSource } = ctx.action.params.values;
261
277
  const roleName = ctx.state.currentRole || "anonymous";
262
- const can = ctx.app.acl.can({ role: roleName, resource: collection, action: "list" });
278
+ const acl = ((_a = ctx.app.dataSourceManager.get(dataSource)) == null ? void 0 : _a.acl) || ctx.app.acl;
279
+ const can = acl.can({ role: roleName, resource: collection, action: "list" });
263
280
  if (!can && roleName !== "root") {
264
281
  ctx.throw(403, "No permissions");
265
282
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nocobase/plugin-data-visualization",
3
- "version": "1.3.0-alpha.20240710141659",
3
+ "version": "1.3.0-alpha.20240719150832",
4
4
  "displayName": "Data visualization",
5
5
  "displayName.zh-CN": "数据可视化",
6
6
  "description": "Provides data visualization feature, including chart block and chart filter block, support line charts, area charts, bar charts and more than a dozen kinds of charts, you can also extend more chart types.",
@@ -28,12 +28,13 @@
28
28
  "@nocobase/actions": "1.x",
29
29
  "@nocobase/cache": "1.x",
30
30
  "@nocobase/client": "1.x",
31
+ "@nocobase/data-source-main": "1.x",
31
32
  "@nocobase/database": "1.x",
32
33
  "@nocobase/server": "1.x",
33
34
  "@nocobase/test": "1.x",
34
35
  "@nocobase/utils": "1.x"
35
36
  },
36
- "gitHead": "cb8b234443034da0dfa57dd5d6cca1f3b3db6f08",
37
+ "gitHead": "df502d5ebb2c9d7a11ee12b6d4a1b58453e6e176",
37
38
  "keywords": [
38
39
  "Blocks"
39
40
  ]