@@ -0,0 +1,61 @@
|
||||
/** Правила пароля — как в админке и setup wizard. Логин без ограничений по символам. */
|
||||
export const DEFAULT_PASSWORD_MIN_LEN = 8;
|
||||
export const LOGIN_MAX_LEN = 64;
|
||||
export const PASSWORD_COMPLEXITY_MSG =
|
||||
"Пароль не должен состоять только из цифр или только из букв. Смешайте буквы и цифры.";
|
||||
|
||||
export function validateNewUserCredentials({
|
||||
login,
|
||||
password,
|
||||
confirmPassword,
|
||||
passwordMinLen = DEFAULT_PASSWORD_MIN_LEN,
|
||||
label = "",
|
||||
}) {
|
||||
const prefix = label ? `${label}: ` : "";
|
||||
const trimmedLogin = String(login || "").trim();
|
||||
if (!trimmedLogin) return `${prefix}укажите логин.`;
|
||||
if (trimmedLogin.length > LOGIN_MAX_LEN) {
|
||||
return `${prefix}логин не длиннее ${LOGIN_MAX_LEN} символов.`;
|
||||
}
|
||||
if (!password) return `${prefix}укажите пароль.`;
|
||||
if (password !== confirmPassword) return `${prefix}пароли не совпадают.`;
|
||||
if (password.length < passwordMinLen) {
|
||||
return `${prefix}пароль не короче ${passwordMinLen} символов.`;
|
||||
}
|
||||
if (/^\d+$/.test(password) || /^[a-zA-Z]+$/.test(password)) {
|
||||
return `${prefix}${PASSWORD_COMPLEXITY_MSG}`;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
export function validateCredentialChange({
|
||||
oldLogin,
|
||||
oldPassword,
|
||||
newLogin,
|
||||
newPassword,
|
||||
confirmPassword,
|
||||
passwordMinLen = DEFAULT_PASSWORD_MIN_LEN,
|
||||
}) {
|
||||
if (!oldLogin || !oldPassword) {
|
||||
return "Укажите текущий логин и пароль";
|
||||
}
|
||||
return validateNewUserCredentials({
|
||||
login: newLogin,
|
||||
password: newPassword,
|
||||
confirmPassword,
|
||||
passwordMinLen,
|
||||
});
|
||||
}
|
||||
|
||||
export function ensureCredentialsFormHints() {}
|
||||
|
||||
if (typeof globalThis !== "undefined") {
|
||||
globalThis.WespUserCredentials = {
|
||||
DEFAULT_PASSWORD_MIN_LEN,
|
||||
LOGIN_MAX_LEN,
|
||||
PASSWORD_COMPLEXITY_MSG,
|
||||
validateCredentialChange,
|
||||
validateNewUserCredentials,
|
||||
ensureCredentialsFormHints,
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user