From 9d17e31d8fd8e0e90e366b1c8993222980a585fc Mon Sep 17 00:00:00 2001 From: elweyn Date: Tue, 26 Oct 2021 11:35:25 +0200 Subject: [PATCH 01/15] Change the dropbox functionality so that the language is set when changing the language in the register form. --- frontend/src/views/Pages/Register.vue | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/frontend/src/views/Pages/Register.vue b/frontend/src/views/Pages/Register.vue index ff83f84fc..e4e9650fc 100755 --- a/frontend/src/views/Pages/Register.vue +++ b/frontend/src/views/Pages/Register.vue @@ -161,6 +161,7 @@ import InputEmail from '../../components/Inputs/InputEmail.vue' import InputPasswordConfirmation from '../../components/Inputs/InputPasswordConfirmation.vue' import LanguageSwitchSelect from '../../components/LanguageSwitchSelect.vue' import { registerUser } from '../../graphql/mutations' +import { localeChanged } from 'vee-validate' export default { components: { InputPasswordConfirmation, InputEmail, LanguageSwitchSelect }, @@ -187,6 +188,10 @@ export default { methods: { updateLanguage(e) { this.language = e + console.log('language', this.language) + this.$store.commit('language', this.language) + this.$i18n.locale = this.language + localeChanged(this.language) }, getValidationState({ dirty, validated, valid = null }) { return dirty || validated ? valid : null From 4389e47cabd5ddf196c46eed4e55cd0968ba4071 Mon Sep 17 00:00:00 2001 From: elweyn Date: Fri, 12 Nov 2021 07:17:30 +0100 Subject: [PATCH 02/15] Adding a check that the user is activated before letting them login. --- login_server/src/cpp/JSONInterface/JsonUnsecureLogin.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/login_server/src/cpp/JSONInterface/JsonUnsecureLogin.cpp b/login_server/src/cpp/JSONInterface/JsonUnsecureLogin.cpp index 991e412a0..0e7df24e2 100644 --- a/login_server/src/cpp/JSONInterface/JsonUnsecureLogin.cpp +++ b/login_server/src/cpp/JSONInterface/JsonUnsecureLogin.cpp @@ -147,7 +147,6 @@ Poco::JSON::Object* JsonUnsecureLogin::handle(Poco::Dynamic::Var params) infos.add("set user.group_id to default group_id = 1"); case USER_NO_PRIVATE_KEY: case USER_COMPLETE: - case USER_EMAIL_NOT_ACTIVATED: result->set("state", "success"); result->set("user", session->getNewUser()->getJson()); result->set("session_id", session->getHandle()); @@ -158,6 +157,10 @@ Poco::JSON::Object* JsonUnsecureLogin::handle(Poco::Dynamic::Var params) AWAIT(hasElopageTask) result->set("hasElopage", hasElopageTask->hasElopage()); return result; + case USER_EMAIL_NOT_ACTIVATED: + result->set("state", "processing"); + result->set("msg", "user email not validated"); + break; default: result->set("state", "error"); result->set("msg", "unknown user state"); From 14db7bd058e523217009defa27cbab4eb8415c31 Mon Sep 17 00:00:00 2001 From: elweyn Date: Fri, 12 Nov 2021 07:38:57 +0100 Subject: [PATCH 03/15] Added a no-email-verify to locale check if the error message contains the message email not verified then throw another message than normal. --- frontend/src/locales/de.json | 3 ++- frontend/src/locales/en.json | 3 ++- frontend/src/views/Pages/Login.vue | 7 +++++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/frontend/src/locales/de.json b/frontend/src/locales/de.json index ca5b20f82..56e759ab1 100644 --- a/frontend/src/locales/de.json +++ b/frontend/src/locales/de.json @@ -46,7 +46,8 @@ "change-password": "Fehler beim Ändern des Passworts", "error": "Fehler", "no-account": "Leider konnten wir keinen Account finden mit diesen Daten!", - "session-expired": "Sitzung abgelaufen!" + "session-expired": "Sitzung abgelaufen!", + "no-email-verify": "Email wurde noch nicht bestätigt, bitte überprüfen Sie ihre Emails und clicken Sie den Registrierungslink!" }, "form": { "amount": "Betrag", diff --git a/frontend/src/locales/en.json b/frontend/src/locales/en.json index d3d5b05ab..c7410633e 100644 --- a/frontend/src/locales/en.json +++ b/frontend/src/locales/en.json @@ -46,7 +46,8 @@ "change-password": "Error while changing password", "error": "Error", "no-account": "Unfortunately we could not find an account to the given data!", - "session-expired": "The session expired" + "session-expired": "The session expired", + "no-email-verify": "Your email is not validated yet, please check your emails and click on the activation link!" }, "form": { "amount": "Amount", diff --git a/frontend/src/views/Pages/Login.vue b/frontend/src/views/Pages/Login.vue index 0cdbeb942..3f5c840d4 100755 --- a/frontend/src/views/Pages/Login.vue +++ b/frontend/src/views/Pages/Login.vue @@ -102,9 +102,12 @@ export default { this.$router.push('/overview') loader.hide() }) - .catch(() => { + .catch((error) => { loader.hide() - this.$toasted.error(this.$t('error.no-account')) + const toastedError = !error.message.includes('user email not validated') + ? this.$t('error.no-account') + : this.$t('error.no-email-verify') + this.$toasted.error(toastedError) }) }, async onCreated() { From f5044e857984812cdd5f4fbcab859679fefdcf80 Mon Sep 17 00:00:00 2001 From: elweyn Date: Fri, 12 Nov 2021 07:54:14 +0100 Subject: [PATCH 04/15] Change register message & error toast message account not active yet. --- frontend/src/locales/de.json | 4 ++-- frontend/src/locales/en.json | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/frontend/src/locales/de.json b/frontend/src/locales/de.json index 56e759ab1..f1fdf04ec 100644 --- a/frontend/src/locales/de.json +++ b/frontend/src/locales/de.json @@ -47,7 +47,7 @@ "error": "Fehler", "no-account": "Leider konnten wir keinen Account finden mit diesen Daten!", "session-expired": "Sitzung abgelaufen!", - "no-email-verify": "Email wurde noch nicht bestätigt, bitte überprüfen Sie ihre Emails und clicken Sie den Registrierungslink!" + "no-email-verify": "Die Email wurde noch nicht bestätigt, bitte überprüfe deine Emails und klicke auf den Aktivierungslink!" }, "form": { "amount": "Betrag", @@ -181,7 +181,7 @@ "thx": { "checkEmail": "Deine Email würde erfolgreich verifiziert.", "email": "Wir haben dir eine eMail gesendet.", - "register": "Du bist jetzt registriert.", + "register": "Du bist jetzt registriert, bitte überprüfe deine Emails und klicke auf den Aktivierungslink.", "reset": "Dein Passwort wurde geändert.", "title": "Danke!" } diff --git a/frontend/src/locales/en.json b/frontend/src/locales/en.json index c7410633e..bd0fa2d82 100644 --- a/frontend/src/locales/en.json +++ b/frontend/src/locales/en.json @@ -47,7 +47,7 @@ "error": "Error", "no-account": "Unfortunately we could not find an account to the given data!", "session-expired": "The session expired", - "no-email-verify": "Your email is not validated yet, please check your emails and click on the activation link!" + "no-email-verify": "Your email is not activated yet, please check your emails and click the activation link!" }, "form": { "amount": "Amount", @@ -181,7 +181,7 @@ "thx": { "checkEmail": "Your email has been successfully verified.", "email": "We have sent you an email.", - "register": "You are registred now.", + "register": "You are registered now, please check your emails and click the activation link.", "reset": "Your password has been changed.", "title": "Thank you!" } From b1e419530c1ca887b02541a50ae5514226947cb6 Mon Sep 17 00:00:00 2001 From: elweyn Date: Fri, 12 Nov 2021 08:31:48 +0100 Subject: [PATCH 05/15] Fix sorting of locale. --- frontend/src/locales/de.json | 4 ++-- frontend/src/locales/en.json | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/frontend/src/locales/de.json b/frontend/src/locales/de.json index f1fdf04ec..1c298b416 100644 --- a/frontend/src/locales/de.json +++ b/frontend/src/locales/de.json @@ -46,8 +46,8 @@ "change-password": "Fehler beim Ändern des Passworts", "error": "Fehler", "no-account": "Leider konnten wir keinen Account finden mit diesen Daten!", - "session-expired": "Sitzung abgelaufen!", - "no-email-verify": "Die Email wurde noch nicht bestätigt, bitte überprüfe deine Emails und klicke auf den Aktivierungslink!" + "no-email-verify": "Die Email wurde noch nicht bestätigt, bitte überprüfe deine Emails und klicke auf den Aktivierungslink!", + "session-expired": "Sitzung abgelaufen!" }, "form": { "amount": "Betrag", diff --git a/frontend/src/locales/en.json b/frontend/src/locales/en.json index bd0fa2d82..fd57798c4 100644 --- a/frontend/src/locales/en.json +++ b/frontend/src/locales/en.json @@ -46,8 +46,8 @@ "change-password": "Error while changing password", "error": "Error", "no-account": "Unfortunately we could not find an account to the given data!", - "session-expired": "The session expired", - "no-email-verify": "Your email is not activated yet, please check your emails and click the activation link!" + "no-email-verify": "Your email is not activated yet, please check your emails and click the activation link!", + "session-expired": "The session expired" }, "form": { "amount": "Amount", From fefcb7251ad92322f20623edec3788dc635e2207 Mon Sep 17 00:00:00 2001 From: elweyn Date: Fri, 12 Nov 2021 10:06:31 +0100 Subject: [PATCH 06/15] Routes can route to /thx/login & /activateEmail , thx page now integrates email not activated logic. --- frontend/src/routes/routes.js | 6 +- frontend/src/views/Pages/ActivateEmail.vue | 76 ++++++++++++++++++++++ frontend/src/views/Pages/Login.vue | 10 +-- frontend/src/views/Pages/thx.vue | 10 +++ 4 files changed, 97 insertions(+), 5 deletions(-) create mode 100644 frontend/src/views/Pages/ActivateEmail.vue diff --git a/frontend/src/routes/routes.js b/frontend/src/routes/routes.js index 8cc4d313d..3d16ef45e 100755 --- a/frontend/src/routes/routes.js +++ b/frontend/src/routes/routes.js @@ -40,7 +40,7 @@ const routes = [ path: '/thx/:comingFrom', component: () => import('../views/Pages/thx.vue'), beforeEnter: (to, from, next) => { - const validFrom = ['password', 'reset', 'register'] + const validFrom = ['password', 'reset', 'register', 'login', 'activateEmail'] if (!validFrom.includes(from.path.split('/')[1])) { next({ path: '/login' }) } else { @@ -68,6 +68,10 @@ const routes = [ path: '/checkEmail/:optin', component: () => import('../views/Pages/CheckEmail.vue'), }, + { + path: '/activateEmail', + component: () => import('../views/Pages/ActivateEmail.vue'), + }, { path: '*', component: NotFound }, ] diff --git a/frontend/src/views/Pages/ActivateEmail.vue b/frontend/src/views/Pages/ActivateEmail.vue new file mode 100644 index 000000000..203065b3c --- /dev/null +++ b/frontend/src/views/Pages/ActivateEmail.vue @@ -0,0 +1,76 @@ + + + diff --git a/frontend/src/views/Pages/Login.vue b/frontend/src/views/Pages/Login.vue index 3f5c840d4..4ef7f7fb6 100755 --- a/frontend/src/views/Pages/Login.vue +++ b/frontend/src/views/Pages/Login.vue @@ -103,11 +103,13 @@ export default { loader.hide() }) .catch((error) => { + if (!error.message.includes('user email not validated')) { + this.$toasted.error(this.$t('error.no-account')) + } else { + // : this.$t('error.no-email-verify') + this.$router.push('/thx/login') + } loader.hide() - const toastedError = !error.message.includes('user email not validated') - ? this.$t('error.no-account') - : this.$t('error.no-email-verify') - this.$toasted.error(toastedError) }) }, async onCreated() { diff --git a/frontend/src/views/Pages/thx.vue b/frontend/src/views/Pages/thx.vue index 9d9143456..5dc2bda19 100644 --- a/frontend/src/views/Pages/thx.vue +++ b/frontend/src/views/Pages/thx.vue @@ -36,6 +36,16 @@ const textFields = { button: 'login', linkTo: '/login', }, + login: { + subtitle: 'site.thx.activateEmail', + button: 'Send Activation Link', + linkTo: '/activateEmail', + }, + activateEmail: { + subtitle: 'site.thx.emailActivated', + button: 'login', + linkTo: '/login', + }, } export default { From 1bf8e8451da37e91db7233e45c83134430f47953 Mon Sep 17 00:00:00 2001 From: elweyn Date: Fri, 12 Nov 2021 10:06:51 +0100 Subject: [PATCH 07/15] Textes for the new pages added. --- frontend/src/locales/de.json | 6 ++++++ frontend/src/locales/en.json | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/frontend/src/locales/de.json b/frontend/src/locales/de.json index 1c298b416..97f49b5e8 100644 --- a/frontend/src/locales/de.json +++ b/frontend/src/locales/de.json @@ -153,6 +153,10 @@ "ooops": "Ooops!", "text": "Seite nicht gefunden. Aber keine Sorge, wir haben noch viele andere Seiten zum Erkunden" }, + "activateEmail": { + "headline": "", + "subtitle": "" + }, "checkEmail": { "errorText": "Email konnte nicht verifiziert werden.", "title": "Email wird verifiziert" @@ -179,8 +183,10 @@ "uppercase": "Ein Großbuchstabe erforderlich." }, "thx": { + "activateEmail": "Deine Email wurde noch nicht aktiviert, email erneut senden?", "checkEmail": "Deine Email würde erfolgreich verifiziert.", "email": "Wir haben dir eine eMail gesendet.", + "emailActivated": "Danke dass Du deine Email bestätigt hast.", "register": "Du bist jetzt registriert, bitte überprüfe deine Emails und klicke auf den Aktivierungslink.", "reset": "Dein Passwort wurde geändert.", "title": "Danke!" diff --git a/frontend/src/locales/en.json b/frontend/src/locales/en.json index fd57798c4..236d607cf 100644 --- a/frontend/src/locales/en.json +++ b/frontend/src/locales/en.json @@ -153,6 +153,10 @@ "ooops": "Ooops!", "text": "Page not found. Do not worry though, we have plenty of other pages to explore" }, + "activateEmail": { + "headline": "", + "subtitle": "" + }, "checkEmail": { "errorText": "Could not verify the email.", "title": "Verifing email" @@ -179,8 +183,10 @@ "uppercase": "One uppercase letter required." }, "thx": { + "activateEmail": "Your email has not been activated yet, send again the activation email?", "checkEmail": "Your email has been successfully verified.", "email": "We have sent you an email.", + "emailActivated": "Thank you your email has been activated.", "register": "You are registered now, please check your emails and click the activation link.", "reset": "Your password has been changed.", "title": "Thank you!" From 9a75604a7a6f00c0e7350963ba5e01afec450601 Mon Sep 17 00:00:00 2001 From: elweyn Date: Fri, 12 Nov 2021 10:55:43 +0100 Subject: [PATCH 08/15] Change prozess so that a user that has not activate his account gets a warning that he needs to click the activation link in the email. Withdrew sendActivationMail again. --- frontend/src/locales/de.json | 3 +- frontend/src/locales/en.json | 3 +- frontend/src/routes/routes.js | 6 +- frontend/src/views/Pages/ActivateEmail.vue | 76 ---------------------- frontend/src/views/Pages/thx.vue | 17 ++--- 5 files changed, 14 insertions(+), 91 deletions(-) delete mode 100644 frontend/src/views/Pages/ActivateEmail.vue diff --git a/frontend/src/locales/de.json b/frontend/src/locales/de.json index 97f49b5e8..95504407d 100644 --- a/frontend/src/locales/de.json +++ b/frontend/src/locales/de.json @@ -183,10 +183,11 @@ "uppercase": "Ein Großbuchstabe erforderlich." }, "thx": { - "activateEmail": "Deine Email wurde noch nicht aktiviert, email erneut senden?", + "activateEmail": "Deine Email wurde noch nicht aktiviert, bitte überprüfe deine Email und Klicke den Aktivierungslink!", "checkEmail": "Deine Email würde erfolgreich verifiziert.", "email": "Wir haben dir eine eMail gesendet.", "emailActivated": "Danke dass Du deine Email bestätigt hast.", + "errorTitle": "Achtung!", "register": "Du bist jetzt registriert, bitte überprüfe deine Emails und klicke auf den Aktivierungslink.", "reset": "Dein Passwort wurde geändert.", "title": "Danke!" diff --git a/frontend/src/locales/en.json b/frontend/src/locales/en.json index 236d607cf..ac00b0d20 100644 --- a/frontend/src/locales/en.json +++ b/frontend/src/locales/en.json @@ -183,10 +183,11 @@ "uppercase": "One uppercase letter required." }, "thx": { - "activateEmail": "Your email has not been activated yet, send again the activation email?", + "activateEmail": "Your email has not been activated yet, please check your emails and click the activation link!", "checkEmail": "Your email has been successfully verified.", "email": "We have sent you an email.", "emailActivated": "Thank you your email has been activated.", + "errorTitle": "Attention!", "register": "You are registered now, please check your emails and click the activation link.", "reset": "Your password has been changed.", "title": "Thank you!" diff --git a/frontend/src/routes/routes.js b/frontend/src/routes/routes.js index 3d16ef45e..9c51bc688 100755 --- a/frontend/src/routes/routes.js +++ b/frontend/src/routes/routes.js @@ -40,7 +40,7 @@ const routes = [ path: '/thx/:comingFrom', component: () => import('../views/Pages/thx.vue'), beforeEnter: (to, from, next) => { - const validFrom = ['password', 'reset', 'register', 'login', 'activateEmail'] + const validFrom = ['password', 'reset', 'register', 'login'] if (!validFrom.includes(from.path.split('/')[1])) { next({ path: '/login' }) } else { @@ -68,10 +68,6 @@ const routes = [ path: '/checkEmail/:optin', component: () => import('../views/Pages/CheckEmail.vue'), }, - { - path: '/activateEmail', - component: () => import('../views/Pages/ActivateEmail.vue'), - }, { path: '*', component: NotFound }, ] diff --git a/frontend/src/views/Pages/ActivateEmail.vue b/frontend/src/views/Pages/ActivateEmail.vue deleted file mode 100644 index 203065b3c..000000000 --- a/frontend/src/views/Pages/ActivateEmail.vue +++ /dev/null @@ -1,76 +0,0 @@ - - - diff --git a/frontend/src/views/Pages/thx.vue b/frontend/src/views/Pages/thx.vue index 5dc2bda19..d28b129e1 100644 --- a/frontend/src/views/Pages/thx.vue +++ b/frontend/src/views/Pages/thx.vue @@ -4,10 +4,12 @@
-

{{ $t('site.thx.title') }}

+

{{ $t(displaySetup.headline) }}

{{ $t(displaySetup.subtitle) }}


- {{ $t(displaySetup.button) }} + + {{ $t(displaySetup.button) }} +
@@ -17,34 +19,33 @@