Fixed creation of users + better frontend handling of permissions
This commit is contained in:
@@ -41,6 +41,10 @@ export default function RolesAndPermissions({ user }: { user: IUser }) {
|
||||
const [newRoleName, setNewRoleName] = useState<string>("");
|
||||
const [isDialogOpen, setIsDialogOpen] = useState<boolean>(false);
|
||||
|
||||
const { roles: rolesPerm } = hasPermissions(user.roles, {
|
||||
roles: ["insert"],
|
||||
} as const);
|
||||
|
||||
const { data: permissions } = useApi<PermissionsGrouped>(
|
||||
"/permissions/grouped",
|
||||
{},
|
||||
@@ -80,7 +84,7 @@ export default function RolesAndPermissions({ user }: { user: IUser }) {
|
||||
<div className="container mx-auto p-4 space-y-6">
|
||||
<div className="flex justify-between items-center">
|
||||
<h1 className="text-2xl font-bold">Rôles et Permissions</h1>
|
||||
{hasPermissions(user.roles, { roles: ["insert"] }) && (
|
||||
{rolesPerm.insert && (
|
||||
<Dialog open={isDialogOpen} onOpenChange={setIsDialogOpen}>
|
||||
<DialogTrigger asChild>
|
||||
<Button>
|
||||
@@ -135,14 +139,17 @@ interface RoleCardProps {
|
||||
}
|
||||
|
||||
function RoleCard({ role, onDelete, permissions, user }: RoleCardProps) {
|
||||
const { roles, permissions: permPerms } = hasPermissions(user.roles, {
|
||||
roles: ["delete", "update"],
|
||||
permissions: ["update"],
|
||||
} as const);
|
||||
|
||||
return (
|
||||
<Card>
|
||||
<CardHeader className="flex flex-row items-center justify-between space-y-0 pb-2">
|
||||
<CardTitle>{toTitleCase(role.name)}</CardTitle>
|
||||
<Button
|
||||
disabled={
|
||||
!hasPermissions(user.roles, { roles: ["delete"] })
|
||||
}
|
||||
disabled={!roles.delete}
|
||||
variant="destructive"
|
||||
size="icon"
|
||||
onClick={onDelete}
|
||||
@@ -155,10 +162,11 @@ function RoleCard({ role, onDelete, permissions, user }: RoleCardProps) {
|
||||
return (
|
||||
<ResourceSection
|
||||
disabled={
|
||||
!hasPermissions(user.roles, {
|
||||
permissions: ["update"],
|
||||
roles: ["update"],
|
||||
})
|
||||
!(roles.update && permPerms.update)
|
||||
// !hasPermissions(user.roles, {
|
||||
// permissions: ["update"],
|
||||
// roles: ["update"],
|
||||
// })
|
||||
}
|
||||
key={res}
|
||||
resource={res}
|
||||
|
||||
Reference in New Issue
Block a user