hide permissions when only admins

This commit is contained in:
karamvir
2023-09-12 22:28:10 -07:00
parent f1d36f0f4a
commit be9937355b
+41 -41
View File
@@ -63,13 +63,15 @@ export const ResourcePermissions = ({
id: string;
}) => {
const admin = useRead("GetUser", {}).data?.admin;
const me = useRead("GetUser", {}).data?._id?.$oid;
const permissions = useRead(`Get${type}`, { id }, { enabled: admin }).data
?.permissions;
const { mutate: update, isLoading } = useWrite(
"UpdateUserPermissionsOnTarget"
);
if (!admin) return null;
const display = Object.keys(permissions ?? {}).filter((id) => id != me);
if (!admin || !display.length) return null;
return (
<Section
@@ -78,46 +80,44 @@ export const ResourcePermissions = ({
actions={<NewPermission />}
>
<div className="grid md:grid-cols-2 lg:grid-cols-3 gap-4">
{Object.keys(permissions ?? {}).map((user_id) => {
return (
<Card key={user_id}>
<CardHeader className="justify-between">
<CardTitle className="flex items-center gap-2">
<User className="w-4 h-4" />
<Username user_id={user_id} />
</CardTitle>
<Select
value={permissions?.[user_id]}
onValueChange={(p) =>
update({
permission: p as Types.PermissionLevel,
user_id,
target: { type, id },
})
}
disabled={isLoading}
>
<SelectTrigger className="w-32">
<SelectValue placeholder="Set Permissions" />
</SelectTrigger>
<SelectContent className="w-32">
<SelectGroup>
<SelectItem value={Types.PermissionLevel.Read}>
Read
</SelectItem>
<SelectItem value={Types.PermissionLevel.Update}>
Update
</SelectItem>
<SelectItem value={Types.PermissionLevel.Execute}>
Execute
</SelectItem>
</SelectGroup>
</SelectContent>
</Select>
</CardHeader>
</Card>
);
})}
{display.map((user_id) => (
<Card key={user_id}>
<CardHeader className="justify-between">
<CardTitle className="flex items-center gap-2">
<User className="w-4 h-4" />
<Username user_id={user_id} />
</CardTitle>
<Select
value={permissions?.[user_id]}
onValueChange={(p) =>
update({
permission: p as Types.PermissionLevel,
user_id,
target: { type, id },
})
}
disabled={isLoading}
>
<SelectTrigger className="w-32">
<SelectValue placeholder="Set Permissions" />
</SelectTrigger>
<SelectContent className="w-32">
<SelectGroup>
<SelectItem value={Types.PermissionLevel.Read}>
Read
</SelectItem>
<SelectItem value={Types.PermissionLevel.Update}>
Update
</SelectItem>
<SelectItem value={Types.PermissionLevel.Execute}>
Execute
</SelectItem>
</SelectGroup>
</SelectContent>
</Select>
</CardHeader>
</Card>
))}
</div>
</Section>
);