@opengis/fastify-table 2.2.10 → 2.2.11
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/dist/server/plugins/access/funcs/getUserPermissions.d.ts +2 -1
- package/dist/server/plugins/access/funcs/getUserPermissions.d.ts.map +1 -1
- package/dist/server/plugins/access/funcs/getUserPermissions.js +5 -2
- package/dist/server/plugins/crud/funcs/getAccess.d.ts.map +1 -1
- package/dist/server/plugins/crud/funcs/getAccess.js +13 -0
- package/package.json +1 -1
|
@@ -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,
|
|
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
|
|
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,
|
|
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)
|