UNPKG

@forestadmin/forestadmin-client

Version:

This package contains the logic to use the ForestAdmin API inside an agent.

22 lines 2.71 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); function isSegmentQueryAllowedOnConnection(collectionPermissions, segmentQuery, connectionName) { if (!collectionPermissions || !collectionPermissions.liveQuerySegments || !connectionName) { return false; } const queries = collectionPermissions.liveQuerySegments .filter(liveQuerySegment => liveQuerySegment.connectionName === connectionName) .map(({ query }) => query); // NOTICE: Handle UNION queries made by the FRONT to display available actions on details view // NOTICE: This can only be used on related data (Has Many relationships) to detect available // Smart Actions restricted to segment when a Smart Action is available on multiple SQL segments const unionQueries = segmentQuery.split('/*MULTI-SEGMENTS-QUERIES-UNION*/ UNION '); if (unionQueries.length > 1) { const authorizedQueries = new Set(queries.map(query => query.replace(/;\s*/i, '').trim())); return unionQueries.every((unionQuery) => authorizedQueries.has(unionQuery.trim())); } // NOTICE: Queries made by the FRONT to browse to an SQL segment return queries.some(query => query === segmentQuery); } exports.default = isSegmentQueryAllowedOnConnection; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtc2VnbWVudC1xdWVyeS1hbGxvd2VkLW9uLWNvbm5lY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcGVybWlzc2lvbnMvaXMtc2VnbWVudC1xdWVyeS1hbGxvd2VkLW9uLWNvbm5lY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFFQSxTQUF3QixpQ0FBaUMsQ0FDdkQscUJBQXNELEVBQ3RELFlBQW9CLEVBQ3BCLGNBQXNCO0lBRXRCLElBQUksQ0FBQyxxQkFBcUIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGlCQUFpQixJQUFJLENBQUMsY0FBYyxFQUFFO1FBQ3pGLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFFRCxNQUFNLE9BQU8sR0FBRyxxQkFBcUIsQ0FBQyxpQkFBaUI7U0FDcEQsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLEtBQUssY0FBYyxDQUFDO1NBQzlFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRTdCLDhGQUE4RjtJQUM5Riw2RkFBNkY7SUFDN0YsZ0dBQWdHO0lBQ2hHLE1BQU0sWUFBWSxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMseUNBQXlDLENBQUMsQ0FBQztJQUVuRixJQUFJLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQzNCLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUUzRixPQUFPLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxVQUFrQixFQUFFLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztLQUM3RjtJQUVELGdFQUFnRTtJQUNoRSxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEtBQUssWUFBWSxDQUFDLENBQUM7QUFDdkQsQ0FBQztBQTFCRCxvREEwQkMifQ==