feat: align with upstream 1.5.9.9

This commit is contained in:
2026-09-12 18:21:11 +08:00
commit 34f0679117
805 changed files with 376275 additions and 0 deletions
+28
View File
@@ -0,0 +1,28 @@
/**
* 账号归档判定与筛选参数解析。
* 归档口径:账户状态为 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'
}