Fixed creation of users + better frontend handling of permissions

This commit is contained in:
cdricms
2025-03-06 17:34:52 +01:00
parent 3c6038bce1
commit 7cb633b4c6
46 changed files with 1511 additions and 909 deletions

View File

@@ -48,9 +48,9 @@ export default function BlogTable({ user }: { user: IUser }) {
const { replace } = useRouter();
const canUpdate = hasPermissions(user.roles, { blogs: ["update"] });
const canInsert = hasPermissions(user.roles, { blogs: ["insert"] });
const canDelete = hasPermissions(user.roles, { blogs: ["delete"] });
const { blogs: blogsPerm } = hasPermissions(user.roles, {
blogs: ["update", "insert", "delete"],
} as const);
const updateSearchParam = useCallback(
(key: string, value?: string) => {
@@ -136,7 +136,7 @@ export default function BlogTable({ user }: { user: IUser }) {
</Button>
)}
</div>
{canInsert && (
{blogsPerm.insert && (
<Button asChild>
<Link href="/dashboard/blogs/new">Nouvel article</Link>
</Button>
@@ -151,7 +151,7 @@ export default function BlogTable({ user }: { user: IUser }) {
<TableHead>Catégorie</TableHead>
<TableHead>Auteur</TableHead>
<TableHead>Publié</TableHead>
{(canUpdate || canDelete) && (
{(blogsPerm.update || blogsPerm.delete) && (
<TableHead className="w-[100px]">
Actions
</TableHead>
@@ -175,7 +175,7 @@ export default function BlogTable({ user }: { user: IUser }) {
"MMM d, yyyy",
)}
</TableCell>
{(canDelete || canUpdate) && (
{(blogsPerm.delete || blogsPerm.update) && (
<TableCell>
<DropdownMenu>
<DropdownMenuTrigger asChild>
@@ -190,7 +190,7 @@ export default function BlogTable({ user }: { user: IUser }) {
</Button>
</DropdownMenuTrigger>
<DropdownMenuContent align="end">
{canUpdate && (
{blogsPerm.update && (
<DropdownMenuItem asChild>
<Link
href={`/dashboard/blogs/${blog.blogID}`}
@@ -201,7 +201,7 @@ export default function BlogTable({ user }: { user: IUser }) {
</Link>
</DropdownMenuItem>
)}
{canDelete && (
{blogsPerm.delete && (
<DropdownMenuItem
className="flex items-center text-destructive focus:text-destructive"
onClick={() =>