Интегрирован wesp в сайт
CI / quality (push) Canceled after 0s

This commit is contained in:
влад
2026-07-17 12:57:18 +03:00
parent 5dfa06ddbe
commit 355c0ef9f1
883 changed files with 194576 additions and 177 deletions
@@ -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,
};
}