fix: hide envs without read permission in the env filter dropdown

This commit is contained in:
Scott Wilson
2024-09-15 12:29:24 -07:00
parent ea480c222b
commit e12ac6c07e
@@ -600,27 +600,37 @@ export const SecretOverviewPage = () => {
</DropdownMenuTrigger> </DropdownMenuTrigger>
<DropdownMenuContent align="end"> <DropdownMenuContent align="end">
<DropdownMenuLabel>Choose visible environments</DropdownMenuLabel> <DropdownMenuLabel>Choose visible environments</DropdownMenuLabel>
{userAvailableEnvs.map((availableEnv) => { {userAvailableEnvs
const { id: envId, name } = availableEnv; .filter(({ slug }) =>
permission.can(
ProjectPermissionActions.Read,
subject(ProjectPermissionSub.Secrets, {
environment: slug,
secretPath
})
)
)
.map((availableEnv) => {
const { id: envId, name } = availableEnv;
const isEnvSelected = visibleEnvs.map((env) => env.id).includes(envId); const isEnvSelected = visibleEnvs.map((env) => env.id).includes(envId);
return ( return (
<DropdownMenuItem <DropdownMenuItem
onClick={() => handleEnvSelect(envId)} onClick={() => handleEnvSelect(envId)}
key={envId} key={envId}
icon={ icon={
isEnvSelected ? ( isEnvSelected ? (
<FontAwesomeIcon className="text-primary" icon={faCheckCircle} /> <FontAwesomeIcon className="text-primary" icon={faCheckCircle} />
) : ( ) : (
<FontAwesomeIcon className="text-mineshaft-400" icon={faCircle} /> <FontAwesomeIcon className="text-mineshaft-400" icon={faCircle} />
) )
} }
iconPos="left" iconPos="left"
> >
<div className="flex items-center">{name}</div> <div className="flex items-center">{name}</div>
</DropdownMenuItem> </DropdownMenuItem>
); );
})} })}
{/* <DropdownMenuItem className="px-1.5" asChild> {/* <DropdownMenuItem className="px-1.5" asChild>
<Button <Button
size="xs" size="xs"