Files
BYW-VoiceHub/app/utils/user-archive.ts
T

29 lines
1.1 KiB
TypeScript

/**
* 账号归档判定与筛选参数解析。
* 归档口径:账户状态为 graduate(限制访问-毕业生)或 withdrawn(限制访问-退学)
* 即视为已归档,归档账号不在用户管理默认列表与学段中直接展示,
* 收敛在组织树底部的归档节点中查看。
*/
export const ARCHIVED_USER_STATUSES = ['graduate', 'withdrawn'] as const
export type ArchivedFilter = 'archived' | 'unarchived' | 'all'
/**
* 判断状态是否为归档状态。
* @param status 用户状态枚举值
*/
export function isArchivedStatus(status: string | null | undefined): boolean {
return (ARCHIVED_USER_STATUSES as readonly string[]).includes(status || '')
}
/**
* 解析归档筛选参数:archived=1/true 仅查已归档;archived=0/false 排除已归档;缺省不限制。
* @param value 查询参数(可能是数组)
*/
export function resolveArchivedFilter(value: string | string[] | undefined): ArchivedFilter {
const raw = Array.isArray(value) ? value[0] : value
if (raw === '1' || raw === 'true') return 'archived'
if (raw === '0' || raw === 'false') return 'unarchived'
return 'all'
}