Fixed creation of users + better frontend handling of permissions
This commit is contained in:
@@ -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={() =>
|
||||
|
||||
Reference in New Issue
Block a user