forked from datawhale/whale-town-end
- 新增auth模块处理认证逻辑 - 新增security模块处理安全相关功能 - 新增user-mgmt模块管理用户相关操作 - 新增shared模块存放共享组件 - 重构admin模块,添加DTO和Guards - 为admin模块添加测试文件结构
100 lines
2.7 KiB
TypeScript
100 lines
2.7 KiB
TypeScript
/**
|
|
* 用户状态枚举
|
|
*
|
|
* 功能描述:
|
|
* - 定义用户账户的各种状态
|
|
* - 提供状态检查和描述功能
|
|
* - 支持用户生命周期管理
|
|
*
|
|
* @author kiro-ai
|
|
* @version 1.0.0
|
|
* @since 2025-12-24
|
|
*/
|
|
|
|
/**
|
|
* 用户状态枚举
|
|
*
|
|
* 状态说明:
|
|
* - active: 正常状态,可以正常使用所有功能
|
|
* - inactive: 未激活状态,通常是新注册用户需要邮箱验证
|
|
* - locked: 临时锁定状态,可以解锁恢复
|
|
* - banned: 永久禁用状态,需要管理员处理
|
|
* - deleted: 软删除状态,数据保留但不可使用
|
|
* - pending: 待审核状态,需要管理员审核后激活
|
|
*/
|
|
export enum UserStatus {
|
|
ACTIVE = 'active', // 正常状态
|
|
INACTIVE = 'inactive', // 未激活状态
|
|
LOCKED = 'locked', // 锁定状态
|
|
BANNED = 'banned', // 禁用状态
|
|
DELETED = 'deleted', // 删除状态
|
|
PENDING = 'pending' // 待审核状态
|
|
}
|
|
|
|
/**
|
|
* 获取用户状态的中文描述
|
|
*
|
|
* @param status 用户状态
|
|
* @returns 状态描述
|
|
*/
|
|
export function getUserStatusDescription(status: UserStatus): string {
|
|
const descriptions = {
|
|
[UserStatus.ACTIVE]: '正常',
|
|
[UserStatus.INACTIVE]: '未激活',
|
|
[UserStatus.LOCKED]: '已锁定',
|
|
[UserStatus.BANNED]: '已禁用',
|
|
[UserStatus.DELETED]: '已删除',
|
|
[UserStatus.PENDING]: '待审核'
|
|
};
|
|
|
|
return descriptions[status] || '未知状态';
|
|
}
|
|
|
|
/**
|
|
* 检查用户是否可以登录
|
|
*
|
|
* @param status 用户状态
|
|
* @returns 是否可以登录
|
|
*/
|
|
export function canUserLogin(status: UserStatus): boolean {
|
|
// 只有正常状态的用户可以登录
|
|
return status === UserStatus.ACTIVE;
|
|
}
|
|
|
|
/**
|
|
* 获取用户状态对应的错误消息
|
|
*
|
|
* @param status 用户状态
|
|
* @returns 错误消息
|
|
*/
|
|
export function getUserStatusErrorMessage(status: UserStatus): string {
|
|
const errorMessages = {
|
|
[UserStatus.ACTIVE]: '', // 正常状态无错误
|
|
[UserStatus.INACTIVE]: '账户未激活,请先验证邮箱',
|
|
[UserStatus.LOCKED]: '账户已被锁定,请联系管理员',
|
|
[UserStatus.BANNED]: '账户已被禁用,请联系管理员',
|
|
[UserStatus.DELETED]: '账户不存在',
|
|
[UserStatus.PENDING]: '账户待审核,请等待管理员审核'
|
|
};
|
|
|
|
return errorMessages[status] || '账户状态异常';
|
|
}
|
|
|
|
/**
|
|
* 获取所有可用的用户状态
|
|
*
|
|
* @returns 用户状态数组
|
|
*/
|
|
export function getAllUserStatuses(): UserStatus[] {
|
|
return Object.values(UserStatus);
|
|
}
|
|
|
|
/**
|
|
* 检查状态值是否有效
|
|
*
|
|
* @param status 状态值
|
|
* @returns 是否为有效状态
|
|
*/
|
|
export function isValidUserStatus(status: string): status is UserStatus {
|
|
return Object.values(UserStatus).includes(status as UserStatus);
|
|
} |