42 lines
1.0 KiB
TypeScript
42 lines
1.0 KiB
TypeScript
import 'next-auth'
|
|
|
|
declare module 'next-auth' {
|
|
interface Session {
|
|
user: {
|
|
id: string
|
|
email: string
|
|
name: string
|
|
role: 'USER' | 'ADMIN' | 'DEPT_ADMIN' | 'SYSTEM_ADMIN' // 阶段四:扩展角色枚举
|
|
department?: string
|
|
managedDepartment?: string | null
|
|
avatar?: string | null
|
|
isSuperAdmin?: boolean
|
|
canAccessBrandCenter?: boolean
|
|
}
|
|
}
|
|
|
|
interface User {
|
|
id: string
|
|
email: string
|
|
name: string
|
|
role: 'USER' | 'ADMIN' | 'DEPT_ADMIN' | 'SYSTEM_ADMIN' // 阶段四:扩展角色枚举
|
|
department?: string
|
|
managedDepartment?: string | null
|
|
avatar?: string | null
|
|
isSuperAdmin?: boolean
|
|
canAccessBrandCenter?: boolean
|
|
}
|
|
}
|
|
|
|
declare module 'next-auth/jwt' {
|
|
interface JWT {
|
|
id: string
|
|
role: 'USER' | 'ADMIN' | 'DEPT_ADMIN' | 'SYSTEM_ADMIN' // 阶段四:扩展角色枚举
|
|
department?: string
|
|
managedDepartment?: string | null
|
|
avatar?: string | null
|
|
isSuperAdmin?: boolean
|
|
canAccessBrandCenter?: boolean
|
|
}
|
|
}
|