UNPKG

@dbs-portal/module-identity

Version:

Identity management module for user and role management

223 lines 4.86 kB
/** * Identity module type definitions */ import type { BaseEntity, PaginatedResponse, PaginationParams } from '@dbs-portal/core-shared'; /** * User entity */ export interface User extends BaseEntity { userName: string; email: string; emailConfirmed: boolean; phoneNumber?: string; phoneNumberConfirmed: boolean; firstName?: string; lastName?: string; displayName?: string; avatar?: string; isActive: boolean; lockoutEnabled: boolean; lockoutEnd?: Date; accessFailedCount: number; twoFactorEnabled: boolean; roles: string[]; permissions: string[]; lastLoginAt?: Date; metadata?: Record<string, unknown>; } /** * Role entity */ export interface Role extends BaseEntity { name: string; displayName?: string; description?: string; isDefault: boolean; isStatic: boolean; permissions: string[]; userCount?: number; } /** * User creation request */ export interface CreateUserRequest { userName: string; email: string; password: string; firstName?: string; lastName?: string; phoneNumber?: string; isActive?: boolean; roleNames?: string[]; sendActivationEmail?: boolean; } /** * User update request */ export interface UpdateUserRequest { id: string; userName?: string; email?: string; firstName?: string; lastName?: string; phoneNumber?: string; isActive?: boolean; roleNames?: string[]; } /** * Role creation request */ export interface CreateRoleRequest { name: string; displayName?: string; description?: string; isDefault?: boolean; permissions?: string[]; } /** * Role update request */ export interface UpdateRoleRequest { id: string; displayName?: string; description?: string; permissions?: string[]; } /** * User filters for list queries */ export interface UserFilters extends Partial<PaginationParams> { keyword?: string; isActive?: boolean; roleNames?: string[]; emailConfirmed?: boolean; lockoutEnabled?: boolean; createdAfter?: Date; createdBefore?: Date; } /** * Role filters for list queries */ export interface RoleFilters extends Partial<PaginationParams> { keyword?: string; isDefault?: boolean; isStatic?: boolean; } /** * User list response */ export type UserListResponse = PaginatedResponse<User>; /** * Role list response */ export type RoleListResponse = PaginatedResponse<Role>; /** * Password change request */ export interface ChangePasswordRequest { userId: string; currentPassword?: string; newPassword: string; } /** * User lock/unlock request */ export interface LockUserRequest { userId: string; lockoutEnd?: Date; } /** * Two-factor authentication setup */ export interface TwoFactorSetupResponse { sharedKey: string; authenticatorUri: string; qrCodeUri: string; recoveryCodes: string[]; } /** * Two-factor authentication verification */ export interface VerifyTwoFactorRequest { userId: string; code: string; recoveryCode?: string; } /** * User permission assignment */ export interface UserPermission { userId: string; permissionName: string; isGranted: boolean; } /** * Role permission assignment */ export interface RolePermission { roleId: string; permissionName: string; isGranted: boolean; } export interface UserFormData { userName: string; email: string; firstName?: string; lastName?: string; phoneNumber?: string; isActive?: boolean; roleNames?: string[]; } export interface CreateUserFormData extends UserFormData { password: string; confirmPassword: string; sendActivationEmail?: boolean; } export interface RoleFormData { name: string; displayName?: string; description?: string; isDefault?: boolean; permissions?: string[]; } export interface UserCreateProps { onSubmit?: (data: CreateUserFormData) => void; loading?: boolean; error?: string; className?: string; } export interface UserEditProps { user: User; onSubmit?: (data: UserFormData) => void; loading?: boolean; error?: string; className?: string; } export interface UserDetailsProps { user: User; onEdit?: () => void; onDelete?: () => void; onLock?: () => void; onUnlock?: () => void; className?: string; } export interface RoleCreateProps { onSubmit?: (data: RoleFormData) => void; loading?: boolean; error?: string; className?: string; } export interface RoleEditProps { role: Role; onSubmit?: (data: RoleFormData) => void; loading?: boolean; error?: string; className?: string; } export interface RoleDetailsProps { role: Role; onEdit?: () => void; onDelete?: () => void; className?: string; } //# sourceMappingURL=types.d.ts.map