Files
bewell-in-ua/lib/permission/index.ts
2025-02-05 08:01:14 +02:00

53 lines
1009 B
TypeScript

import {Session} from '@auth/core/types'
import {UserRole} from '@prisma/client'
import 'server-only'
//import SUPERVISOR from '@/lib/permission/roles/supervisor'
export interface SessionUser {
id: string
name: string
email: string
image: string | null
isOauth: boolean
provider: string | null
role: UserRole
profileId: number | null
username: string | null
}
export interface SingedInSession extends Session {
user: SessionUser
}
export enum Access {
Admin = 'accessAdmin',
Cabinet = 'accessCabinet'
}
export enum Update {
Category = 'editCategory',
Product = 'editProduct'
}
export enum Delete {
Category = 'deleteCategory',
Product = 'deleteProduct'
}
export type Permission = Access | Delete | Update
export type AllRolesPermissions = {
SUPERVISOR: Permission[]
CUSTOMER: Permission[]
}
export const PERMISSIONS: AllRolesPermissions = {
SUPERVISOR: [
...Object.values(Access),
...Object.values(Update),
...Object.values(Delete)
],
CUSTOMER: [Access.Cabinet]
} as const