@opengis/fastify-table 2.0.159 → 2.0.161
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/getResources.d.ts +7 -0
- package/dist/server/plugins/access/funcs/getResources.d.ts.map +1 -0
- package/dist/server/plugins/access/funcs/getResources.js +12 -0
- package/dist/server/plugins/access/funcs/getUserPermissions.d.ts +5 -0
- package/dist/server/plugins/access/funcs/getUserPermissions.d.ts.map +1 -0
- package/dist/server/plugins/access/funcs/getUserPermissions.js +36 -0
- package/dist/server/plugins/crud/funcs/dataInsert.d.ts.map +1 -1
- package/dist/server/plugins/crud/funcs/dataInsert.js +7 -1
- package/dist/server/plugins/crud/funcs/getAccess.d.ts +1 -1
- package/dist/server/plugins/crud/funcs/getAccess.d.ts.map +1 -1
- package/dist/server/plugins/crud/funcs/getAccess.js +20 -8
- package/dist/server/plugins/policy/funcs/checkPermissions.js +2 -2
- package/dist/server/routes/access/controllers/access.resources.d.ts +6 -0
- package/dist/server/routes/access/controllers/access.resources.d.ts.map +1 -0
- package/dist/server/routes/access/controllers/access.resources.js +14 -0
- package/dist/server/routes/access/controllers/access.user.d.ts.map +1 -1
- package/dist/server/routes/access/controllers/access.user.js +5 -1
- package/dist/server/routes/access/controllers/resources.d.ts +11 -0
- package/dist/server/routes/access/controllers/resources.d.ts.map +1 -0
- package/dist/server/routes/access/controllers/resources.js +14 -0
- package/dist/server/routes/access/functions/resources.d.ts +6 -0
- package/dist/server/routes/access/functions/resources.d.ts.map +1 -0
- package/dist/server/routes/access/functions/resources.js +11 -0
- package/dist/server/routes/access/index.d.ts +1 -1
- package/dist/server/routes/access/index.d.ts.map +1 -1
- package/dist/server/routes/access/index.js +3 -1
- package/dist/server/routes/auth/controllers/core/getUserInfo.js +2 -2
- package/dist/server/routes/crud/controllers/deleteCrud.d.ts.map +1 -1
- package/dist/server/routes/crud/controllers/deleteCrud.js +9 -3
- package/dist/server/routes/crud/controllers/insert.d.ts.map +1 -1
- package/dist/server/routes/crud/controllers/insert.js +9 -3
- package/dist/server/routes/crud/controllers/table.d.ts.map +1 -1
- package/dist/server/routes/crud/controllers/table.js +21 -8
- package/dist/server/routes/crud/controllers/update.d.ts.map +1 -1
- package/dist/server/routes/crud/controllers/update.js +12 -3
- package/dist/server/routes/table/functions/getData.d.ts.map +1 -1
- package/dist/server/routes/table/functions/getData.js +18 -5
- package/dist/utils.d.ts +2 -1
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +2 -1
- package/package.json +1 -1
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
declare const resourcesList: any;
|
|
2
|
+
declare const publicResourcesList: any[];
|
|
3
|
+
declare const resources: any;
|
|
4
|
+
export { resourcesList, publicResourcesList, resources };
|
|
5
|
+
declare const _default: null;
|
|
6
|
+
export default _default;
|
|
7
|
+
//# sourceMappingURL=getResources.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getResources.d.ts","sourceRoot":"","sources":["../../../../../server/plugins/access/funcs/getResources.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,aAAa,KAEb,CAAC;AAEP,QAAA,MAAM,mBAAmB,EAAE,GAAG,EAM7B,CAAC;AAEF,QAAA,MAAM,SAAS,KAGd,CAAC;AAEF,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,SAAS,EAAE,CAAC;;AACzD,wBAAoB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
2
|
+
const resourcesList = existsSync("config/resources.json")
|
|
3
|
+
? JSON.parse(readFileSync("config/resources.json", "utf-8") || "[]")
|
|
4
|
+
: [];
|
|
5
|
+
const publicResourcesList = resourcesList.map(({ name, actions, feature }) => ({
|
|
6
|
+
name,
|
|
7
|
+
actions,
|
|
8
|
+
feature,
|
|
9
|
+
}));
|
|
10
|
+
const resources = resourcesList.reduce((acc, curr) => ({ ...acc, [curr.name]: curr.table }), {});
|
|
11
|
+
export { resourcesList, publicResourcesList, resources };
|
|
12
|
+
export default null;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getUserPermissions.d.ts","sourceRoot":"","sources":["../../../../../server/plugins/access/funcs/getUserPermissions.ts"],"names":[],"mappings":"AAYA,wBAA8B,kBAAkB,CAC9C,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,EACtD,EAAE,MAAmB,gBAkCtB"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import pgClients from "../../pg/pgClients.js";
|
|
2
|
+
import { resourcesList } from "./getResources.js";
|
|
3
|
+
const q = `select resource_id as name,
|
|
4
|
+
array_intersect(coalesce(a.actions, array['read']), coalesce(c.actions, array['create', 'read', 'update', 'delete'])) as actions,
|
|
5
|
+
b.name as role
|
|
6
|
+
from admin.role_access a
|
|
7
|
+
left join admin.roles b on a.role_id=b.role_id and b.enabled
|
|
8
|
+
left join admin.user_roles c on a.role_id=c.role_id
|
|
9
|
+
where resource_id is not null and $1 in (a.user_uid, c.user_uid)`;
|
|
10
|
+
export default async function getUserPermissions({ uid, resource }, pg = pgClients.client) {
|
|
11
|
+
if (!uid)
|
|
12
|
+
return [];
|
|
13
|
+
// ? in case pg.pk not set yet
|
|
14
|
+
const pks = await pg
|
|
15
|
+
.query(`SELECT json_object_agg(conrelid::regclass, (SELECT attname FROM pg_attribute WHERE attrelid = c.conrelid AND attnum = c.conkey[1]) )
|
|
16
|
+
FROM pg_constraint c WHERE contype = 'p' AND connamespace::regnamespace::text = 'admin'`)
|
|
17
|
+
.then((el) => el.rows?.[0]?.json_object_agg || {});
|
|
18
|
+
const permissions = pks["admin.role_access"] &&
|
|
19
|
+
pks["admin.user_roles"] &&
|
|
20
|
+
pks["admin.users"] &&
|
|
21
|
+
uid
|
|
22
|
+
? await pg.query(q, [uid]).then((el) => el.rows || [])
|
|
23
|
+
: [];
|
|
24
|
+
const filteredPermissions = resource
|
|
25
|
+
? permissions.filter((el) => el.name === resource)
|
|
26
|
+
: permissions;
|
|
27
|
+
const userPermissions = (filteredPermissions || [])
|
|
28
|
+
.map((e) => {
|
|
29
|
+
const resource = resourcesList.find((el) => el.name === e.name);
|
|
30
|
+
if (resource) {
|
|
31
|
+
return { ...resource, actions: e.actions };
|
|
32
|
+
}
|
|
33
|
+
})
|
|
34
|
+
.filter(Boolean);
|
|
35
|
+
return userPermissions;
|
|
36
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataInsert.d.ts","sourceRoot":"","sources":["../../../../../server/plugins/crud/funcs/dataInsert.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAgBzD,wBAA8B,UAAU,CAAC,EACvC,EAAE,EACF,KAAK,EAAE,MAAM,EACb,OAAO,EACP,IAAI,EACJ,EAAE,EAAE,GAAG,EACP,GAAG,EACH,SAAc,GACf,EAAE;IACD,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B,EAAE,CAAC,EAAE,UAAU,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACjC,
|
|
1
|
+
{"version":3,"file":"dataInsert.d.ts","sourceRoot":"","sources":["../../../../../server/plugins/crud/funcs/dataInsert.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAgBzD,wBAA8B,UAAU,CAAC,EACvC,EAAE,EACF,KAAK,EAAE,MAAM,EACb,OAAO,EACP,IAAI,EACJ,EAAE,EAAE,GAAG,EACP,GAAG,EACH,SAAc,GACf,EAAE;IACD,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B,EAAE,CAAC,EAAE,UAAU,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACjC,gBAmKA"}
|
|
@@ -111,7 +111,13 @@ export default async function dataInsert({ id, table: table1, referer, data, pg:
|
|
|
111
111
|
if (!isClient) {
|
|
112
112
|
await client.query("commit;");
|
|
113
113
|
}
|
|
114
|
-
return {
|
|
114
|
+
return {
|
|
115
|
+
rowCount: res.rowCount,
|
|
116
|
+
command: res.command,
|
|
117
|
+
id: id1,
|
|
118
|
+
data: res.rows[0],
|
|
119
|
+
...res.rows[0],
|
|
120
|
+
};
|
|
115
121
|
}
|
|
116
122
|
catch (err) {
|
|
117
123
|
logger.file("crud/insert", {
|
|
@@ -8,5 +8,5 @@
|
|
|
8
8
|
* @param {String} user.user_type User type
|
|
9
9
|
* @returns { scope: String, roles: String[], actions: String[], query: String }
|
|
10
10
|
*/
|
|
11
|
-
export default function getAccess({ table, form, user, method }: any, pg?: any): Promise<{} | null>;
|
|
11
|
+
export default function getAccess({ resource, table, form, user, method }: any, pg?: any): Promise<{} | null>;
|
|
12
12
|
//# sourceMappingURL=getAccess.d.ts.map
|
|
@@ -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,KAAK,EAAE,IAAI,EAAE,IAAS,EAAE,MAAc,EAAE,EAAE,GAAG,
|
|
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,sBA2GtB"}
|
|
@@ -2,7 +2,7 @@ import pgClients from "../../pg/pgClients.js";
|
|
|
2
2
|
import getMeta from "../../pg/funcs/getMeta.js";
|
|
3
3
|
import getTemplate from "../../table/funcs/getTemplate.js";
|
|
4
4
|
import applyHook from "../../hook/applyHook.js";
|
|
5
|
-
import getUserPermissions from "../../
|
|
5
|
+
import getUserPermissions from "../../access/funcs/getUserPermissions.js";
|
|
6
6
|
const allActions = ["view", "edit", "add", "del"];
|
|
7
7
|
const matches = {
|
|
8
8
|
read: "view",
|
|
@@ -35,10 +35,16 @@ where $1 in (a.route_id, a.alias, a.table_name) and $2 in (b.user_uid, d.user_ui
|
|
|
35
35
|
* @param {String} user.user_type User type
|
|
36
36
|
* @returns { scope: String, roles: String[], actions: String[], query: String }
|
|
37
37
|
*/
|
|
38
|
-
export default async function getAccess({ table, form, user = {}, method = "GET" }, pg = pgClients.client) {
|
|
38
|
+
export default async function getAccess({ resource, table, form, user = {}, method = "GET" }, pg = pgClients.client) {
|
|
39
39
|
if (!table)
|
|
40
40
|
return null;
|
|
41
|
-
const hookData = await applyHook("getAccess", {
|
|
41
|
+
const hookData = await applyHook("getAccess", {
|
|
42
|
+
resource,
|
|
43
|
+
table,
|
|
44
|
+
user,
|
|
45
|
+
pg,
|
|
46
|
+
method,
|
|
47
|
+
});
|
|
42
48
|
if (hookData)
|
|
43
49
|
return hookData;
|
|
44
50
|
const { uid, user_type: userType = "regular" } = user;
|
|
@@ -48,6 +54,15 @@ export default async function getAccess({ table, form, user = {}, method = "GET"
|
|
|
48
54
|
if (userType === "viewer") {
|
|
49
55
|
return { actions: ["view"], query: "1=1" };
|
|
50
56
|
}
|
|
57
|
+
if (resource) {
|
|
58
|
+
const permissions = await getUserPermissions({ resource, uid }, pg);
|
|
59
|
+
const actions = (permissions || []).flatMap((el) => el.actions.map((e) => matches[e] || e));
|
|
60
|
+
return {
|
|
61
|
+
scope: permissions?.scope,
|
|
62
|
+
actions,
|
|
63
|
+
query: permissions?.query || "1=1",
|
|
64
|
+
};
|
|
65
|
+
}
|
|
51
66
|
const body = await getTemplate("table", table);
|
|
52
67
|
const tableActions = !body && form
|
|
53
68
|
? allActions // if db table and form => full access (token)
|
|
@@ -90,15 +105,12 @@ export default async function getAccess({ table, form, user = {}, method = "GET"
|
|
|
90
105
|
}))
|
|
91
106
|
: {};
|
|
92
107
|
const query = userAccess?.scope === "my" ? `uid='${uid}'` : "1=1";
|
|
93
|
-
const
|
|
94
|
-
.filter((e) => e.name === (body.table || table))
|
|
95
|
-
.flatMap((el) => el.actions.map((e) => matches[e] || e)));
|
|
96
|
-
const actions = permissions.concat(userAccess?.interface_actions
|
|
108
|
+
const actions = userAccess?.interface_actions
|
|
97
109
|
?.filter((el) => userAccess?.role_actions?.length
|
|
98
110
|
? userAccess?.role_actions.includes(el)
|
|
99
111
|
: true)
|
|
100
112
|
?.filter((el) => tableActions.includes(el))
|
|
101
|
-
?.filter?.((el, idx, arr) => arr.indexOf(el) === idx)
|
|
113
|
+
?.filter?.((el, idx, arr) => arr.indexOf(el) === idx);
|
|
102
114
|
return {
|
|
103
115
|
scope: userAccess?.scope,
|
|
104
116
|
roles: userAccess?.roles,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import logger from "../../logger/getLogger.js";
|
|
2
|
-
import getUserPermissions from "../../
|
|
2
|
+
import getUserPermissions from "../../access/funcs/getUserPermissions.js";
|
|
3
3
|
import pgClients from "../../pg/pgClients.js";
|
|
4
4
|
export default async function checkPermissions(req, reply) {
|
|
5
5
|
const { originalUrl: path, query, params, method, routeOptions, pg = pgClients.client, } = req;
|
|
@@ -16,7 +16,7 @@ export default async function checkPermissions(req, reply) {
|
|
|
16
16
|
if (!permissions?.length) {
|
|
17
17
|
return null;
|
|
18
18
|
}
|
|
19
|
-
const userPermissions = await getUserPermissions(user?.uid, pg).then((arr) => arr.reduce((acc, curr) => ({ ...acc, [curr.name]: curr.actions }), {}));
|
|
19
|
+
const userPermissions = await getUserPermissions({ uid: user?.uid }, pg).then((arr) => arr.reduce((acc, curr) => ({ ...acc, [curr.name]: curr.actions }), {}));
|
|
20
20
|
const havePermission = Object.keys(userPermissions).length &&
|
|
21
21
|
permissions?.length &&
|
|
22
22
|
permissions.length ===
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"access.resources.d.ts","sourceRoot":"","sources":["../../../../../server/routes/access/controllers/access.resources.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,GAAG,KAEH,CAAC;AAEP,QAAA,MAAM,eAAe,EAAE,GAAG,EAIvB,CAAC;AAEJ,QAAA,MAAM,eAAe,GAAU,MAAM,GAAG,KAAG,OAAO,CAAC,GAAG,EAAE,CAEvD,CAAC;AAEF,OAAO,EAAE,GAAG,IAAI,SAAS,EAAE,eAAe,EAAE,CAAC;AAC7C,eAAe,eAAe,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
2
|
+
const arr = existsSync("config/resources.json")
|
|
3
|
+
? JSON.parse(readFileSync("config/resources.json", "utf-8") || "[]")
|
|
4
|
+
: [];
|
|
5
|
+
const publicResources = arr.map(({ name, actions, feature }) => ({
|
|
6
|
+
name,
|
|
7
|
+
actions,
|
|
8
|
+
feature,
|
|
9
|
+
}));
|
|
10
|
+
const accessResources = async (req) => {
|
|
11
|
+
return publicResources;
|
|
12
|
+
};
|
|
13
|
+
export { arr as resources, publicResources };
|
|
14
|
+
export default accessResources;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"access.user.d.ts","sourceRoot":"","sources":["../../../../../server/routes/access/controllers/access.user.ts"],"names":[],"mappings":"AAEA,wBAA8B,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,
|
|
1
|
+
{"version":3,"file":"access.user.d.ts","sourceRoot":"","sources":["../../../../../server/routes/access/controllers/access.user.ts"],"names":[],"mappings":"AAEA,wBAA8B,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,gBAqC5D"}
|
|
@@ -11,11 +11,15 @@ export default async function accessUser(req, reply) {
|
|
|
11
11
|
left join admin.role_access b on a.route_id=b.route_id
|
|
12
12
|
where b.user_uid=$1`, [req.params.id])
|
|
13
13
|
.then((el) => el.rows || []);
|
|
14
|
+
const resources = await pg
|
|
15
|
+
.query(`select resource_id, actions from admin.role_access
|
|
16
|
+
where resource_id is not null and user_uid=$1`, [req.params.id])
|
|
17
|
+
.then((el) => el.rows || []);
|
|
14
18
|
const user = await pg
|
|
15
19
|
.query(`select user_uid as id, user_name as name, access_granted,
|
|
16
20
|
b.cdate as user_created, b.last_activity_date as last_activity from admin.user_roles a
|
|
17
21
|
left join admin.users b on a.user_uid=b.uid
|
|
18
22
|
where a.user_uid=$1`, [req.params.id])
|
|
19
23
|
.then((el) => el.rows?.[0]);
|
|
20
|
-
return reply.status(200).send({ routes, user });
|
|
24
|
+
return reply.status(200).send({ routes, resources, user });
|
|
21
25
|
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
declare const arr: any;
|
|
2
|
+
interface Resource {
|
|
3
|
+
name: string;
|
|
4
|
+
actions: string[];
|
|
5
|
+
feature: string;
|
|
6
|
+
}
|
|
7
|
+
declare const publicResources: Resource[];
|
|
8
|
+
declare const resources: (req?: any) => Promise<Resource[]>;
|
|
9
|
+
export { arr as resources, publicResources };
|
|
10
|
+
export default resources;
|
|
11
|
+
//# sourceMappingURL=resources.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../../../../server/routes/access/controllers/resources.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,GAAG,KAEH,CAAC;AAEP,UAAU,QAAQ;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,QAAA,MAAM,eAAe,EAAE,QAAQ,EAM9B,CAAC;AAEF,QAAA,MAAM,SAAS,GAAU,MAAM,GAAG,KAAG,OAAO,CAAC,QAAQ,EAAE,CAEtD,CAAC;AAEF,OAAO,EAAE,GAAG,IAAI,SAAS,EAAE,eAAe,EAAE,CAAC;AAC7C,eAAe,SAAS,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
2
|
+
const arr = existsSync("config/resources.json")
|
|
3
|
+
? JSON.parse(readFileSync("config/resources.json", "utf-8") || "[]")
|
|
4
|
+
: [];
|
|
5
|
+
const publicResources = arr.map(({ name, actions, feature }) => ({
|
|
6
|
+
name,
|
|
7
|
+
actions,
|
|
8
|
+
feature,
|
|
9
|
+
}));
|
|
10
|
+
const resources = async (req) => {
|
|
11
|
+
return publicResources;
|
|
12
|
+
};
|
|
13
|
+
export { arr as resources, publicResources };
|
|
14
|
+
export default resources;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../../../../server/routes/access/functions/resources.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,aAAa,KAEb,CAAC;AAEP,QAAA,MAAM,mBAAmB,EAAE,GAAG,EAM7B,CAAC;AAEF,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,CAAC;;AAC9C,wBAAoB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
2
|
+
const resourcesList = existsSync("config/resources.json")
|
|
3
|
+
? JSON.parse(readFileSync("config/resources.json", "utf-8") || "[]")
|
|
4
|
+
: [];
|
|
5
|
+
const publicResourcesList = resourcesList.map(({ name, actions, feature }) => ({
|
|
6
|
+
name,
|
|
7
|
+
actions,
|
|
8
|
+
feature,
|
|
9
|
+
}));
|
|
10
|
+
export { resourcesList, publicResourcesList };
|
|
11
|
+
export default null;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export default function route(fastify: any, opt?: any): void
|
|
1
|
+
export default function route(fastify: any, opt?: any): Promise<void>;
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/routes/access/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/routes/access/index.ts"],"names":[],"mappings":"AAgBA,wBAA8B,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,GAAE,GAAQ,iBA2B9D"}
|
|
@@ -3,11 +3,13 @@ import accessGroupPost from "./controllers/access.group.post.js";
|
|
|
3
3
|
import accessUser from "./controllers/access.user.js";
|
|
4
4
|
import accessUserPost from "./controllers/access.user.post.js";
|
|
5
5
|
import accessInterface from "./controllers/access.interface.js";
|
|
6
|
+
import { publicResourcesList } from "../../plugins/access/funcs/getResources.js";
|
|
6
7
|
import { accessGroupPostSchema, accessGroupSchema, accessInterfaceSchema, accessUserPostSchema, accessUserSchema, } from "./schema.js";
|
|
7
|
-
export default function route(fastify, opt = {}) {
|
|
8
|
+
export default async function route(fastify, opt = {}) {
|
|
8
9
|
fastify.get("/access-group/:id", { schema: accessGroupSchema }, accessGroup);
|
|
9
10
|
fastify.post("/access-group/:id", { schema: accessGroupPostSchema }, accessGroupPost);
|
|
10
11
|
fastify.get("/access-user/:id", { permission: "admin.users.read", schema: accessUserSchema }, accessUser);
|
|
11
12
|
fastify.post("/access-user/:id", { permission: "admin.users.update", schema: accessUserPostSchema }, accessUserPost);
|
|
12
13
|
fastify.get("/access-interface/:name", { schema: accessInterfaceSchema }, accessInterface);
|
|
14
|
+
fastify.get("/resources", { config: { policy: "L0" } }, async () => publicResourcesList);
|
|
13
15
|
}
|
|
@@ -2,7 +2,7 @@ import config from "../../../../../config.js";
|
|
|
2
2
|
import pgClients from "../../../../plugins/pg/pgClients.js";
|
|
3
3
|
import applyHook from "../../../../plugins/hook/applyHook.js";
|
|
4
4
|
import getRedis from "../../../../plugins/redis/funcs/getRedis.js";
|
|
5
|
-
import getUserPermissions from "../../../../plugins/
|
|
5
|
+
import getUserPermissions from "../../../../plugins/access/funcs/getUserPermissions.js";
|
|
6
6
|
const rclient2 = getRedis({ db: 2 });
|
|
7
7
|
const q = `select
|
|
8
8
|
|
|
@@ -74,7 +74,7 @@ export default async function getUserInfo(req) {
|
|
|
74
74
|
req.user?.uid
|
|
75
75
|
? await pg.query(q, [user.uid]).then((el) => el.rows || [])
|
|
76
76
|
: [];
|
|
77
|
-
const permissions = await getUserPermissions(user?.uid, pg);
|
|
77
|
+
const permissions = await getUserPermissions({ uid: user?.uid }, pg);
|
|
78
78
|
Object.assign(payload, {
|
|
79
79
|
user: userInfo,
|
|
80
80
|
settings,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deleteCrud.d.ts","sourceRoot":"","sources":["../../../../../server/routes/crud/controllers/deleteCrud.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"deleteCrud.d.ts","sourceRoot":"","sources":["../../../../../server/routes/crud/controllers/deleteCrud.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,SAAS,CAAC;AAc5C,wBAA8B,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,YAAY,kBA8IrE"}
|
|
@@ -5,6 +5,7 @@ import getToken from "../../../plugins/crud/funcs/getToken.js";
|
|
|
5
5
|
import applyHook from "../../../plugins/hook/applyHook.js";
|
|
6
6
|
import getOpt from "../../../plugins/crud/funcs/getOpt.js";
|
|
7
7
|
import getTemplate from "../../../plugins/table/funcs/getTemplate.js";
|
|
8
|
+
import { resources } from "../../../plugins/access/funcs/getResources.js";
|
|
8
9
|
import dataDelete from "../../../plugins/crud/funcs/dataDelete.js";
|
|
9
10
|
export default async function deleteCrud(req, reply) {
|
|
10
11
|
const { pg = pgClients.client, user = {}, params = {}, headers = {}, method, } = req || {};
|
|
@@ -25,7 +26,11 @@ export default async function deleteCrud(req, reply) {
|
|
|
25
26
|
})) ||
|
|
26
27
|
(await getOpt(params.id || params.table, user.uid)) ||
|
|
27
28
|
(await getOpt(params.table, user.uid));
|
|
28
|
-
const
|
|
29
|
+
const resource = resources[hookData?.resource || tokenData?.resource || params.table]
|
|
30
|
+
? tokenData?.resource || params.table
|
|
31
|
+
: undefined;
|
|
32
|
+
const { table: del, id = params.id, query, actions: actionsToken, } = (resources[params.table] ? { table: resources[params.table] } : null) ||
|
|
33
|
+
hookData ||
|
|
29
34
|
tokenData ||
|
|
30
35
|
(config.security?.disableToken || config.local || config.auth?.disable
|
|
31
36
|
? req.params
|
|
@@ -36,14 +41,15 @@ export default async function deleteCrud(req, reply) {
|
|
|
36
41
|
code: 403,
|
|
37
42
|
});
|
|
38
43
|
}
|
|
39
|
-
const { actions = [], message: accessMessage } = (await getAccess({ table: del, id, user, method }, pg)) || {};
|
|
44
|
+
const { actions = [], message: accessMessage } = (await getAccess({ resource, table: del, id, user, method }, pg)) || {};
|
|
40
45
|
if (accessMessage) {
|
|
41
46
|
return reply.status(403).send({
|
|
42
47
|
error: accessMessage,
|
|
43
48
|
code: 403,
|
|
44
49
|
});
|
|
45
50
|
}
|
|
46
|
-
if (!
|
|
51
|
+
if (!resource &&
|
|
52
|
+
!tokenData &&
|
|
47
53
|
!config?.local &&
|
|
48
54
|
!config.security?.disableToken &&
|
|
49
55
|
!config.auth?.disable) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"insert.d.ts","sourceRoot":"","sources":["../../../../../server/routes/crud/controllers/insert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"insert.d.ts","sourceRoot":"","sources":["../../../../../server/routes/crud/controllers/insert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,SAAS,CAAC;AAgB5C,wBAA8B,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,YAAY,kBAsNjE"}
|
|
@@ -9,6 +9,7 @@ import validateData from "../../../plugins/crud/funcs/validateData.js";
|
|
|
9
9
|
import getAccess from "../../../plugins/crud/funcs/getAccess.js";
|
|
10
10
|
import getToken from "../../../plugins/crud/funcs/getToken.js";
|
|
11
11
|
import getTemplate from "../../../plugins/table/funcs/getTemplate.js";
|
|
12
|
+
import { resources } from "../../../plugins/access/funcs/getResources.js";
|
|
12
13
|
export default async function insert(req, reply) {
|
|
13
14
|
const { pg = pgClients.client, user = {}, params = {}, body = {}, headers = {}, method, } = req || {};
|
|
14
15
|
if (!user) {
|
|
@@ -33,19 +34,24 @@ export default async function insert(req, reply) {
|
|
|
33
34
|
mode: "a",
|
|
34
35
|
json: 1,
|
|
35
36
|
});
|
|
36
|
-
const
|
|
37
|
+
const resource = resources[hookData?.resource || tokenData?.resource || params.table]
|
|
38
|
+
? tokenData?.resource || params.table
|
|
39
|
+
: undefined;
|
|
40
|
+
const { form, table: add } = (resources[params.table] ? { table: resources[params.table] } : null) ||
|
|
41
|
+
hookData ||
|
|
37
42
|
tokenData ||
|
|
38
43
|
(config.security?.disableToken || config.local || config.auth?.disable
|
|
39
44
|
? req.params
|
|
40
45
|
: {});
|
|
41
|
-
const { actions = [], message: accessMessage } = (await getAccess({ table: add, form, user, method }, pg)) || {};
|
|
46
|
+
const { actions = [], message: accessMessage } = (await getAccess({ resource, table: add, form, user, method }, pg)) || {};
|
|
42
47
|
if (accessMessage) {
|
|
43
48
|
return reply.status(403).send({
|
|
44
49
|
error: accessMessage,
|
|
45
50
|
code: 403,
|
|
46
51
|
});
|
|
47
52
|
}
|
|
48
|
-
if (!
|
|
53
|
+
if (!resource &&
|
|
54
|
+
!tokenData &&
|
|
49
55
|
!config.local &&
|
|
50
56
|
!config.security?.disableToken &&
|
|
51
57
|
!config.auth?.disable) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../../../server/routes/crud/controllers/table.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../../../server/routes/crud/controllers/table.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAgB5C,wBAA8B,QAAQ,CACpC,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,GAAG,gBA8PZ"}
|
|
@@ -7,6 +7,7 @@ import getToken from "../../../plugins/crud/funcs/getToken.js";
|
|
|
7
7
|
import setToken from "../../../plugins/crud/funcs/setToken.js";
|
|
8
8
|
import getTemplate from "../../../plugins/table/funcs/getTemplate.js";
|
|
9
9
|
import extraDataGet from "../../../plugins/extra/extraDataGet.js";
|
|
10
|
+
import { resources } from "../../../plugins/access/funcs/getResources.js";
|
|
10
11
|
export default async function tableAPI(req, reply, called) {
|
|
11
12
|
const { pg = pgClients.client, params, user = {}, query = {}, method } = req;
|
|
12
13
|
const tokenData = await getToken({
|
|
@@ -24,7 +25,13 @@ export default async function tableAPI(req, reply, called) {
|
|
|
24
25
|
if (hookData?.message && hookData?.status) {
|
|
25
26
|
return reply.status(hookData?.status).send(hookData?.message);
|
|
26
27
|
}
|
|
27
|
-
const
|
|
28
|
+
const resource = resources[hookData?.resource || tokenData?.resource || params.table]
|
|
29
|
+
? tokenData?.resource || params.table
|
|
30
|
+
: undefined;
|
|
31
|
+
const templateName = resources[params.table] ||
|
|
32
|
+
hookData?.table ||
|
|
33
|
+
tokenData?.table ||
|
|
34
|
+
params.table;
|
|
28
35
|
const loadTable = await getTemplate("table", templateName);
|
|
29
36
|
if (!loadTable &&
|
|
30
37
|
!pg.pk?.[tokenData?.table] &&
|
|
@@ -41,7 +48,8 @@ export default async function tableAPI(req, reply, called) {
|
|
|
41
48
|
if (!table && !id) {
|
|
42
49
|
return reply.status(400).send("not enough params");
|
|
43
50
|
}
|
|
44
|
-
const { actions = [], query: accessQuery, message: accessMessage } = (await getAccess({
|
|
51
|
+
const { actions = [], query: accessQuery, message: accessMessage, } = (await getAccess({
|
|
52
|
+
resource,
|
|
45
53
|
table: templateName,
|
|
46
54
|
form,
|
|
47
55
|
id,
|
|
@@ -54,7 +62,8 @@ export default async function tableAPI(req, reply, called) {
|
|
|
54
62
|
code: 403,
|
|
55
63
|
});
|
|
56
64
|
}
|
|
57
|
-
if (!
|
|
65
|
+
if (!resource &&
|
|
66
|
+
!tokenData &&
|
|
58
67
|
!config?.local &&
|
|
59
68
|
!config.security?.disableToken &&
|
|
60
69
|
!called) {
|
|
@@ -83,9 +92,11 @@ export default async function tableAPI(req, reply, called) {
|
|
|
83
92
|
Object.hasOwn(schema[key], "colModel"));
|
|
84
93
|
// skip non-existing columns
|
|
85
94
|
const columnList = dbColumns.map((el) => el.name || el).join(",");
|
|
86
|
-
const
|
|
87
|
-
? await pg
|
|
88
|
-
|
|
95
|
+
const fields = !loadTable?.table
|
|
96
|
+
? await pg
|
|
97
|
+
.query(`select * from ${table} limit 0`)
|
|
98
|
+
.then((el) => el.fields || [])
|
|
99
|
+
: [];
|
|
89
100
|
const cols = loadTable?.table
|
|
90
101
|
? Object.keys(schema || {})
|
|
91
102
|
.filter((col) => columnList.includes(col) && !extraKeys.includes(col))
|
|
@@ -147,7 +158,9 @@ export default async function tableAPI(req, reply, called) {
|
|
|
147
158
|
.map((col) => col.name || col.key)
|
|
148
159
|
.join(",")} from ${extraTable} a where ${parentId}=$1`;
|
|
149
160
|
// console.log(table, formName, q1);
|
|
150
|
-
const
|
|
161
|
+
const extraRows = await pg
|
|
162
|
+
.query(q1, [id])
|
|
163
|
+
.then((el) => el.rows || []);
|
|
151
164
|
Object.assign(data, { [key]: extraRows });
|
|
152
165
|
}));
|
|
153
166
|
}
|
|
@@ -158,7 +171,7 @@ export default async function tableAPI(req, reply, called) {
|
|
|
158
171
|
data.token = tokenData?.table
|
|
159
172
|
? params.table
|
|
160
173
|
: setToken({
|
|
161
|
-
ids: [JSON.stringify({ id, table, form, obj })],
|
|
174
|
+
ids: [JSON.stringify({ id, table, form, obj, resource })],
|
|
162
175
|
uid: user.uid,
|
|
163
176
|
array: 1,
|
|
164
177
|
})?.[0];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../../../server/routes/crud/controllers/update.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../../../server/routes/crud/controllers/update.ts"],"names":[],"mappings":"AAgBA,wBAA8B,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,gBAgNxD"}
|
|
@@ -9,11 +9,12 @@ import validateData from "../../../plugins/crud/funcs/validateData.js";
|
|
|
9
9
|
import getAccess from "../../../plugins/crud/funcs/getAccess.js";
|
|
10
10
|
import getToken from "../../../plugins/crud/funcs/getToken.js";
|
|
11
11
|
import getTemplate from "../../../plugins/table/funcs/getTemplate.js";
|
|
12
|
+
import { resources } from "../../../plugins/access/funcs/getResources.js";
|
|
12
13
|
import insert from "./insert.js";
|
|
13
14
|
export default async function update(req, reply) {
|
|
14
15
|
const { pg = pgClients.client, user, params = {}, body = {}, headers = {}, method, } = req;
|
|
15
16
|
const { referer } = headers;
|
|
16
|
-
const unittest = process.env.NODE_ENV ===
|
|
17
|
+
const unittest = process.env.NODE_ENV === "test" || process.env.VITEST;
|
|
17
18
|
if (!user) {
|
|
18
19
|
return reply.status(403).send({ error: "access restricted", code: 403 });
|
|
19
20
|
}
|
|
@@ -35,12 +36,19 @@ export default async function update(req, reply) {
|
|
|
35
36
|
mode: "w",
|
|
36
37
|
json: 1,
|
|
37
38
|
});
|
|
38
|
-
const
|
|
39
|
+
const resource = resources[hookData?.resource || tokenData?.resource || params.table]
|
|
40
|
+
? tokenData?.resource || params.table
|
|
41
|
+
: undefined;
|
|
42
|
+
const { form, table: edit, id, } = (resources[params.table]
|
|
43
|
+
? { table: resources[params.table], id: params.id }
|
|
44
|
+
: null) ||
|
|
45
|
+
hookData ||
|
|
39
46
|
tokenData ||
|
|
40
47
|
(config.security?.disableToken || config.local || config.auth?.disable
|
|
41
48
|
? params
|
|
42
49
|
: {});
|
|
43
50
|
const { actions = [], message: accessMessage } = (await getAccess({
|
|
51
|
+
resource,
|
|
44
52
|
table: edit,
|
|
45
53
|
form,
|
|
46
54
|
id,
|
|
@@ -53,7 +61,8 @@ export default async function update(req, reply) {
|
|
|
53
61
|
code: 403,
|
|
54
62
|
});
|
|
55
63
|
}
|
|
56
|
-
if (!
|
|
64
|
+
if (!resource &&
|
|
65
|
+
!tokenData &&
|
|
57
66
|
!config.local &&
|
|
58
67
|
!config.security?.disableToken &&
|
|
59
68
|
!config.auth?.disable) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getData.d.ts","sourceRoot":"","sources":["../../../../../server/routes/table/functions/getData.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"getData.d.ts","sourceRoot":"","sources":["../../../../../server/routes/table/functions/getData.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAkFzD,wBAA8B,OAAO,CACnC,EACE,EAAqB,EACrB,MAAM,EACN,KAAK,EACL,EAAE,EACF,OAAY,EACZ,KAAU,EACV,IAAS,EACT,YAAY,EACZ,KAAY,EACZ,UAAU,EACV,OAAO,EAAE,YAAY,EACrB,WAAW,EAAE,gBAAgB,EAC7B,OAAO,EAAE,YAAY,EACrB,QAAgB,GACjB,EAAE;IACD,EAAE,CAAC,EAAE,UAAU,CAAC;IAChB,MAAM,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACxD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,GAAG,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,EACD,MAAM,CAAC,EAAE,YAAY,EACrB,MAAM,CAAC,EAAE,GAAG,gBA22Bb"}
|
|
@@ -18,6 +18,7 @@ import metaFormat from "../../../plugins/table/funcs/metaFormat/index.js";
|
|
|
18
18
|
import extraDataGet from "../../../plugins/extra/extraDataGet.js";
|
|
19
19
|
import locales from "../controllers/utils/locales.js";
|
|
20
20
|
import conditions from "../controllers/utils/conditions.js";
|
|
21
|
+
import { resources } from "../../../plugins/access/funcs/getResources.js";
|
|
21
22
|
const components = {
|
|
22
23
|
"vs-widget-file": "select 'vs-widget-file' as component, count(*) from crm.files where entity_id=$1 and file_status<>3",
|
|
23
24
|
"vs-widget-comments": "select 'vs-widget-comments' as component, count(*) from crm.communications where entity_id=$1",
|
|
@@ -85,7 +86,11 @@ export default async function dataAPI({ pg = pgClients.client, params, table, id
|
|
|
85
86
|
json: true,
|
|
86
87
|
});
|
|
87
88
|
const tokenData = tokenData1 || tokenData2;
|
|
88
|
-
const
|
|
89
|
+
const resource = resources[paramsTable] ? paramsTable : undefined;
|
|
90
|
+
const templateName = resources[paramsTable] ||
|
|
91
|
+
tokenData?.table ||
|
|
92
|
+
hookData?.table ||
|
|
93
|
+
paramsTable;
|
|
89
94
|
const loadTable = await getTemplate("table", templateName);
|
|
90
95
|
if (tokenData?.table && !loadTable) {
|
|
91
96
|
const { rows = [], fields = [] } = await pg.query(`select ${tokenData.columns || "*"} from ${tokenData.table} where ${tokenData.query || "true"} limit 10`);
|
|
@@ -104,9 +109,11 @@ export default async function dataAPI({ pg = pgClients.client, params, table, id
|
|
|
104
109
|
const sqlTable = filterSql
|
|
105
110
|
.map((el, i) => ` left join lateral (${el.sql}) ${el.name || `t${i}`} on 1=1 `)
|
|
106
111
|
?.join("") || "";
|
|
107
|
-
const d =
|
|
108
|
-
.
|
|
109
|
-
|
|
112
|
+
const d = pg
|
|
113
|
+
? await Promise.all(filterSql.map((el, i) => pg
|
|
114
|
+
.query(`select ${el.name || `t${i}`}.* from(select * from ${loadTable.table})t ${sqlTable} limit 0`)
|
|
115
|
+
.then((item) => item.fields)))
|
|
116
|
+
: [];
|
|
110
117
|
d.forEach((el, i) => {
|
|
111
118
|
filterSql[i].inline = el.length === 1;
|
|
112
119
|
filterSql[i].fields = el.map((f) => f.name);
|
|
@@ -137,6 +144,7 @@ export default async function dataAPI({ pg = pgClients.client, params, table, id
|
|
|
137
144
|
message: undefined,
|
|
138
145
|
}
|
|
139
146
|
: (await getAccess({
|
|
147
|
+
resource,
|
|
140
148
|
table: templateName,
|
|
141
149
|
id: objectId,
|
|
142
150
|
user,
|
|
@@ -150,7 +158,11 @@ export default async function dataAPI({ pg = pgClients.client, params, table, id
|
|
|
150
158
|
}
|
|
151
159
|
// const body = loadTable || hookData || tokenData;
|
|
152
160
|
const { table: table1, columns = [], sql, cardSql, form, meta, sqlColumns, editable = false, } = loadTable || hookData || tokenData || params || { table };
|
|
153
|
-
const ispublic = loadTable?.public ||
|
|
161
|
+
const ispublic = loadTable?.public ||
|
|
162
|
+
hookData?.public ||
|
|
163
|
+
tokenData?.public ||
|
|
164
|
+
params?.public ||
|
|
165
|
+
false;
|
|
154
166
|
if (!ispublic && !user?.uid && !called) {
|
|
155
167
|
return reply.status(401).send({ error: "unauthorized", code: 401 });
|
|
156
168
|
}
|
|
@@ -596,6 +608,7 @@ export default async function dataAPI({ pg = pgClients.client, params, table, id
|
|
|
596
608
|
format: timeArr[5] - timeArr[4],
|
|
597
609
|
},
|
|
598
610
|
route,
|
|
611
|
+
resource,
|
|
599
612
|
public: ispublic,
|
|
600
613
|
tokens,
|
|
601
614
|
card: !!(loadTable?.card ?? (await getTemplate("card", templateName))),
|
package/dist/utils.d.ts
CHANGED
|
@@ -77,6 +77,8 @@ export { default as getExport } from "./server/plugins/file/getExport.js";
|
|
|
77
77
|
export { default as jsonToCsv } from "./server/routes/file/controllers/utils/jsonToCsv.js";
|
|
78
78
|
export { default as jsonToXls } from "./server/routes/file/controllers/utils/jsonToXls.js";
|
|
79
79
|
export { default as getAdminAccess } from "./server/plugins/access/funcs/getAdminAccess.js";
|
|
80
|
+
export { default as getUserPermissions } from "./server/plugins/access/funcs/getUserPermissions.js";
|
|
81
|
+
export { resourcesList, publicResourcesList, } from "./server/plugins/access/funcs/getResources.js";
|
|
80
82
|
export { default as sendNotification } from "./server/plugins/auth/funcs/sendNotification.js";
|
|
81
83
|
export { default as addUserNotification } from "./server/plugins/notifications/addNotification.js";
|
|
82
84
|
export { addUserCls, editUserCls, deleteUserCls, getUserCls, getUserClsList, } from "./server/plugins/usercls/index.js";
|
|
@@ -87,7 +89,6 @@ export { default as uploadChunk } from "./server/plugins/upload/uploadChunk.js";
|
|
|
87
89
|
export { default as s3Client } from "./server/plugins/file/providers/s3/client.js";
|
|
88
90
|
export { default as dumpDatabase } from "./script/dump.js";
|
|
89
91
|
export { default as migrate } from "./script/migrate.js";
|
|
90
|
-
export { default as getUserPermissions } from "./server/plugins/auth/funcs/getUserPermissions.js";
|
|
91
92
|
declare const _default: null;
|
|
92
93
|
export default _default;
|
|
93
94
|
//# sourceMappingURL=utils.d.ts.map
|
package/dist/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../utils.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../utils.ts"],"names":[],"mappings":"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"}
|
package/dist/utils.js
CHANGED
|
@@ -94,6 +94,8 @@ export { default as getExport } from "./server/plugins/file/getExport.js";
|
|
|
94
94
|
export { default as jsonToCsv } from "./server/routes/file/controllers/utils/jsonToCsv.js";
|
|
95
95
|
export { default as jsonToXls } from "./server/routes/file/controllers/utils/jsonToXls.js";
|
|
96
96
|
export { default as getAdminAccess } from "./server/plugins/access/funcs/getAdminAccess.js";
|
|
97
|
+
export { default as getUserPermissions } from "./server/plugins/access/funcs/getUserPermissions.js";
|
|
98
|
+
export { resourcesList, publicResourcesList, } from "./server/plugins/access/funcs/getResources.js";
|
|
97
99
|
export { default as sendNotification } from "./server/plugins/auth/funcs/sendNotification.js"; // email
|
|
98
100
|
export { default as addUserNotification } from "./server/plugins/notifications/addNotification.js"; // popup, widget, interface etc.
|
|
99
101
|
export { addUserCls, editUserCls, deleteUserCls, getUserCls, getUserClsList, } from "./server/plugins/usercls/index.js";
|
|
@@ -105,5 +107,4 @@ export { default as s3Client } from "./server/plugins/file/providers/s3/client.j
|
|
|
105
107
|
// scripts
|
|
106
108
|
export { default as dumpDatabase } from "./script/dump.js";
|
|
107
109
|
export { default as migrate } from "./script/migrate.js";
|
|
108
|
-
export { default as getUserPermissions } from "./server/plugins/auth/funcs/getUserPermissions.js";
|
|
109
110
|
export default null;
|