@forestadmin/forestadmin-client
Version:
This package contains the logic to use the ForestAdmin API inside an agent.
22 lines • 2.71 kB
JavaScript
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==
;