@forestadmin/forestadmin-client
Version:
This package contains the logic to use the ForestAdmin API inside an agent.
19 lines • 2.16 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
function isSegmentQueryAllowed(inputSegmentQuery, authorizedSegments) {
if (!authorizedSegments) {
return false;
}
// 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 = inputSegmentQuery.split('/*MULTI-SEGMENTS-QUERIES-UNION*/ UNION ');
if (unionQueries.length > 1) {
const authorizedQueries = new Set(authorizedSegments.map(segmentQuery => segmentQuery.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 authorizedSegments.some(segmentQuery => segmentQuery === inputSegmentQuery);
}
exports.default = isSegmentQueryAllowed;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtc2VnbWVudC1xdWVyeS1hdXRob3JpemVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Blcm1pc3Npb25zL2lzLXNlZ21lbnQtcXVlcnktYXV0aG9yaXplZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLFNBQXdCLHFCQUFxQixDQUMzQyxpQkFBeUIsRUFDekIsa0JBQTRCO0lBRTVCLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtRQUN2QixPQUFPLEtBQUssQ0FBQztLQUNkO0lBRUQsOEZBQThGO0lBQzlGLDZGQUE2RjtJQUM3RixnR0FBZ0c7SUFDaEcsTUFBTSxZQUFZLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxDQUFDLHlDQUF5QyxDQUFDLENBQUM7SUFFeEYsSUFBSSxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtRQUMzQixNQUFNLGlCQUFpQixHQUFHLElBQUksR0FBRyxDQUMvQixrQkFBa0IsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUNqRixDQUFDO1FBRUYsT0FBTyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsVUFBa0IsRUFBRSxFQUFFLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7S0FDN0Y7SUFFRCxnRUFBZ0U7SUFDaEUsT0FBTyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEtBQUssaUJBQWlCLENBQUMsQ0FBQztBQUNyRixDQUFDO0FBdkJELHdDQXVCQyJ9
;