Skip to content

Commit

Permalink
Updates manageProjects permission for SideNav. (#2555)
Browse files Browse the repository at this point in the history
  • Loading branch information
mknowlton89 committed Jun 20, 2024
1 parent 13af779 commit c4a8930
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 14 deletions.
2 changes: 1 addition & 1 deletion packages/front-end/components/Layout/Layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,7 @@ const navlinks: SidebarLinkProps[] = [
href: "/projects",
path: /^project/,
filter: ({ permissionsUtils }) =>
permissionsUtils.canUpdateSomeProjects(),
permissionsUtils.canManageSomeProjects(),
},
{
name: "API Keys",
Expand Down
18 changes: 13 additions & 5 deletions packages/shared/src/permissions/permissionsClass.ts
Original file line number Diff line number Diff line change
Expand Up @@ -529,11 +529,19 @@ export class Permissions {
);
};

public canUpdateSomeProjects = (): boolean => {
// TODO: loop through all projects and check if the user has permission to update at least one
return this.checkProjectFilterPermission(
{ projects: [] },
"manageProjects"
// Used to determine if we should show the Settings > Projects link in SideNav
public canManageSomeProjects = (): boolean => {
const projects: string[] = [""];

Object.keys(this.userPermissions.projects).forEach((key) =>
projects.push(key)
);

return projects.some((project) =>
this.checkProjectFilterPermission(
{ projects: [project] },
"manageProjects"
)
);
};

Expand Down
16 changes: 8 additions & 8 deletions packages/shared/test/permissions.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ describe("Role permissions", () => {
expect(p.canUpdateSDKWebhook(sdkConnection)).toBe(false);
expect(p.canUpdateSavedGroup()).toBe(false);
expect(p.canUpdateSegment()).toBe(false);
expect(p.canUpdateSomeProjects()).toBe(false);
expect(p.canManageSomeProjects()).toBe(false);
expect(p.canUpdateVisualChange(projectResource)).toBe(false);
expect(p.canViewAttributeModal()).toBe(false);
expect(p.canViewCreateDataSourceModal()).toBe(false);
Expand Down Expand Up @@ -230,7 +230,7 @@ describe("Role permissions", () => {
expect(p.canUpdateSDKWebhook(sdkConnection)).toBe(false);
expect(p.canUpdateSavedGroup()).toBe(false);
expect(p.canUpdateSegment()).toBe(false);
expect(p.canUpdateSomeProjects()).toBe(false);
expect(p.canManageSomeProjects()).toBe(false);
expect(p.canUpdateVisualChange(projectResource)).toBe(false);
expect(p.canViewAttributeModal()).toBe(false);
expect(p.canViewCreateDataSourceModal()).toBe(false);
Expand Down Expand Up @@ -338,7 +338,7 @@ describe("Role permissions", () => {
expect(p.canUpdateSDKWebhook(sdkConnection)).toBe(false);
expect(p.canUpdateSavedGroup()).toBe(false);
expect(p.canUpdateSegment()).toBe(false);
expect(p.canUpdateSomeProjects()).toBe(false);
expect(p.canManageSomeProjects()).toBe(false);
expect(p.canUpdateVisualChange(projectResource)).toBe(true);
expect(p.canViewAttributeModal()).toBe(false);
expect(p.canViewCreateDataSourceModal()).toBe(false);
Expand Down Expand Up @@ -446,7 +446,7 @@ describe("Role permissions", () => {
expect(p.canUpdateSDKWebhook(sdkConnection)).toBe(false);
expect(p.canUpdateSavedGroup()).toBe(false);
expect(p.canUpdateSegment()).toBe(false);
expect(p.canUpdateSomeProjects()).toBe(false);
expect(p.canManageSomeProjects()).toBe(false);
expect(p.canUpdateVisualChange(projectResource)).toBe(false);
expect(p.canViewAttributeModal()).toBe(false);
expect(p.canViewCreateDataSourceModal()).toBe(false);
Expand Down Expand Up @@ -554,7 +554,7 @@ describe("Role permissions", () => {
expect(p.canUpdateSDKWebhook(sdkConnection)).toBe(true);
expect(p.canUpdateSavedGroup()).toBe(true);
expect(p.canUpdateSegment()).toBe(false);
expect(p.canUpdateSomeProjects()).toBe(false);
expect(p.canManageSomeProjects()).toBe(false);
expect(p.canUpdateVisualChange(projectResource)).toBe(true);
expect(p.canViewAttributeModal()).toBe(true);
expect(p.canViewCreateDataSourceModal()).toBe(false);
Expand Down Expand Up @@ -662,7 +662,7 @@ describe("Role permissions", () => {
expect(p.canUpdateSDKWebhook(sdkConnection)).toBe(false);
expect(p.canUpdateSavedGroup()).toBe(false);
expect(p.canUpdateSegment()).toBe(true);
expect(p.canUpdateSomeProjects()).toBe(false);
expect(p.canManageSomeProjects()).toBe(false);
expect(p.canUpdateVisualChange(projectResource)).toBe(true);
expect(p.canViewAttributeModal()).toBe(false);
expect(p.canViewCreateDataSourceModal()).toBe(false);
Expand Down Expand Up @@ -770,7 +770,7 @@ describe("Role permissions", () => {
expect(p.canUpdateSDKWebhook(sdkConnection)).toBe(true);
expect(p.canUpdateSavedGroup()).toBe(true);
expect(p.canUpdateSegment()).toBe(true);
expect(p.canUpdateSomeProjects()).toBe(false);
expect(p.canManageSomeProjects()).toBe(false);
expect(p.canUpdateVisualChange(projectResource)).toBe(true);
expect(p.canViewAttributeModal()).toBe(true);
expect(p.canViewCreateDataSourceModal()).toBe(false);
Expand Down Expand Up @@ -878,7 +878,7 @@ describe("Role permissions", () => {
expect(p.canUpdateSDKWebhook(sdkConnection)).toBe(true);
expect(p.canUpdateSavedGroup()).toBe(true);
expect(p.canUpdateSegment()).toBe(true);
expect(p.canUpdateSomeProjects()).toBe(true);
expect(p.canManageSomeProjects()).toBe(true);
expect(p.canUpdateVisualChange(projectResource)).toBe(true);
expect(p.canViewAttributeModal()).toBe(true);
expect(p.canViewCreateDataSourceModal()).toBe(true);
Expand Down

0 comments on commit c4a8930

Please sign in to comment.