mirror of
https://github.com/moghtech/komodo.git
synced 2026-09-11 16:01:27 +00:00
hide permissions when only admins
This commit is contained in:
@@ -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>
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user