fix(register): phone number verification

This commit is contained in:
Philipp Dormann 2025-03-18 00:00:51 +01:00
parent f1d552ce64
commit d5eefbb5e2
Signed by: philipp
GPG Key ID: 3BB9ADD52DCA4314

View File

@ -144,9 +144,9 @@
<input v-model="userdetails.phone" name="phone" id="phone" autocomplete="off"
:placeholder="[[$t('phone_number')]]" type="text" :class="{
'border-red-500':
!isMobilePhone(userdetails.phone) && userdetails.phone.trim(),
!isPhoneOkay(userdetails.phone),
'border-green-300':
isMobilePhone(userdetails.phone) && userdetails.phone.trim(),
isPhoneOkay(userdetails.phone),
}" class="
dark:bg-gray-800
mt-1
@ -160,7 +160,7 @@
rounded-md
p-2
" />
<p v-if="!isMobilePhone(userdetails.phone) && userdetails.phone.trim()" class="text-sm">
<p v-if="!isPhoneOkay(userdetails.phone)" class="text-sm">
{{ $t("this_is_not_a_valid_international_phone_number") }}
</p>
<!-- -->
@ -173,7 +173,7 @@
</div>
<div class="ml-3 text-sm">
<label for="address_activated" class="font-medium text-gray-600 select-none">{{ $t("provide_address")
}}</label>
}}</label>
</div>
</div>
<div v-if="provide_address === true" class="col-span-6">
@ -369,6 +369,21 @@ let userdetails = ref({
phone: "",
address: { street: "", address2: "", city: "", zipcode: "" },
});
function isPhoneOkay() {
if (userdetails.value.phone === "") {
return true
}
if (userdetails.value.phone.includes(" ")) {
return false
}
if (!userdetails.value.phone.includes("+")) {
return false
}
if (isMobilePhone(userdetails.value.phone)) {
return true
}
return false
}
let provide_address = ref(false);
let agb_accepted = ref(false);
let data_confirmed = ref(false);
@ -382,8 +397,7 @@ const state = reactive({
() =>
agb_accepted.value === true &&
data_confirmed.value === true &&
(isMobilePhone(userdetails.value.phone) ||
!userdetails.value.phone.trim()) &&
isPhoneOkay() &&
isEmail(userdetails.value.mail) &&
userdetails.value.firstname &&
userdetails.value.lastname &&
@ -396,25 +410,23 @@ const state = reactive({
});
const toast = useToast();
function login() {
userdetails = userdetails.value;
if (userdetails?.phone === "" || isMobilePhone(userdetails.phone)) {
if (isEmail(userdetails.mail)) {
// userdetails = userdetails.value;
if (isPhoneOkay()) {
if (isEmail(userdetails.value.mail)) {
let postdata = {
email: userdetails.mail,
firstname: userdetails.firstname,
middlename: userdetails.middlename,
lastname: userdetails.lastname,
email: userdetails.value.mail,
firstname: userdetails.value.firstname,
middlename: userdetails.value.middlename,
lastname: userdetails.value.lastname,
phone: userdetails.value.phone,
address: {},
};
if (isMobilePhone(userdetails.phone)) {
postdata.phone = userdetails.phone;
}
if (provide_address.value === true) {
postdata.address = {
address1: userdetails.address.street,
address2: userdetails.address.address2 || "",
city: userdetails.address.city,
postalcode: userdetails.address.zipcode,
address1: userdetails.value.address.street,
address2: userdetails.value.address.address2 || "",
city: userdetails.value.address.city,
postalcode: userdetails.value.address.zipcode,
country: "DE",
};
}