From cca5bd8f73538570f26567c336fbf75ba87fab1c Mon Sep 17 00:00:00 2001 From: Chneemann Date: Mon, 20 May 2024 14:10:53 +0200 Subject: [PATCH] form validation --- .../login/forgot-pw/forgot-pw.component.html | 18 ++++++++++++------ .../login/forgot-pw/forgot-pw.component.ts | 6 ++++++ .../login/register/register.component.html | 7 ++++--- src/assets/i18n/de.json | 3 +-- src/assets/i18n/en.json | 3 +-- 5 files changed, 24 insertions(+), 13 deletions(-) diff --git a/src/app/components/login/forgot-pw/forgot-pw.component.html b/src/app/components/login/forgot-pw/forgot-pw.component.html index 83bd41a..35afc78 100644 --- a/src/app/components/login/forgot-pw/forgot-pw.component.html +++ b/src/app/components/login/forgot-pw/forgot-pw.component.html @@ -17,7 +17,7 @@ id="mail" name="mail" #mail="ngModel" - placeholder="{{ 'login.email' | translate }}" + placeholder="{{ 'forgotPW.email' | translate }}" class="custom-input" autocomplete="email" [(ngModel)]="pwResetData.mail" @@ -33,11 +33,17 @@ }
- @if (!mail.valid && mail.touched) { -

{{ "forgotPW.errorMail0" | translate }}

- } @if (loginSerivce.errorCode == 'auth/invalid-email') { -

{{ "forgotPW.errorMail1" | translate }}

- } + @if(!mail.valid && mail.touched && + !checkIfUserEmailIsValid(pwResetData.mail.toLowerCase())) { +

{{ "register.errorMail0" | translate }}

+ } @else { @if (mail.touched && + !checkIfUserEmailIsValid(pwResetData.mail.toLowerCase())) { +

{{ "register.errorMail1" | translate }}

+ } @else { + @if(existEmailonServer(pwResetData.mail.toLowerCase()).length !== 1 && + mail.touched) { +

{{ "register.errorMail3" | translate }}

+ } } }
diff --git a/src/app/components/login/forgot-pw/forgot-pw.component.ts b/src/app/components/login/forgot-pw/forgot-pw.component.ts index ceaad8e..8a9ac8e 100644 --- a/src/app/components/login/forgot-pw/forgot-pw.component.ts +++ b/src/app/components/login/forgot-pw/forgot-pw.component.ts @@ -45,6 +45,12 @@ export class ForgotPwComponent { } } + existEmailonServer(mail: string) { + return this.firebaseService + .getAllUsers() + .filter((user) => user.email === mail); + } + checkIfUserEmailIsValid(emailValue: string) { const channelNameLenght = emailValue.length; const emailRegex = /^[\w.%+-]+@[\w.-]+\.[a-zA-Z]{2,}$/; diff --git a/src/app/components/login/register/register.component.html b/src/app/components/login/register/register.component.html index 792db0f..93045b7 100644 --- a/src/app/components/login/register/register.component.html +++ b/src/app/components/login/register/register.component.html @@ -62,12 +62,13 @@ }
@if(!mail.valid && mail.touched && - !checkIfUserEmailIsValid(registerData.mail)) { + !checkIfUserEmailIsValid(registerData.mail.toLowerCase())) {

{{ "register.errorMail0" | translate }}

} @else { @if (mail.touched && - !checkIfUserEmailIsValid(registerData.mail)) { + !checkIfUserEmailIsValid(registerData.mail.toLowerCase())) {

{{ "register.errorMail1" | translate }}

- } @else { @if (existEmailonServer(registerData.mail).length > 0) { + } @else { @if + (existEmailonServer(registerData.mail.toLowerCase()).length > 0) {

{{ "register.errorMail2" | translate }}

} } }
diff --git a/src/assets/i18n/de.json b/src/assets/i18n/de.json index 08dd5b6..b19bc58 100644 --- a/src/assets/i18n/de.json +++ b/src/assets/i18n/de.json @@ -16,8 +16,6 @@ "forgot": "Passwort zurücksetzen", "email": "Ihre E-Mail", "sendMail": "E-Mail senden", - "errorMail0": "Sie müssen eine E-Mail Adresse eingeben!", - "errorMail1": "Diese E-Mail Adresse existiert nicht!", "notice": "Wir senden Ihnen eine E-Mail, über die Sie Ihr Passwort ändern können" }, "register": { @@ -33,6 +31,7 @@ "errorMail0": "Sie müssen eine E-Mail Adresse eingeben!", "errorMail1": "Dies ist kein gültiges E-Mail-Format!", "errorMail2": "Diese E-Mail existiert bereits!", + "errorMail3": "Diese E-Mail existiert nicht!", "errorPassword0": "Sie müssen ein Passwort eingeben!", "errorPassword1": "Das Passwort muss aus mindestens 6 Zeichen bestehen!", "errorPassword2": "Die Passwörter stimmen nicht überein!" diff --git a/src/assets/i18n/en.json b/src/assets/i18n/en.json index cb95722..a1213e2 100644 --- a/src/assets/i18n/en.json +++ b/src/assets/i18n/en.json @@ -16,8 +16,6 @@ "forgot": "Reset Password", "email": "Your Email", "sendMail": "Send Mail", - "errorMail0": "You must enter a mail!", - "errorMail1": "This email address does not exist!", "notice": "We will send you an email to change your password." }, "register": { @@ -33,6 +31,7 @@ "errorMail0": "You must enter a mail!", "errorMail1": "This is not a valid email format!", "errorMail2": "This email already exists!", + "errorMail3": "This email does not exist!", "errorPassword0": "You must enter a password!", "errorPassword1": "The password must consist of at least 6 characters!", "errorPassword2": "The passwords don't match!"