Fix: Don't display requested by when user has no access to read workspace members

This commit is contained in:
Daniel Hougaard
2024-05-07 17:30:35 +02:00
parent c911a7cd81
commit 4e449f62c0
@@ -19,7 +19,13 @@ import {
EmptyState, EmptyState,
Skeleton Skeleton
} from "@app/components/v2"; } from "@app/components/v2";
import { useUser, useWorkspace } from "@app/context"; import {
ProjectPermissionActions,
ProjectPermissionSub,
useProjectPermission,
useUser,
useWorkspace
} from "@app/context";
import { import {
useGetSecretApprovalRequestCount, useGetSecretApprovalRequestCount,
useGetSecretApprovalRequests, useGetSecretApprovalRequests,
@@ -58,6 +64,7 @@ export const SecretApprovalRequest = () => {
const { data: secretApprovalRequestCount, isSuccess: isSecretApprovalReqCountSuccess } = const { data: secretApprovalRequestCount, isSuccess: isSecretApprovalReqCountSuccess } =
useGetSecretApprovalRequestCount({ workspaceId }); useGetSecretApprovalRequestCount({ workspaceId });
const { user: presentUser } = useUser(); const { user: presentUser } = useUser();
const { permission } = useProjectPermission();
const { data: members } = useGetWorkspaceUsers(workspaceId); const { data: members } = useGetWorkspaceUsers(workspaceId);
const membersGroupById = members?.reduce<Record<string, TWorkspaceUser>>( const membersGroupById = members?.reduce<Record<string, TWorkspaceUser>>(
(prev, curr) => ({ ...prev, [curr.id]: curr }), (prev, curr) => ({ ...prev, [curr.id]: curr }),
@@ -156,31 +163,37 @@ export const SecretApprovalRequest = () => {
))} ))}
</DropdownMenuContent> </DropdownMenuContent>
</DropdownMenu> </DropdownMenu>
<DropdownMenu> {!!permission.can(ProjectPermissionActions.Read, ProjectPermissionSub.Member) && (
<DropdownMenuTrigger> <DropdownMenu>
<Button <DropdownMenuTrigger>
variant="plain" <Button
colorSchema="secondary" variant="plain"
className={committerFilter ? "text-white" : "text-bunker-300"} colorSchema="secondary"
rightIcon={<FontAwesomeIcon icon={faChevronDown} size="sm" className="ml-2" />} className={committerFilter ? "text-white" : "text-bunker-300"}
> rightIcon={
Author <FontAwesomeIcon icon={faChevronDown} size="sm" className="ml-2" />
</Button> }
</DropdownMenuTrigger>
<DropdownMenuContent align="end">
<DropdownMenuLabel>Select an author</DropdownMenuLabel>
{members?.map(({ user, id }) => (
<DropdownMenuItem
onClick={() => setCommitterFilter((state) => (state === id ? undefined : id))}
key={`request-filter-member-${id}`}
icon={committerFilter === id && <FontAwesomeIcon icon={faCheckCircle} />}
iconPos="right"
> >
{user.email} Author
</DropdownMenuItem> </Button>
))} </DropdownMenuTrigger>
</DropdownMenuContent> <DropdownMenuContent align="end">
</DropdownMenu> <DropdownMenuLabel>Select an author</DropdownMenuLabel>
{members?.map(({ user, id }) => (
<DropdownMenuItem
onClick={() =>
setCommitterFilter((state) => (state === id ? undefined : id))
}
key={`request-filter-member-${id}`}
icon={committerFilter === id && <FontAwesomeIcon icon={faCheckCircle} />}
iconPos="right"
>
{user.email}
</DropdownMenuItem>
))}
</DropdownMenuContent>
</DropdownMenu>
)}
</div> </div>
</div> </div>
<div className="flex flex-col rounded-b-md border-x border-t border-b border-mineshaft-600 bg-mineshaft-800"> <div className="flex flex-col rounded-b-md border-x border-t border-b border-mineshaft-600 bg-mineshaft-800">