added tons of features

This commit is contained in:
2025-02-05 08:01:14 +02:00
parent 4ae0d8c545
commit 8138da6b1d
195 changed files with 12619 additions and 415 deletions

52
lib/permission/index.ts Normal file
View File

@@ -0,0 +1,52 @@
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

View File

@@ -0,0 +1 @@
export {default as SUPERVISOR} from './supervisor'

View File

@@ -0,0 +1,7 @@
import {Access, Delete, Permission, Update} from '@/lib/permission'
export default [
...Object.values(Access),
...Object.values(Update),
...Object.values(Delete)
]