From 3599a79205f88979a958c150b73d287e54f0bfce Mon Sep 17 00:00:00 2001 From: Joel Strid Date: Fri, 20 Sep 2024 12:54:36 +0200 Subject: [PATCH] fix: manage all projects permissions, edit, view, delete, create gf-411 (#424) * fix: adjusted so creating, viewing and editing groups is allowed gf-411 * fix: adjusted so creating, viewing, deleting and editing groups is allowed gf-411 * fix: merge conflict on pull request gf-411 * fix: resolved merge conflict gf-411 * fix: adjusted project details menu to now show for manage users access permission gf-411 --- .../project-group.controller.ts | 22 ++++++++++++++++--- .../src/modules/users/user.controller.ts | 7 +++++- apps/frontend/src/index.tsx | 5 ++++- .../project-details-menu.tsx | 2 +- package-lock.json | 6 ++--- 5 files changed, 33 insertions(+), 9 deletions(-) diff --git a/apps/backend/src/modules/project-groups/project-group.controller.ts b/apps/backend/src/modules/project-groups/project-group.controller.ts index 3eb7d1142..b36113202 100644 --- a/apps/backend/src/modules/project-groups/project-group.controller.ts +++ b/apps/backend/src/modules/project-groups/project-group.controller.ts @@ -70,7 +70,12 @@ class ProjectGroupController extends BaseController { ), method: "POST", path: ProjectGroupsApiPath.ROOT, - preHandlers: [checkUserPermissions([PermissionKey.MANAGE_USER_ACCESS])], + preHandlers: [ + checkUserPermissions([ + PermissionKey.MANAGE_USER_ACCESS, + PermissionKey.MANAGE_ALL_PROJECTS, + ]), + ], validation: { body: projectGroupCreateValidationSchema, }, @@ -81,7 +86,12 @@ class ProjectGroupController extends BaseController { this.delete(options as APIHandlerOptions<{ params: { id: string } }>), method: "DELETE", path: ProjectGroupsApiPath.$ID, - preHandlers: [checkUserPermissions([PermissionKey.MANAGE_USER_ACCESS])], + preHandlers: [ + checkUserPermissions([ + PermissionKey.MANAGE_USER_ACCESS, + PermissionKey.MANAGE_ALL_PROJECTS, + ]), + ], }); this.addRoute({ @@ -94,7 +104,12 @@ class ProjectGroupController extends BaseController { ), method: "GET", path: ProjectGroupsApiPath.$ID, - preHandlers: [checkUserPermissions([PermissionKey.MANAGE_USER_ACCESS])], + preHandlers: [ + checkUserPermissions([ + PermissionKey.MANAGE_USER_ACCESS, + PermissionKey.MANAGE_ALL_PROJECTS, + ]), + ], }); this.addRoute({ @@ -107,6 +122,7 @@ class ProjectGroupController extends BaseController { ), method: "PATCH", path: ProjectGroupsApiPath.$ID, + preHandlers: [checkUserPermissions([PermissionKey.MANAGE_ALL_PROJECTS])], validation: { body: projectGroupPatchValidationSchema, }, diff --git a/apps/backend/src/modules/users/user.controller.ts b/apps/backend/src/modules/users/user.controller.ts index 8c92c069c..c80f97bc6 100644 --- a/apps/backend/src/modules/users/user.controller.ts +++ b/apps/backend/src/modules/users/user.controller.ts @@ -52,7 +52,12 @@ class UserController extends BaseController { ), method: "GET", path: UsersApiPath.ROOT, - preHandlers: [checkUserPermissions([PermissionKey.MANAGE_USER_ACCESS])], + preHandlers: [ + checkUserPermissions([ + PermissionKey.MANAGE_USER_ACCESS, + PermissionKey.MANAGE_ALL_PROJECTS, + ]), + ], }); this.addRoute({ diff --git a/apps/frontend/src/index.tsx b/apps/frontend/src/index.tsx index bd8b250ea..a7d5b9181 100644 --- a/apps/frontend/src/index.tsx +++ b/apps/frontend/src/index.tsx @@ -120,7 +120,10 @@ createRoot(document.querySelector("#root") as HTMLElement).render( { element: ( diff --git a/apps/frontend/src/pages/project/libs/components/project-details-menu/project-details-menu.tsx b/apps/frontend/src/pages/project/libs/components/project-details-menu/project-details-menu.tsx index 5e4b90102..2ad75e3ee 100644 --- a/apps/frontend/src/pages/project/libs/components/project-details-menu/project-details-menu.tsx +++ b/apps/frontend/src/pages/project/libs/components/project-details-menu/project-details-menu.tsx @@ -30,7 +30,7 @@ const ProjectDetailsMenu = ({ ); const hasManageProjectAccessPermission = checkHasPermission( - [PermissionKey.MANAGE_USER_ACCESS], + [PermissionKey.MANAGE_USER_ACCESS, PermissionKey.MANAGE_ALL_PROJECTS], userPermissions, ); const hasEditProjectPermission = checkHasPermission( diff --git a/package-lock.json b/package-lock.json index 1d5d757b1..b45010321 100644 --- a/package-lock.json +++ b/package-lock.json @@ -133,7 +133,7 @@ }, "apps/frontend": { "name": "@git-fit/frontend", - "version": "1.40.0", + "version": "1.41.0", "dependencies": { "@git-fit/shared": "*", "@hookform/resolvers": "3.9.0", @@ -14607,7 +14607,7 @@ }, "scripts/analytics": { "name": "@git-fit/analytics", - "version": "1.3.0", + "version": "1.6.0", "dependencies": { "@git-fit/shared": "*", "commander": "12.1.0", @@ -14618,7 +14618,7 @@ "pm2": "5.4.2" }, "bin": { - "analytics": "index.js" + "analytics": "build/index.js" }, "devDependencies": { "@types/node-cron": "3.0.11",