Files
lcbp3.np-dms.work/n8n-cache/n8n/public/assets/ChangePasswordView-nmwMP1GF.js
2025-09-21 20:29:15 +07:00

143 lines
4.9 KiB
JavaScript
Executable File

import { d as defineComponent, u as useUsersStore, a as useToast, b as useRouter, r as ref, o as onMounted, c as useI18n, M as MFA_AUTHENTICATION_CODE_INPUT_MAX_LENGTH, V as VIEWS, e as createBlock, f as createCommentVNode, g as openBlock } from "./index--OJ5nhDf.js";
import { A as AuthView } from "./AuthView-ty01eojq.js";
import "./Logo-DHG_oEvt.js";
const _sfc_main = /* @__PURE__ */ defineComponent({
__name: "ChangePasswordView",
setup(__props) {
const usersStore = useUsersStore();
const locale = useI18n();
const toast = useToast();
const router = useRouter();
const password = ref("");
const loading = ref(false);
const config = ref(null);
const passwordsMatch = (value) => {
if (typeof value !== "string") {
return false;
}
if (value !== password.value) {
return {
messageKey: "auth.changePassword.passwordsMustMatchError"
};
}
return false;
};
const getResetToken = () => {
return !router.currentRoute.value.query.token || typeof router.currentRoute.value.query.token !== "string" ? null : router.currentRoute.value.query.token;
};
const getMfaEnabled = () => {
if (!router.currentRoute.value.query.mfaEnabled) return null;
return router.currentRoute.value.query.mfaEnabled === "true" ? true : false;
};
const onSubmit = async (values) => {
try {
loading.value = true;
const token = getResetToken();
if (token) {
const changePasswordParameters = {
token,
password: password.value,
...values.mfaCode && { mfaCode: values.mfaCode }
};
await usersStore.changePassword(changePasswordParameters);
toast.showMessage({
type: "success",
title: locale.baseText("auth.changePassword.passwordUpdated"),
message: locale.baseText("auth.changePassword.passwordUpdatedMessage")
});
await router.push({ name: VIEWS.SIGNIN });
} else {
toast.showError(
new Error(locale.baseText("auth.validation.missingParameters")),
locale.baseText("auth.changePassword.error")
);
}
} catch (error) {
toast.showError(error, locale.baseText("auth.changePassword.error"));
}
loading.value = false;
};
const onInput = (e) => {
if (e.name === "password" && typeof e.value === "string") {
password.value = e.value;
}
};
onMounted(async () => {
const form = {
title: locale.baseText("auth.changePassword"),
buttonText: locale.baseText("auth.changePassword"),
redirectText: locale.baseText("auth.signin"),
redirectLink: "/signin",
inputs: [
{
name: "password",
properties: {
label: locale.baseText("auth.newPassword"),
type: "password",
required: true,
validationRules: [{ name: "DEFAULT_PASSWORD_RULES" }],
infoText: locale.baseText("auth.defaultPasswordRequirements"),
autocomplete: "new-password",
capitalize: true
}
},
{
name: "password2",
properties: {
label: locale.baseText("auth.changePassword.reenterNewPassword"),
type: "password",
required: true,
validators: {
TWO_PASSWORDS_MATCH: {
validate: passwordsMatch
}
},
validationRules: [{ name: "TWO_PASSWORDS_MATCH" }],
autocomplete: "new-password",
capitalize: true
}
}
]
};
const token = getResetToken();
const mfaEnabled = getMfaEnabled();
if (mfaEnabled) {
form.inputs.push({
name: "mfaCode",
initialValue: "",
properties: {
required: true,
label: locale.baseText("mfa.code.input.label"),
placeholder: locale.baseText("mfa.code.input.placeholder"),
maxlength: MFA_AUTHENTICATION_CODE_INPUT_MAX_LENGTH,
capitalize: true,
validateOnBlur: true
}
});
}
config.value = form;
try {
if (!token) {
throw new Error(locale.baseText("auth.changePassword.missingTokenError"));
}
await usersStore.validatePasswordToken({ token });
} catch (e) {
toast.showError(e, locale.baseText("auth.changePassword.tokenValidationError"));
void router.replace({ name: VIEWS.SIGNIN });
}
});
return (_ctx, _cache) => {
return config.value ? (openBlock(), createBlock(AuthView, {
key: 0,
form: config.value,
"form-loading": loading.value,
onSubmit,
onUpdate: onInput
}, null, 8, ["form", "form-loading"])) : createCommentVNode("", true);
};
}
});
export {
_sfc_main as default
};