MIF_E31221222/sigap-website/app/_utils/authz.ts

19 lines
573 B
TypeScript

import { IUserSchema } from "@/src/entities/models/users/users.model"
type Role = "viewer" | "editor" | "admin";
const PERMISSIONS: Record<Role, string[]> = {
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