From d8ab79f71c070c4705bab9648b5e8317d203bf83 Mon Sep 17 00:00:00 2001 From: Fredrik Oseberg Date: Wed, 1 Dec 2021 14:36:08 +0100 Subject: [PATCH] fix: connect environment with access service --- src/lib/middleware/rbac-middleware.ts | 10 ++++++++-- src/lib/routes/admin-api/project/features.ts | 7 ++++++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/lib/middleware/rbac-middleware.ts b/src/lib/middleware/rbac-middleware.ts index 9d74647b7d..117d104886 100644 --- a/src/lib/middleware/rbac-middleware.ts +++ b/src/lib/middleware/rbac-middleware.ts @@ -14,6 +14,7 @@ interface PermissionChecker { user: User, permission: string, projectId?: string, + environment?: string, ): Promise; } @@ -44,7 +45,7 @@ const rbacMiddleware = ( } // For /api/admin/projects/:projectId we will find it as part of params - let { projectId } = params; + let { projectId, environment } = params; // Temporary workaround to figure out projectId for feature toggle updates. // will be removed in Unleash v5.0 @@ -55,7 +56,12 @@ const rbacMiddleware = ( projectId = req.body.project || 'default'; } - return accessService.hasPermission(user, permission, projectId); + return accessService.hasPermission( + user, + permission, + projectId, + environment, + ); }; return next(); }; diff --git a/src/lib/routes/admin-api/project/features.ts b/src/lib/routes/admin-api/project/features.ts index 33ad91e10a..9ab4765dde 100644 --- a/src/lib/routes/admin-api/project/features.ts +++ b/src/lib/routes/admin-api/project/features.ts @@ -8,6 +8,7 @@ import { Logger } from '../../../logger'; import { CREATE_FEATURE, DELETE_FEATURE, + CREATE_FEATURE_STRATEGY, UPDATE_FEATURE, } from '../../../types/permissions'; import { @@ -75,7 +76,11 @@ export default class ProjectFeaturesController extends Controller { // activation strategies this.get(`${PATH_STRATEGIES}`, this.getStrategies); - this.post(`${PATH_STRATEGIES}`, this.addStrategy, UPDATE_FEATURE); + this.post( + `${PATH_STRATEGIES}`, + this.addStrategy, + CREATE_FEATURE_STRATEGY, + ); this.get(`${PATH_STRATEGY}`, this.getStrategy); this.put(`${PATH_STRATEGY}`, this.updateStrategy, UPDATE_FEATURE); this.patch(`${PATH_STRATEGY}`, this.patchStrategy, UPDATE_FEATURE);