Spaces:
Sleeping
Sleeping
| "use server"; | |
| import { auth, isPermission, Permission } from '@/lib/auth'; | |
| import { headers } from 'next/headers'; | |
| import { AnyPermission, checkSinglePermission } from './auth-helpers'; | |
| import { skipAuth, mockUser } from './auth-mock'; | |
| export async function getPermissions() { | |
| if (skipAuth) { | |
| return mockUser.permissions.filter(isPermission); | |
| } | |
| const session = await auth.api.getSession({ | |
| headers: await headers(), | |
| }); | |
| if (!session) { | |
| return null; | |
| } | |
| return session.user.permissions.filter(isPermission); | |
| } | |
| export async function hasPermission(permission: AnyPermission) { | |
| const sessionPermissions = await getPermissions() ?? []; | |
| return checkSinglePermission(sessionPermissions)(permission); | |
| } | |