49 lines
1.2 KiB
TypeScript
49 lines
1.2 KiB
TypeScript
import type { DefaultSession } from 'next-auth';
|
|
import type { Permission } from '@/lib/auth/permissions';
|
|
|
|
declare module 'next-auth' {
|
|
interface Session {
|
|
user: DefaultSession['user'] & {
|
|
id: string;
|
|
systemRole: string;
|
|
activeOrganizationId: string | null;
|
|
activeOrganizationName: string | null;
|
|
activeOrganizationPlan: string | null;
|
|
membershipRole: string | null;
|
|
role: string | null;
|
|
employeeCode: string | null;
|
|
employeeId: number | null;
|
|
provider: string | null;
|
|
businessRole: 'IT' | 'HRD' | 'EMPLOYEE' | null;
|
|
permissions: Permission[];
|
|
effectivePermissions: Permission[];
|
|
permissionTemplateIds: number[];
|
|
organizations: Array<{
|
|
id: string;
|
|
name: string;
|
|
slug: string;
|
|
membershipRole: string;
|
|
role: string;
|
|
plan: string;
|
|
imageUrl: string | null;
|
|
permissionTemplateIds: number[];
|
|
}>;
|
|
};
|
|
}
|
|
|
|
interface User {
|
|
id: string;
|
|
systemRole?: string;
|
|
activeOrganizationId?: string | null;
|
|
employeeCode?: string | null;
|
|
employeeId?: number | null;
|
|
provider?: string | null;
|
|
}
|
|
}
|
|
|
|
declare module 'next-auth/jwt' {
|
|
interface JWT {
|
|
sub?: string;
|
|
}
|
|
}
|