Some checks failed
lotteryadmin CI / build (push) Has been cancelled
- 各角色仪表盘:KPI 可点击跳转、快捷入口、去重冗余区块,代理/站点降级 analytics - 代理线路:创建玩家权限、侧栏搜索、深链 URL、档案保存与删除预检等修复 - 统一密码最短 6 位;代理模块表格/侧栏背景色一致(admin-table-inset) - 报表、钱包、对账、开奖、结算、配置等模块结构与 i18n 同步更新
45 lines
1.3 KiB
TypeScript
45 lines
1.3 KiB
TypeScript
/** 后台/彩票端登录账号:字母、数字、点、下划线、连字符。 */
|
|
export const ADMIN_ACCOUNT_PATTERN = /^[a-zA-Z0-9._-]+$/;
|
|
|
|
/** 全项目统一:后台账号、代理账号、彩票端玩家密码最短长度 */
|
|
export const PASSWORD_MIN_LENGTH = 6;
|
|
export const ADMIN_PASSWORD_MIN_LENGTH = PASSWORD_MIN_LENGTH;
|
|
export const NATIVE_PLAYER_PASSWORD_MIN_LENGTH = PASSWORD_MIN_LENGTH;
|
|
|
|
export type AccountValidationIssue = "empty" | "invalid_charset";
|
|
export type PasswordValidationIssue = "empty" | "too_short";
|
|
|
|
export function validateAdminLoginAccount(value: string): AccountValidationIssue | null {
|
|
const trimmed = value.trim();
|
|
if (trimmed === "") {
|
|
return "empty";
|
|
}
|
|
if (!ADMIN_ACCOUNT_PATTERN.test(trimmed)) {
|
|
return "invalid_charset";
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
export function validateAdminPassword(
|
|
value: string,
|
|
minLength: number = ADMIN_PASSWORD_MIN_LENGTH,
|
|
): PasswordValidationIssue | null {
|
|
if (value === "") {
|
|
return "empty";
|
|
}
|
|
if (value.length < minLength) {
|
|
return "too_short";
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
export function validateNativePlayerUsername(value: string): AccountValidationIssue | null {
|
|
return validateAdminLoginAccount(value);
|
|
}
|
|
|
|
export function validateNativePlayerPassword(value: string): PasswordValidationIssue | null {
|
|
return validateAdminPassword(value, NATIVE_PLAYER_PASSWORD_MIN_LENGTH);
|
|
}
|