@forestadmin/forestadmin-client 1.25.0 → 1.25.1
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.
|
@@ -19,10 +19,11 @@ export default class RenderingPermissionService {
|
|
|
19
19
|
userId: number | string;
|
|
20
20
|
}): Promise<RawTree>;
|
|
21
21
|
private getScopeOrRetry;
|
|
22
|
-
canExecuteSegmentQuery({ renderingId, collectionName, segmentQuery, }: {
|
|
22
|
+
canExecuteSegmentQuery({ renderingId, collectionName, segmentQuery, userId, }: {
|
|
23
23
|
renderingId: number | string;
|
|
24
24
|
collectionName: string;
|
|
25
25
|
segmentQuery: string;
|
|
26
|
+
userId: number;
|
|
26
27
|
}): Promise<boolean>;
|
|
27
28
|
private canExecuteSegmentQueryOrRetry;
|
|
28
29
|
private loadPermissions;
|
|
@@ -46,17 +46,25 @@ class RenderingPermissionService {
|
|
|
46
46
|
}
|
|
47
47
|
return context_variables_injector_1.default.injectContextInFilter(collectionPermissions.scope, new context_variables_1.default({ team: permissions.team, user: userInfo }));
|
|
48
48
|
}
|
|
49
|
-
async canExecuteSegmentQuery({ renderingId, collectionName, segmentQuery, }) {
|
|
49
|
+
async canExecuteSegmentQuery({ renderingId, collectionName, segmentQuery, userId, }) {
|
|
50
50
|
return ((await this.canExecuteSegmentQueryOrRetry({
|
|
51
51
|
renderingId,
|
|
52
52
|
collectionName,
|
|
53
53
|
segmentQuery,
|
|
54
|
+
userId,
|
|
54
55
|
// Only allow retry when not using server events
|
|
55
56
|
allowRetry: !this.options.instantCacheRefresh,
|
|
56
57
|
})) && (0, verify_sql_query_1.default)(segmentQuery));
|
|
57
58
|
}
|
|
58
|
-
async canExecuteSegmentQueryOrRetry({ renderingId, collectionName, segmentQuery, allowRetry, }) {
|
|
59
|
-
const permissions = await
|
|
59
|
+
async canExecuteSegmentQueryOrRetry({ renderingId, collectionName, segmentQuery, allowRetry, userId, }) {
|
|
60
|
+
const [userInfo, permissions] = await Promise.all([
|
|
61
|
+
this.userPermissions.getUserInfo(userId),
|
|
62
|
+
this.permissionsByRendering.fetch(`${renderingId}`),
|
|
63
|
+
]);
|
|
64
|
+
if ([types_1.PermissionLevel.Admin, types_1.PermissionLevel.Developer, types_1.PermissionLevel.Editor].includes(userInfo?.permissionLevel)) {
|
|
65
|
+
this.options.logger('Debug', `User ${userId} can retrieve SQL segment on rendering ${renderingId}`);
|
|
66
|
+
return true;
|
|
67
|
+
}
|
|
60
68
|
const collectionPermissions = permissions?.collections?.[collectionName];
|
|
61
69
|
if (!collectionPermissions ||
|
|
62
70
|
!(0, is_segment_query_authorized_1.default)(segmentQuery, collectionPermissions.segments)) {
|
|
@@ -66,13 +74,14 @@ class RenderingPermissionService {
|
|
|
66
74
|
renderingId,
|
|
67
75
|
collectionName,
|
|
68
76
|
segmentQuery,
|
|
77
|
+
userId,
|
|
69
78
|
allowRetry: false,
|
|
70
79
|
});
|
|
71
80
|
}
|
|
72
|
-
this.options.logger('Debug', `User cannot retrieve SQL segment on rendering ${renderingId}`);
|
|
81
|
+
this.options.logger('Debug', `User ${userId} cannot retrieve SQL segment on rendering ${renderingId}`);
|
|
73
82
|
return false;
|
|
74
83
|
}
|
|
75
|
-
this.options.logger('Debug', `User can retrieve SQL segment on rendering ${renderingId}`);
|
|
84
|
+
this.options.logger('Debug', `User ${userId} can retrieve SQL segment on rendering ${renderingId}`);
|
|
76
85
|
return true;
|
|
77
86
|
}
|
|
78
87
|
async loadPermissions(renderingId) {
|
|
@@ -139,4 +148,4 @@ class RenderingPermissionService {
|
|
|
139
148
|
}
|
|
140
149
|
}
|
|
141
150
|
exports.default = RenderingPermissionService;
|
|
142
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
151
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyaW5nLXBlcm1pc3Npb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcGVybWlzc2lvbnMvcmVuZGVyaW5nLXBlcm1pc3Npb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FBa0U7QUFDbEUsZ0dBQWtFO0FBQ2xFLG1DQU1pQjtBQUVqQiwwRUFBZ0Q7QUFHaEQsbUZBQTBEO0FBQzFELHFHQUEyRTtBQUMzRSxtRUFBMEM7QUFRMUMsTUFBcUIsMEJBQTBCO0lBRzdDLFlBQ21CLE9BQTZDLEVBQzdDLGVBQXNDLEVBQ3RDLDBCQUFzRDtRQUZ0RCxZQUFPLEdBQVAsT0FBTyxDQUFzQztRQUM3QyxvQkFBZSxHQUFmLGVBQWUsQ0FBdUI7UUFDdEMsK0JBQTBCLEdBQTFCLDBCQUEwQixDQUE0QjtRQUV2RSxJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxtQkFBUSxDQUN4QyxLQUFLLEVBQUMsV0FBVyxFQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUM5RCxJQUFJLENBQUMsT0FBTyxDQUFDLGlDQUFpQyxHQUFHLElBQUksQ0FDdEQsQ0FBQztJQUNKLENBQUM7SUFFTSxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQ3BCLFdBQVcsRUFDWCxjQUFjLEVBQ2QsTUFBTSxHQUtQO1FBQ0MsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO1lBQzFCLFdBQVc7WUFDWCxjQUFjO1lBQ2QsTUFBTTtZQUNOLGdEQUFnRDtZQUNoRCxVQUFVLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQjtTQUM5QyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sS0FBSyxDQUFDLGVBQWUsQ0FBQyxFQUM1QixXQUFXLEVBQ1gsY0FBYyxFQUNkLE1BQU0sRUFDTixVQUFVLEdBTVg7UUFDQyxNQUFNLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxHQUFHLE1BQU0sT0FB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
|