From 0205f6b5c749979ea688a91a20cf41ad9dd72e48 Mon Sep 17 00:00:00 2001 From: vergiLgood1 Date: Sun, 6 Apr 2025 21:00:53 +0700 Subject: [PATCH] init mock permission --- .../table/columns/actions-column.tsx | 4 +++- sigap-website/app/_utils/authz.ts | 19 +++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 sigap-website/app/_utils/authz.ts diff --git a/sigap-website/app/(pages)/(admin)/dashboard/user-management/_components/table/columns/actions-column.tsx b/sigap-website/app/(pages)/(admin)/dashboard/user-management/_components/table/columns/actions-column.tsx index 701614e..77c524d 100644 --- a/sigap-website/app/(pages)/(admin)/dashboard/user-management/_components/table/columns/actions-column.tsx +++ b/sigap-website/app/(pages)/(admin)/dashboard/user-management/_components/table/columns/actions-column.tsx @@ -10,7 +10,9 @@ export const createActionsColumn = ( ) => { return { id: "actions", - header: "", + header: () => { + return Actions + }, cell: ({ row }: { row: { original: IUserSchema } }) => } } \ No newline at end of file diff --git a/sigap-website/app/_utils/authz.ts b/sigap-website/app/_utils/authz.ts new file mode 100644 index 0000000..5719068 --- /dev/null +++ b/sigap-website/app/_utils/authz.ts @@ -0,0 +1,19 @@ +import { IUserSchema } from "@/src/entities/models/users/users.model" + +type Role = "viewer" | "editor" | "admin"; + +const PERMISSIONS: Record = { + viewer: ["view:post"], + editor: ["view:post", "edit:post"], + admin: ["view:post", "create:post", "edit:post", "delete:post"], +}; +export const CheckPermission = (user: IUserSchema, action: string, resource: string) => { + const permissions = PERMISSIONS[user.role as Role] + + if (!permissions) return false + + return permissions.includes(`${action}:${resource}`) +} + + +export default CheckPermission \ No newline at end of file