UNPKG

@opengis/admin

Version:

This project Softpro Admin

34 lines (29 loc) 1.26 kB
import { pgClients, metaFormat } from '@opengis/fastify-table/utils.js'; import { getAdminAccess } from '../../../../utils.js'; const q = `select a.route_id as id, coalesce(b.user_uid, d.user_uid) as user_uid, coalesce(d.actions, b.actions, array['view']) as actions, b.scope, c.role_id from admin.routes a left join admin.role_access b on a.route_id=b.route_id left join admin.roles c on b.role_id=c.role_id and c.enabled left join admin.user_roles d on c.role_id=d.role_id and ( case when d.expiration is not null then d.expiration > CURRENT_DATE else 1=1 end ) where $1 in (a.route_id, a.alias, a.table_name) and coalesce(b.user_uid, d.user_uid) is not null`; export default async function accessInterface(req) { const { pg = pgClients.client, params = {}, user = {} } = req; // restrict access - admin only const check = await getAdminAccess({ id: params.name, user, }); if (check) return check; const { rows = [] } = await pg.query(q, [params.name]); const cls = { user_uid: 'core.user_uid', actions: 'core.actions', role_id: 'core.roles' }; await metaFormat({ rows, cls, sufix: false }); return { rows }; }