@opengis/fastify-table 2.2.10 → 2.2.12

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.
@@ -1,6 +1,7 @@
1
- export default function getUserPermissions({ uid, resource, userType, }: {
1
+ export default function getUserPermissions({ uid, resource, table, userType, }: {
2
2
  uid?: string;
3
3
  resource?: string;
4
+ table?: string;
4
5
  userType?: string;
5
6
  }, pg?: any): Promise<any>;
6
7
  //# sourceMappingURL=getUserPermissions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getUserPermissions.d.ts","sourceRoot":"","sources":["../../../../../server/plugins/access/funcs/getUserPermissions.ts"],"names":[],"mappings":"AAYA,wBAA8B,kBAAkB,CAC9C,EACE,GAAG,EACH,QAAQ,EACR,QAAQ,GACT,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,EACzD,EAAE,MAAmB,gBAsCtB"}
1
+ {"version":3,"file":"getUserPermissions.d.ts","sourceRoot":"","sources":["../../../../../server/plugins/access/funcs/getUserPermissions.ts"],"names":[],"mappings":"AAYA,wBAA8B,kBAAkB,CAC9C,EACE,GAAG,EACH,QAAQ,EACR,KAAK,EACL,QAAQ,GACT,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,EACzE,EAAE,MAAmB,gBAyCtB"}
@@ -7,7 +7,7 @@ from admin.role_access a
7
7
  left join admin.roles b on a.role_id=b.role_id and b.enabled
8
8
  left join admin.user_roles c on a.role_id=c.role_id
9
9
  where resource_id is not null and $1 in (a.user_uid, c.user_uid)`;
10
- export default async function getUserPermissions({ uid, resource, userType, }, pg = pgClients.client) {
10
+ export default async function getUserPermissions({ uid, resource, table, userType, }, pg = pgClients.client) {
11
11
  if (!uid)
12
12
  return [];
13
13
  if (userType === "admin") {
@@ -27,7 +27,7 @@ export default async function getUserPermissions({ uid, resource, userType, }, p
27
27
  const filteredPermissions = resource
28
28
  ? permissions.filter((el) => el.name === resource)
29
29
  : permissions;
30
- const userPermissions = (filteredPermissions || [])
30
+ const userPermissions1 = (filteredPermissions || [])
31
31
  .map((e) => {
32
32
  const resource = resourcesList.find((el) => el.name === e.name);
33
33
  if (resource) {
@@ -35,5 +35,8 @@ export default async function getUserPermissions({ uid, resource, userType, }, p
35
35
  }
36
36
  })
37
37
  .filter(Boolean);
38
+ const userPermissions = table
39
+ ? userPermissions1.filter((el) => el.table === table)
40
+ : userPermissions1;
38
41
  return userPermissions;
39
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getAccess.d.ts","sourceRoot":"","sources":["../../../../../server/plugins/crud/funcs/getAccess.ts"],"names":[],"mappings":"AA8BA;;;;;;;;;GASG;AAEH,wBAA8B,SAAS,CACrC,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,IAAS,EAAE,MAAc,EAAE,EAAE,GAAG,EACzD,EAAE,MAAmB,sBA8GtB"}
1
+ {"version":3,"file":"getAccess.d.ts","sourceRoot":"","sources":["../../../../../server/plugins/crud/funcs/getAccess.ts"],"names":[],"mappings":"AA8BA;;;;;;;;;GASG;AAEH,wBAA8B,SAAS,CACrC,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,IAAS,EAAE,MAAc,EAAE,EAAE,GAAG,EACzD,EAAE,MAAmB,sBA4HtB"}
@@ -54,6 +54,7 @@ export default async function getAccess({ resource, table, form, user = {}, meth
54
54
  if (userType === "viewer") {
55
55
  return { actions: ["view"], query: "1=1" };
56
56
  }
57
+ // get request, example: /api/data
57
58
  if (resource) {
58
59
  const permissions = await getUserPermissions({ resource, uid, userType }, pg);
59
60
  const actions = (permissions || [])
@@ -65,6 +66,18 @@ export default async function getAccess({ resource, table, form, user = {}, meth
65
66
  query: permissions?.query || "1=1",
66
67
  };
67
68
  }
69
+ // get / post / put / delete, example: /api/form/:table/:id
70
+ const permissions = await getUserPermissions({ table, uid, userType }, pg);
71
+ const permissionActions = (permissions || [])
72
+ .flatMap((el) => el.actions.map((e) => matches[e] || e))
73
+ .filter((el, idx, arr) => arr.indexOf(el) === idx);
74
+ if (table && permissions?.length) {
75
+ return {
76
+ scope: permissions?.scope,
77
+ actions: permissionActions,
78
+ query: permissions?.query || "1=1",
79
+ };
80
+ }
68
81
  const body = await getTemplate("table", table);
69
82
  const tableActions = !body && form
70
83
  ? allActions // if db table and form => full access (token)
@@ -1 +1 @@
1
- {"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../../../../server/routes/table/controllers/filter.ts"],"names":[],"mappings":"AAaA,UAAU,OAAO;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,SAAS,CAAC;IAC3B,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,SAAS,CAAC;IAC3B,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,SAAS,CAAC;CAC3B;AAED,wBAA8B,SAAS,CACrC,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,GAAG,EACV,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,GAC5C,OAAO,CAAC,OAAO,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,GAAG,GAAG,CAAC,CAoSvE"}
1
+ {"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../../../../server/routes/table/controllers/filter.ts"],"names":[],"mappings":"AAaA,UAAU,OAAO;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,SAAS,CAAC;IAC3B,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,SAAS,CAAC;IAC3B,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,SAAS,CAAC;CAC3B;AAED,wBAA8B,SAAS,CACrC,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,GAAG,EACV,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,GAC5C,OAAO,CAAC,OAAO,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,GAAG,GAAG,CAAC,CAqSvE"}
@@ -84,7 +84,8 @@ export default async function filterAPI(req, reply, iscalled) {
84
84
  .filter((el) => el.id &&
85
85
  el.type !== "Autocomplete" &&
86
86
  !el.sql &&
87
- !el.options?.find?.((item) => item.sql))
87
+ // !el.options?.find?.((item: any) => item.sql)
88
+ !el.options)
88
89
  .map(async (el) => {
89
90
  const cls = el.data ? await getSelect(el.data, pg) : null;
90
91
  if (!cls && !el.type?.includes?.("Check"))
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opengis/fastify-table",
3
- "version": "2.2.10",
3
+ "version": "2.2.12",
4
4
  "type": "module",
5
5
  "description": "core-plugins",
6
6
  "keywords": [