diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 002118f5b..0e1283266 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -206,7 +206,7 @@ jobs: report_name: Coverage Frontend type: lcov result_path: ./coverage/lcov.info - min_coverage: 32 + min_coverage: 46 token: ${{ github.token }} ############################################################################## diff --git a/configs/login_server/LOCALE/de_DE.mo b/configs/login_server/LOCALE/de_DE.mo index 3ab456b2d..bfee8efd3 100644 Binary files a/configs/login_server/LOCALE/de_DE.mo and b/configs/login_server/LOCALE/de_DE.mo differ diff --git a/configs/login_server/LOCALE/de_DE.po b/configs/login_server/LOCALE/de_DE.po index 18fa4262e..b4bca3098 100644 --- a/configs/login_server/LOCALE/de_DE.po +++ b/configs/login_server/LOCALE/de_DE.po @@ -7,409 +7,505 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-28 10:50+0200\n" -"PO-Revision-Date: 2020-05-28 10:54+0200\n" +"POT-Creation-Date: 2021-06-21 13:37+0200\n" +"PO-Revision-Date: 2021-06-21 13:38+0200\n" "Last-Translator: \n" "Language-Team: \n" "Language: de_DE\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.3.1\n" +"X-Generator: Poedit 3.0\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp:85 -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp:124 +#: build/http_pages/LoginPage.cpp:196 build/http_pages/LoginPage.cpp:275 msgid "Login" msgstr "Anmeldung" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp:85 +#: build/http_pages/LoginPage.cpp:196 msgid "E-Mail or password isn't right, please try again!" msgstr "" "E-Mail und Passwort Kombination stimmen nicht, bitte versuche es erneut. " -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp:88 -#, fuzzy -#| msgid "Password" +#: build/http_pages/LoginPage.cpp:205 msgid "Passwort" msgstr "Passwort" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp:88 +#: build/http_pages/LoginPage.cpp:205 msgid "" "Passwort wird noch berechnet, bitte versuche es in etwa 1 Minute erneut." msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp:91 -msgid "Account" -msgstr "Konto" - -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp:91 -msgid "E-Mail Address not checked, do you already get one?" +#: build/http_pages/LoginPage.cpp:208 build/http_pages/LoginPage.cpp:211 +msgid "User" msgstr "" -"E-Mail Adresse wurde noch nicht überprüft. Hast du schon in deine E-Mails " -"geschaut? Bitte schau auch in dein Spam-Verzeichnis nach." -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp:124 +#: build/http_pages/LoginPage.cpp:208 +msgid "Error in saved data, the server admin will look at it." +msgstr "" + +#: build/http_pages/LoginPage.cpp:211 +msgid "Benutzer ist deaktiviert, kein Login möglich!" +msgstr "" + +#: build/http_pages/LoginPage.cpp:275 msgid "Username and password are needed!" msgstr "E-Mail und Passwort werden benötigt!" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp:175 -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp:50 -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp:54 -#: model/Session.cpp:163 model/Session.cpp:170 model/Session.cpp:209 -#: model/Session.cpp:234 +#: build/http_pages/LoginPage.cpp:376 src/cpp/model/Session.cpp:161 +#: src/cpp/model/Session.cpp:168 src/cpp/model/Session.cpp:220 +#: src/cpp/model/Session.cpp:231 msgid "E-Mail" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp:178 +#: build/http_pages/LoginPage.cpp:381 +#: src/cpp/SingletonManager/SessionManager.cpp:603 +#: src/cpp/SingletonManager/SessionManager.cpp:609 +#: src/cpp/SingletonManager/SessionManager.cpp:614 +#: src/cpp/SingletonManager/SessionManager.cpp:619 +#: src/cpp/SingletonManager/SessionManager.cpp:624 +#: src/cpp/SingletonManager/SessionManager.cpp:629 msgid "Password" msgstr "Passwort" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp:180 +#: build/http_pages/LoginPage.cpp:384 msgid " Login " msgstr "Anmeldung" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp:182 +#: build/http_pages/LoginPage.cpp:391 msgid "You haven't any account yet? Please follow the link to create one." msgstr "Du hast noch kein Gradido-Konto?" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp:183 +#: build/http_pages/LoginPage.cpp:395 msgid "Create New Account" msgstr "Neues Konto erstellen" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp:186 +#: build/http_pages/LoginPage.cpp:403 msgid "Passwort vergessen" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp:97 -msgid "Bitte gebe deinen E-Mail Verification Code ein:" +#: build/http_pages/CheckEmailPage.cpp:155 +msgid "E-Mail verifizieren" +msgstr "E-Mail überprüfen" + +#: build/http_pages/CheckEmailPage.cpp:165 +msgid "" +"Deine E-Mail wurde erfolgreich bestätigt. Du kannst nun Gradidos versenden." msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp:98 -#: model/Session.cpp:186 -#, fuzzy -#| msgid "E-Mail Verification" +#: build/http_pages/CheckEmailPage.cpp:170 +msgid "Zur Startseite" +msgstr "" + +#: build/http_pages/CheckEmailPage.cpp:175 +msgid "Bitte gib deinen E-Mail Verification Code ein:" +msgstr "Bitte gib deinen E-Mail Verification Code ein:" + +#: build/http_pages/CheckEmailPage.cpp:178 src/cpp/model/Session.cpp:184 msgid "Email Verification Code" -msgstr "E-Mail Überprüfung" +msgstr "Email Verification Code" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp:100 +#: build/http_pages/CheckEmailPage.cpp:185 msgid "Überprüfe Code" -msgstr "" +msgstr "Überprüfe Code" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp:104 +#: build/http_pages/CheckEmailPage.cpp:190 msgid "Du hast bisher keinen Code erhalten?" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp:105 +#: build/http_pages/CheckEmailPage.cpp:193 msgid "E-Mail erneut zuschicken (in Arbeit)" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp:108 +#: build/http_pages/CheckEmailPage.cpp:198 msgid "Funktioniert dein E-Mail Verification Code nicht?" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp:109 +#: build/http_pages/CheckEmailPage.cpp:201 msgid "Schicke uns eine E-Mail und wir kümmern uns darum: " msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp:110 -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp:133 +#: build/http_pages/CheckEmailPage.cpp:208 +#: build/http_pages/ResetPasswordPage.cpp:273 msgid "E-Mail an Support schicken" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp:50 -msgid "E-Mail Adresse konnte nicht gefunden werden oder ist nicht aktiviert." +#: build/http_pages/ResetPasswordPage.cpp:174 +#: build/http_pages/ResetPasswordPage.cpp:217 +msgid "Gib bitte hier deine E-Mail Adresse an:" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp:54 -msgid "E-Mail Adresse nicht angegeben." +#: build/http_pages/ResetPasswordPage.cpp:183 +msgid "Bestätigen" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp:59 -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp:74 -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:26 -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:94 -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:114 -#: model/Session.cpp:495 model/Session.cpp:507 model/Session.cpp:515 -msgid "Passphrase" -msgstr "" - -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp:59 -msgid "Bitte wähle eine Option aus." -msgstr "" - -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp:74 -msgid "Ungültige Option" -msgstr "" - -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp:107 -msgid "Gebe bitte hier deine E-Mail Adresse an:" -msgstr "" - -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp:109 +#: build/http_pages/ResetPasswordPage.cpp:225 msgid "Hast du dir deine Passphrase notiert oder gemerkt?" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp:113 -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:196 +#: build/http_pages/ResetPasswordPage.cpp:234 +#: build/http_pages/PassphrasePage.cpp:373 msgid "Ja" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp:118 +#: build/http_pages/ResetPasswordPage.cpp:241 msgid "Nein" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp:123 +#: build/http_pages/ResetPasswordPage.cpp:247 msgid "Absenden" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp:127 +#: build/http_pages/ResetPasswordPage.cpp:255 msgid "Dir wird eine E-Mail zugeschickt um dein Passwort zurückzusetzen." msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp:129 +#: build/http_pages/ResetPasswordPage.cpp:260 msgid "Der Admin hat eine E-Mail bekommen und wird sich bei dir melden." msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp:131 +#: build/http_pages/ResetPasswordPage.cpp:265 msgid "" "Du hast bereits eine E-Mail bekommen. Bitte schau auch in dein Spam-" "Verzeichnis nach. " msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp:132 +#: build/http_pages/ResetPasswordPage.cpp:268 msgid "" "Du hast wirklich keine E-Mail erhalten und auch schon ein paar Minuten " "gewartet?" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:27 -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:256 +#: build/http_pages/PassphrasePage.cpp:41 +#: build/http_pages/PassphrasePage.cpp:111 +#: build/http_pages/PassphrasePage.cpp:132 src/cpp/model/Session.cpp:465 +#: src/cpp/model/Session.cpp:477 src/cpp/model/Session.cpp:491 +msgid "Passphrase" +msgstr "" + +#: build/http_pages/PassphrasePage.cpp:42 +#: build/http_pages/PassphrasePage.cpp:451 msgid "Neues Konto anlegen" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:28 +#: build/http_pages/PassphrasePage.cpp:43 msgid "2/3" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:94 +#: build/http_pages/PassphrasePage.cpp:111 msgid "" "Diese Passphrase ist ungültig, bitte überprüfen oder neu " "generieren (lassen)." msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:114 +#: build/http_pages/PassphrasePage.cpp:132 msgid "intern error please try again later" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:129 +#: build/http_pages/PassphrasePage.cpp:147 msgid "3/3" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:132 -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:135 +#: build/http_pages/PassphrasePage.cpp:150 +#: build/http_pages/PassphrasePage.cpp:153 msgid "1/3" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:134 +#: build/http_pages/PassphrasePage.cpp:152 msgid "Neues Passwort anlegen" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:153 -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:188 -msgid "Was zu tun ist:" +#: build/http_pages/PassphrasePage.cpp:270 +msgid "Passphrase abschreiben" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:154 -msgid "" -"Schreibe dir deine Passphrase auf und packe sie gut weg. Du brauchst sie um " -"deine Adresse wiederherzustellen. Wenn du sie verlierst, sind auch deine " -"Gradidos verloren." -msgstr "" -"Schreibe dir deine Passphrase auf oder drucke sie aus und bewahre sie in " -"Papier-Form an einem sicheren Ort auf (speichere sie nicht auf deinem " -"Rechner oder Mobilgerät)! Du brauchst deine Passphrase um dein Konto " -"wiederherzustellen, wenn du mal dein Passort vergessen haben solltest. " - -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:157 -msgid "Deine Passphrase (Groß/Kleinschreibung beachten)" -msgstr "" - -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:161 +#: build/http_pages/PassphrasePage.cpp:287 msgid "Was ist eine Passphrase?" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:162 -msgid "" -"Die Passphrase kommt aus dem Crypto-Bereich und ist ein Weg einen " -"komplizierte kryptografischen Schlüssel in einer lesbaren Form darzustellen." +#: build/http_pages/PassphrasePage.cpp:290 +msgid "Deine Passphrase besteht aus den im grünen Feld angezeigten Wörtern." msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:163 -msgid "" -"Der neue Gradido basiert technisch auf einer Kryptowährung (wie z.B. " -"Bitcoin) um maximale Sicherheit zu erreichen." +#: build/http_pages/PassphrasePage.cpp:293 +msgid "Sie dient deiner Sicherheit." msgstr "" -"Der neue Gradido basiert technisch auf einer Kryptowährung (wie z.B. " -"Bitcoin) um für dich die maximale Sicherheit zu gewährleisten." -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:165 -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:275 -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:280 -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:293 +#: build/http_pages/PassphrasePage.cpp:296 +msgid "" +"Du brauchst deine Passphrase um dein Konto wiederherzustellen, wenn du mal " +"dein Passwort vergessen haben solltest." +msgstr "" + +#: build/http_pages/PassphrasePage.cpp:300 +msgid "Deine Passphrase (Groß/Kleinschreibung beachten)" +msgstr "" + +#: build/http_pages/PassphrasePage.cpp:309 +#: build/http_pages/PassphrasePage.cpp:352 +msgid "Was zu tun ist:" +msgstr "" + +#: build/http_pages/PassphrasePage.cpp:312 +msgid "" +"Schreibe dir die obenstehende Passphrase von Hand auf ein Blatt " +"Papier!" +msgstr "" + +#: build/http_pages/PassphrasePage.cpp:315 +msgid "Speichere sie auf keinen Fall auf deinem Rechner oder Mobilgerät!!" +msgstr "" + +#: build/http_pages/PassphrasePage.cpp:318 +msgid "Bewahre sie an einem sicheren Ort auf!" +msgstr "" + +#: build/http_pages/PassphrasePage.cpp:322 +#: build/http_pages/PassphrasePage.cpp:478 +#: build/http_pages/PassphrasePage.cpp:487 +#: build/http_pages/PassphrasePage.cpp:511 msgid "Weiter" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:189 +#: build/http_pages/PassphrasePage.cpp:355 msgid "Hast du dir deine Passphrase gemerkt?" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:190 +#: build/http_pages/PassphrasePage.cpp:358 msgid "" "Dann zeig es mir. Zur Unterstützung gebe ich dir deine Wörter aber in " "anderer Reihenfolge." msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:191 +#: build/http_pages/PassphrasePage.cpp:361 msgid "Klicke sie an um sie einzusetzen." msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:195 +#: build/http_pages/PassphrasePage.cpp:364 +msgid "Überprüfe dabei, ob du alle Wörter richtig geschrieben hast!" +msgstr "" + +#: build/http_pages/PassphrasePage.cpp:370 msgid "" "Weil du kein Javascript verwendest geht es direkt weiter. Hast du dir deine " "Passphrase gemerkt oder aufgeschrieben?" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:242 +#: build/http_pages/PassphrasePage.cpp:429 msgid "Deine E-Mail Adresse wurde erfolgreich bestätigt." msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:246 +#: build/http_pages/PassphrasePage.cpp:437 msgid "Neue Gradido Adresse anlegen / wiederherstellen" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:247 +#: build/http_pages/PassphrasePage.cpp:440 msgid "" "Möchtest du ein neues Gradido-Konto anlegen oder ein bestehendes " "wiederherstellen?" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:263 +#: build/http_pages/PassphrasePage.cpp:460 msgid "Bestehendes Konto wiederherstellen" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:270 +#: build/http_pages/PassphrasePage.cpp:469 msgid "" "Falls du ein bestehendes Konto wiederherstellen willst, gib hier deine " "Passphrase ein:" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:288 +#: build/http_pages/PassphrasePage.cpp:497 msgid "Konto wiederherstellen / Neues Passwort anlegen" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:289 +#: build/http_pages/PassphrasePage.cpp:501 msgid "" -"Um dein Konto wiederherzustellen, dir ein Neues Passwort auswählen zu " +"Um dein Konto wiederherzustellen und dir ein Neues Passwort auswählen zu " "können, tippe hier bitte die Wörter deiner Passphrase in der richtigen " "Reihenfolge ein, welche du dir aufgeschrieben hast." msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:303 +#: build/http_pages/PassphrasePage.cpp:524 msgid "Fehler" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:304 +#: build/http_pages/PassphrasePage.cpp:527 msgid "" "Ungültige Seite, wenn du das siehst stimmt hier etwas nicht. Bitte wende " "dich an den Server-Admin." msgstr "" -#: model/Session.cpp:149 model/Session.cpp:180 model/Session.cpp:700 -#: model/Session.cpp:706 model/Session.cpp:1005 +#: src/cpp/model/Session.cpp:147 src/cpp/model/Session.cpp:177 +#: src/cpp/model/Session.cpp:645 src/cpp/model/Session.cpp:651 +#: src/cpp/model/Session.cpp:937 src/cpp/model/Session.cpp:953 msgid "Benutzer" msgstr "" -#: model/Session.cpp:149 +#: src/cpp/model/Session.cpp:147 msgid "Eingeloggter Benutzer ist kein Admin" msgstr "" -#: model/Session.cpp:155 model/Session.cpp:201 +#: src/cpp/model/Session.cpp:153 src/cpp/model/Session.cpp:212 msgid "Vorname" msgstr "" -#: model/Session.cpp:155 model/Session.cpp:159 model/Session.cpp:201 -#: model/Session.cpp:205 +#: src/cpp/model/Session.cpp:153 src/cpp/model/Session.cpp:157 +#: src/cpp/model/Session.cpp:212 src/cpp/model/Session.cpp:216 msgid "" "Bitte gebe einen Namen an. Mindestens 3 Zeichen, keines folgender Zeichen " "<>&;" msgstr "" -#: model/Session.cpp:159 model/Session.cpp:205 +#: src/cpp/model/Session.cpp:157 src/cpp/model/Session.cpp:216 msgid "Nachname" msgstr "" -#: model/Session.cpp:163 model/Session.cpp:209 +#: src/cpp/model/Session.cpp:161 src/cpp/model/Session.cpp:220 msgid "Bitte gebe eine gültige E-Mail Adresse an." msgstr "" -#: model/Session.cpp:170 model/Session.cpp:234 +#: src/cpp/model/Session.cpp:168 msgid "Für diese E-Mail Adresse gibt es bereits einen Account" msgstr "" -#: model/Session.cpp:180 model/Session.cpp:186 +#: src/cpp/model/Session.cpp:177 src/cpp/model/Session.cpp:184 msgid "Fehler beim speichern!" msgstr "" -#: model/Session.cpp:379 model/Session.cpp:438 model/Session.cpp:881 -#: model/Session.cpp:889 +#: src/cpp/model/Session.cpp:231 +msgid "Für diese E-Mail Adresse gibt es bereits ein Konto" +msgstr "" + +#: src/cpp/model/Session.cpp:255 +msgid "Server" +msgstr "" + +#: src/cpp/model/Session.cpp:255 +msgid "Fehler beim speichen des Kontos bitte versuche es später noch einmal" +msgstr "" + +#: src/cpp/model/Session.cpp:350 src/cpp/model/Session.cpp:390 +#: src/cpp/model/Session.cpp:832 src/cpp/model/Session.cpp:841 msgid "E-Mail Verification" msgstr "E-Mail Überprüfung" -#: model/Session.cpp:379 +#: src/cpp/model/Session.cpp:350 msgid "Du hast dein Konto bereits aktiviert!" msgstr "" -#: model/Session.cpp:438 +#: src/cpp/model/Session.cpp:390 msgid "Falscher Code für aktiven Login" msgstr "" -#: model/Session.cpp:495 +#: src/cpp/model/Session.cpp:465 msgid "Deine Passphrase ist ungütig" msgstr "" -#: model/Session.cpp:507 +#: src/cpp/model/Session.cpp:477 msgid "Ein Fehler trat auf, bitte versuche es erneut" msgstr "" -#: model/Session.cpp:515 +#: src/cpp/model/Session.cpp:491 msgid "Das ist nicht die richtige Passphrase." msgstr "" -#: model/Session.cpp:700 +#: src/cpp/model/Session.cpp:645 msgid "Konnte Community Server nicht erreichen. E-Mail an den Admin ist raus." msgstr "" -#: model/Session.cpp:706 +#: src/cpp/model/Session.cpp:651 msgid "" "Fehler beim Löschen des Accounts. Bitte logge dich erneut ein und " "versuche es nochmal." msgstr "" -#: model/Session.cpp:881 +#: src/cpp/model/Session.cpp:832 msgid "Konnte kein passendes Konto finden." msgstr "" -#: model/Session.cpp:889 +#: src/cpp/model/Session.cpp:841 msgid "Fehler beim laden des Benutzers." msgstr "" -#: model/Session.cpp:1005 +#: src/cpp/model/Session.cpp:937 msgid "Kein gültiger Benutzer, bitte logge dich erneut ein." msgstr "" -#~ msgid "Gradido: E-Mail Verification" -#~ msgstr "Gradido: E-Mail Überprüfung" +#: src/cpp/model/Session.cpp:953 +msgid "Fehler beim generieren der Passphrase, der Admin bekommt eine E-Mail. " +msgstr "" + +#: src/cpp/model/email/Email.cpp:174 +msgid "Default Email Subject" +msgstr "" + +#: src/cpp/model/email/Email.cpp:180 +msgid "Error from Gradido Login Server" +msgstr "Fehler auf dem Gradido Login Server" + +#: src/cpp/model/email/Email.cpp:200 +msgid "Gradido: E-Mail Verification" +msgstr "Gradido: E-Mail Überprüfung" + +#: src/cpp/model/email/Email.cpp:246 +msgid "Gradido: Reset Password" +msgstr "Gradido: Passwort zurücksetzen" + +#: src/cpp/SingletonManager/SessionManager.cpp:604 +msgid "" +"Please enter a valid password with at least 8 characters, upper and lower " +"case letters, at least one number and one special character (@$!%*?&+-_)!" +msgstr "" +"Bitte gebe ein gültiges Password ein mit mindestens 8 Zeichen, Groß- und " +"Kleinbuchstaben, mindestens einer Zahl und einem Sonderzeichen (@$!%*?&+-_) " +"ein!" + +#: src/cpp/SingletonManager/SessionManager.cpp:610 +msgid "Your password is to short!" +msgstr "Dein Passwort ist zu kurz!" + +#: src/cpp/SingletonManager/SessionManager.cpp:615 +msgid "Your password does not contain lowercase letters!" +msgstr "Dein Passwort enthält keine Kleinbuchstaben!" + +#: src/cpp/SingletonManager/SessionManager.cpp:620 +msgid "Your password does not contain any capital letters!" +msgstr " Dein Passwort enthält keine Großbuchstaben!" + +#: src/cpp/SingletonManager/SessionManager.cpp:625 +msgid "Your password does not contain any number!" +msgstr "Dein Passwort enthält keine Zahlen!" + +#: src/cpp/SingletonManager/SessionManager.cpp:630 +msgid "Your password does not contain special characters (@$!%*?&+-)!" +msgstr "Dein Passwort enthält keine Sonderzeichen (@$!%*?&+-)!" + +#~ msgid "Account" +#~ msgstr "Konto" + +#~ msgid "E-Mail Address not checked, do you already get one?" +#~ msgstr "" +#~ "E-Mail Adresse wurde noch nicht überprüft. Hast du schon in deine E-Mails " +#~ "geschaut? Bitte schau auch in dein Spam-Verzeichnis nach." + +#~ msgid "" +#~ "Schreibe dir deine Passphrase auf und packe sie gut weg. Du brauchst sie " +#~ "um deine Adresse wiederherzustellen. Wenn du sie verlierst, sind auch " +#~ "deine Gradidos verloren." +#~ msgstr "" +#~ "Schreibe dir deine Passphrase auf oder drucke sie aus und bewahre sie " +#~ "in Papier-Form an einem sicheren Ort auf (speichere sie nicht auf " +#~ "deinem Rechner oder Mobilgerät)! Du brauchst deine Passphrase um dein " +#~ "Konto wiederherzustellen, wenn du mal dein Passort vergessen haben " +#~ "solltest. " + +#~ msgid "" +#~ "Der neue Gradido basiert technisch auf einer Kryptowährung (wie z.B. " +#~ "Bitcoin) um maximale Sicherheit zu erreichen." +#~ msgstr "" +#~ "Der neue Gradido basiert technisch auf einer Kryptowährung (wie z.B. " +#~ "Bitcoin) um für dich die maximale Sicherheit zu gewährleisten." #~ msgid "" #~ "Der Code stimmt nicht, bitte überprüfe ihn nochmal oder " diff --git a/configs/login_server/LOCALE/messages.pot b/configs/login_server/LOCALE/messages.pot index 5198bbcf7..bc884cb9e 100644 --- a/configs/login_server/LOCALE/messages.pot +++ b/configs/login_server/LOCALE/messages.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-02-10 13:01+0100\n" +"POT-Creation-Date: 2021-06-21 13:37+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,415 +17,461 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: F:\\Gradido\\gradido_login_server_production\\src\\cpsp\\login.cpsp:108 -#: F:\\Gradido\\gradido_login_server_production\\src\\cpsp\\login.cpsp:156 +#: build/http_pages/LoginPage.cpp:196 build/http_pages/LoginPage.cpp:275 msgid "Login" msgstr "" -#: F:\\Gradido\\gradido_login_server_production\\src\\cpsp\\login.cpsp:108 +#: build/http_pages/LoginPage.cpp:196 msgid "E-Mail or password isn't right, please try again!" msgstr "" -#: F:\\Gradido\\gradido_login_server_production\\src\\cpsp\\login.cpsp:116 +#: build/http_pages/LoginPage.cpp:205 msgid "Passwort" msgstr "" -#: F:\\Gradido\\gradido_login_server_production\\src\\cpsp\\login.cpsp:116 +#: build/http_pages/LoginPage.cpp:205 msgid "" "Passwort wird noch berechnet, bitte versuche es in etwa 1 Minute erneut." msgstr "" -#: F:\\Gradido\\gradido_login_server_production\\src\\cpsp\\login.cpsp:119 -#: F:\\Gradido\\gradido_login_server_production\\src\\cpsp\\login.cpsp:122 +#: build/http_pages/LoginPage.cpp:208 build/http_pages/LoginPage.cpp:211 msgid "User" msgstr "" -#: F:\\Gradido\\gradido_login_server_production\\src\\cpsp\\login.cpsp:119 +#: build/http_pages/LoginPage.cpp:208 msgid "Error in saved data, the server admin will look at it." msgstr "" -#: F:\\Gradido\\gradido_login_server_production\\src\\cpsp\\login.cpsp:122 +#: build/http_pages/LoginPage.cpp:211 msgid "Benutzer ist deaktiviert, kein Login möglich!" msgstr "" -#: F:\\Gradido\\gradido_login_server_production\\src\\cpsp\\login.cpsp:156 +#: build/http_pages/LoginPage.cpp:275 msgid "Username and password are needed!" msgstr "" -#: F:\\Gradido\\gradido_login_server_production\\src\\cpsp\\login.cpsp:178 -#: model/Session.cpp:210 model/Session.cpp:217 model/Session.cpp:259 -#: model/Session.cpp:284 model/Session.cpp:383 model/Session.cpp:393 +#: build/http_pages/LoginPage.cpp:376 src/cpp/model/Session.cpp:161 +#: src/cpp/model/Session.cpp:168 src/cpp/model/Session.cpp:220 +#: src/cpp/model/Session.cpp:231 msgid "E-Mail" msgstr "" -#: F:\\Gradido\\gradido_login_server_production\\src\\cpsp\\login.cpsp:179 +#: build/http_pages/LoginPage.cpp:381 +#: src/cpp/SingletonManager/SessionManager.cpp:603 +#: src/cpp/SingletonManager/SessionManager.cpp:609 +#: src/cpp/SingletonManager/SessionManager.cpp:614 +#: src/cpp/SingletonManager/SessionManager.cpp:619 +#: src/cpp/SingletonManager/SessionManager.cpp:624 +#: src/cpp/SingletonManager/SessionManager.cpp:629 msgid "Password" msgstr "" -#: F:\\Gradido\\gradido_login_server_production\\src\\cpsp\\login.cpsp:180 +#: build/http_pages/LoginPage.cpp:384 msgid " Login " msgstr "" -#: F:\\Gradido\\gradido_login_server_production\\src\\cpsp\\login.cpsp:185 +#: build/http_pages/LoginPage.cpp:391 msgid "You haven't any account yet? Please follow the link to create one." msgstr "" -#: F:\\Gradido\\gradido_login_server_production\\src\\cpsp\\login.cpsp:187 +#: build/http_pages/LoginPage.cpp:395 msgid "Create New Account" msgstr "" -#: F:\\Gradido\\gradido_login_server_production\\src\\cpsp\\login.cpsp:191 +#: build/http_pages/LoginPage.cpp:403 msgid "Passwort vergessen" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp:72 +#: build/http_pages/CheckEmailPage.cpp:155 msgid "E-Mail verifizieren" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp:77 +#: build/http_pages/CheckEmailPage.cpp:165 msgid "" "Deine E-Mail wurde erfolgreich bestätigt. Du kannst nun Gradidos versenden." msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp:78 +#: build/http_pages/CheckEmailPage.cpp:170 msgid "Zur Startseite" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp:80 +#: build/http_pages/CheckEmailPage.cpp:175 msgid "Bitte gib deinen E-Mail Verification Code ein:" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp:81 -#: model/Session.cpp:233 +#: build/http_pages/CheckEmailPage.cpp:178 src/cpp/model/Session.cpp:184 msgid "Email Verification Code" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp:82 +#: build/http_pages/CheckEmailPage.cpp:185 msgid "Überprüfe Code" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp:85 +#: build/http_pages/CheckEmailPage.cpp:190 msgid "Du hast bisher keinen Code erhalten?" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp:86 +#: build/http_pages/CheckEmailPage.cpp:193 msgid "E-Mail erneut zuschicken (in Arbeit)" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp:89 +#: build/http_pages/CheckEmailPage.cpp:198 msgid "Funktioniert dein E-Mail Verification Code nicht?" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp:90 +#: build/http_pages/CheckEmailPage.cpp:201 msgid "Schicke uns eine E-Mail und wir kümmern uns darum: " msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp:91 -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp:151 +#: build/http_pages/CheckEmailPage.cpp:208 +#: build/http_pages/ResetPasswordPage.cpp:273 msgid "E-Mail an Support schicken" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp:113 -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp:124 +#: build/http_pages/ResetPasswordPage.cpp:174 +#: build/http_pages/ResetPasswordPage.cpp:217 msgid "Gib bitte hier deine E-Mail Adresse an:" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp:116 +#: build/http_pages/ResetPasswordPage.cpp:183 msgid "Bestätigen" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp:126 +#: build/http_pages/ResetPasswordPage.cpp:225 msgid "Hast du dir deine Passphrase notiert oder gemerkt?" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp:131 -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:203 +#: build/http_pages/ResetPasswordPage.cpp:234 +#: build/http_pages/PassphrasePage.cpp:373 msgid "Ja" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp:136 +#: build/http_pages/ResetPasswordPage.cpp:241 msgid "Nein" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp:140 +#: build/http_pages/ResetPasswordPage.cpp:247 msgid "Absenden" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp:145 +#: build/http_pages/ResetPasswordPage.cpp:255 msgid "Dir wird eine E-Mail zugeschickt um dein Passwort zurückzusetzen." msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp:147 +#: build/http_pages/ResetPasswordPage.cpp:260 msgid "Der Admin hat eine E-Mail bekommen und wird sich bei dir melden." msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp:149 +#: build/http_pages/ResetPasswordPage.cpp:265 msgid "" "Du hast bereits eine E-Mail bekommen. Bitte schau auch in dein Spam-" "Verzeichnis nach. " msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp:150 +#: build/http_pages/ResetPasswordPage.cpp:268 msgid "" "Du hast wirklich keine E-Mail erhalten und auch schon ein paar Minuten " "gewartet?" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:26 -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:94 -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:114 -#: model/Session.cpp:638 model/Session.cpp:650 model/Session.cpp:658 +#: build/http_pages/PassphrasePage.cpp:41 +#: build/http_pages/PassphrasePage.cpp:111 +#: build/http_pages/PassphrasePage.cpp:132 src/cpp/model/Session.cpp:465 +#: src/cpp/model/Session.cpp:477 src/cpp/model/Session.cpp:491 msgid "Passphrase" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:27 -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:263 +#: build/http_pages/PassphrasePage.cpp:42 +#: build/http_pages/PassphrasePage.cpp:451 msgid "Neues Konto anlegen" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:28 +#: build/http_pages/PassphrasePage.cpp:43 msgid "2/3" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:94 +#: build/http_pages/PassphrasePage.cpp:111 msgid "" "Diese Passphrase ist ungültig, bitte überprüfen oder neu " "generieren (lassen)." msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:114 +#: build/http_pages/PassphrasePage.cpp:132 msgid "intern error please try again later" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:129 +#: build/http_pages/PassphrasePage.cpp:147 msgid "3/3" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:132 -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:135 +#: build/http_pages/PassphrasePage.cpp:150 +#: build/http_pages/PassphrasePage.cpp:153 msgid "1/3" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:134 +#: build/http_pages/PassphrasePage.cpp:152 msgid "Neues Passwort anlegen" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:145 +#: build/http_pages/PassphrasePage.cpp:270 msgid "Passphrase abschreiben" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:156 +#: build/http_pages/PassphrasePage.cpp:287 msgid "Was ist eine Passphrase?" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:157 +#: build/http_pages/PassphrasePage.cpp:290 msgid "Deine Passphrase besteht aus den im grünen Feld angezeigten Wörtern." msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:158 +#: build/http_pages/PassphrasePage.cpp:293 msgid "Sie dient deiner Sicherheit." msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:159 +#: build/http_pages/PassphrasePage.cpp:296 msgid "" "Du brauchst deine Passphrase um dein Konto wiederherzustellen, wenn du mal " "dein Passwort vergessen haben solltest." msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:161 +#: build/http_pages/PassphrasePage.cpp:300 msgid "Deine Passphrase (Groß/Kleinschreibung beachten)" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:166 -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:194 +#: build/http_pages/PassphrasePage.cpp:309 +#: build/http_pages/PassphrasePage.cpp:352 msgid "Was zu tun ist:" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:167 +#: build/http_pages/PassphrasePage.cpp:312 msgid "" "Schreibe dir die obenstehende Passphrase von Hand auf ein Blatt " "Papier!" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:168 +#: build/http_pages/PassphrasePage.cpp:315 msgid "Speichere sie auf keinen Fall auf deinem Rechner oder Mobilgerät!!" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:169 +#: build/http_pages/PassphrasePage.cpp:318 msgid "Bewahre sie an einem sicheren Ort auf!" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:171 -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:282 -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:287 -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:300 +#: build/http_pages/PassphrasePage.cpp:322 +#: build/http_pages/PassphrasePage.cpp:478 +#: build/http_pages/PassphrasePage.cpp:487 +#: build/http_pages/PassphrasePage.cpp:511 msgid "Weiter" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:195 +#: build/http_pages/PassphrasePage.cpp:355 msgid "Hast du dir deine Passphrase gemerkt?" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:196 +#: build/http_pages/PassphrasePage.cpp:358 msgid "" "Dann zeig es mir. Zur Unterstützung gebe ich dir deine Wörter aber in " "anderer Reihenfolge." msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:197 +#: build/http_pages/PassphrasePage.cpp:361 msgid "Klicke sie an um sie einzusetzen." msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:198 +#: build/http_pages/PassphrasePage.cpp:364 msgid "Überprüfe dabei, ob du alle Wörter richtig geschrieben hast!" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:202 +#: build/http_pages/PassphrasePage.cpp:370 msgid "" "Weil du kein Javascript verwendest geht es direkt weiter. Hast du dir deine " "Passphrase gemerkt oder aufgeschrieben?" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:249 +#: build/http_pages/PassphrasePage.cpp:429 msgid "Deine E-Mail Adresse wurde erfolgreich bestätigt." msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:253 +#: build/http_pages/PassphrasePage.cpp:437 msgid "Neue Gradido Adresse anlegen / wiederherstellen" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:254 +#: build/http_pages/PassphrasePage.cpp:440 msgid "" "Möchtest du ein neues Gradido-Konto anlegen oder ein bestehendes " "wiederherstellen?" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:270 +#: build/http_pages/PassphrasePage.cpp:460 msgid "Bestehendes Konto wiederherstellen" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:277 +#: build/http_pages/PassphrasePage.cpp:469 msgid "" "Falls du ein bestehendes Konto wiederherstellen willst, gib hier deine " "Passphrase ein:" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:294 +#: build/http_pages/PassphrasePage.cpp:497 msgid "Konto wiederherstellen / Neues Passwort anlegen" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:296 +#: build/http_pages/PassphrasePage.cpp:501 msgid "" "Um dein Konto wiederherzustellen und dir ein Neues Passwort auswählen zu " "können, tippe hier bitte die Wörter deiner Passphrase in der richtigen " "Reihenfolge ein, welche du dir aufgeschrieben hast." msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:310 +#: build/http_pages/PassphrasePage.cpp:524 msgid "Fehler" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:311 +#: build/http_pages/PassphrasePage.cpp:527 msgid "" "Ungültige Seite, wenn du das siehst stimmt hier etwas nicht. Bitte wende " "dich an den Server-Admin." msgstr "" -#: model/Session.cpp:196 model/Session.cpp:227 model/Session.cpp:935 -#: model/Session.cpp:941 model/Session.cpp:1226 model/Session.cpp:1242 +#: src/cpp/model/Session.cpp:147 src/cpp/model/Session.cpp:177 +#: src/cpp/model/Session.cpp:645 src/cpp/model/Session.cpp:651 +#: src/cpp/model/Session.cpp:937 src/cpp/model/Session.cpp:953 msgid "Benutzer" msgstr "" -#: model/Session.cpp:196 +#: src/cpp/model/Session.cpp:147 msgid "Eingeloggter Benutzer ist kein Admin" msgstr "" -#: model/Session.cpp:202 model/Session.cpp:251 model/Session.cpp:375 +#: src/cpp/model/Session.cpp:153 src/cpp/model/Session.cpp:212 msgid "Vorname" msgstr "" -#: model/Session.cpp:202 model/Session.cpp:206 model/Session.cpp:251 -#: model/Session.cpp:255 model/Session.cpp:375 model/Session.cpp:379 +#: src/cpp/model/Session.cpp:153 src/cpp/model/Session.cpp:157 +#: src/cpp/model/Session.cpp:212 src/cpp/model/Session.cpp:216 msgid "" "Bitte gebe einen Namen an. Mindestens 3 Zeichen, keines folgender Zeichen " "<>&;" msgstr "" -#: model/Session.cpp:206 model/Session.cpp:255 model/Session.cpp:379 +#: src/cpp/model/Session.cpp:157 src/cpp/model/Session.cpp:216 msgid "Nachname" msgstr "" -#: model/Session.cpp:210 model/Session.cpp:259 model/Session.cpp:383 +#: src/cpp/model/Session.cpp:161 src/cpp/model/Session.cpp:220 msgid "Bitte gebe eine gültige E-Mail Adresse an." msgstr "" -#: model/Session.cpp:217 model/Session.cpp:284 +#: src/cpp/model/Session.cpp:168 msgid "Für diese E-Mail Adresse gibt es bereits einen Account" msgstr "" -#: model/Session.cpp:227 model/Session.cpp:233 +#: src/cpp/model/Session.cpp:177 src/cpp/model/Session.cpp:184 msgid "Fehler beim speichern!" msgstr "" -#: model/Session.cpp:393 +#: src/cpp/model/Session.cpp:231 msgid "Für diese E-Mail Adresse gibt es bereits ein Konto" msgstr "" -#: model/Session.cpp:411 +#: src/cpp/model/Session.cpp:255 msgid "Server" msgstr "" -#: model/Session.cpp:411 +#: src/cpp/model/Session.cpp:255 msgid "Fehler beim speichen des Kontos bitte versuche es später noch einmal" msgstr "" -#: model/Session.cpp:505 model/Session.cpp:567 model/Session.cpp:1116 -#: model/Session.cpp:1125 +#: src/cpp/model/Session.cpp:350 src/cpp/model/Session.cpp:390 +#: src/cpp/model/Session.cpp:832 src/cpp/model/Session.cpp:841 msgid "E-Mail Verification" msgstr "" -#: model/Session.cpp:505 +#: src/cpp/model/Session.cpp:350 msgid "Du hast dein Konto bereits aktiviert!" msgstr "" -#: model/Session.cpp:567 +#: src/cpp/model/Session.cpp:390 msgid "Falscher Code für aktiven Login" msgstr "" -#: model/Session.cpp:638 +#: src/cpp/model/Session.cpp:465 msgid "Deine Passphrase ist ungütig" msgstr "" -#: model/Session.cpp:650 +#: src/cpp/model/Session.cpp:477 msgid "Ein Fehler trat auf, bitte versuche es erneut" msgstr "" -#: model/Session.cpp:658 +#: src/cpp/model/Session.cpp:491 msgid "Das ist nicht die richtige Passphrase." msgstr "" -#: model/Session.cpp:935 +#: src/cpp/model/Session.cpp:645 msgid "Konnte Community Server nicht erreichen. E-Mail an den Admin ist raus." msgstr "" -#: model/Session.cpp:941 +#: src/cpp/model/Session.cpp:651 msgid "" "Fehler beim Löschen des Accounts. Bitte logge dich erneut ein und " "versuche es nochmal." msgstr "" -#: model/Session.cpp:1116 +#: src/cpp/model/Session.cpp:832 msgid "Konnte kein passendes Konto finden." msgstr "" -#: model/Session.cpp:1125 +#: src/cpp/model/Session.cpp:841 msgid "Fehler beim laden des Benutzers." msgstr "" -#: model/Session.cpp:1226 +#: src/cpp/model/Session.cpp:937 msgid "Kein gültiger Benutzer, bitte logge dich erneut ein." msgstr "" -#: model/Session.cpp:1242 +#: src/cpp/model/Session.cpp:953 msgid "Fehler beim generieren der Passphrase, der Admin bekommt eine E-Mail. " msgstr "" + +#: src/cpp/model/email/Email.cpp:174 +msgid "Default Email Subject" +msgstr "" + +#: src/cpp/model/email/Email.cpp:180 +msgid "Error from Gradido Login Server" +msgstr "" + +#: src/cpp/model/email/Email.cpp:200 +msgid "Gradido: E-Mail Verification" +msgstr "" + +#: src/cpp/model/email/Email.cpp:246 +msgid "Gradido: Reset Password" +msgstr "" + +#: src/cpp/SingletonManager/SessionManager.cpp:604 +msgid "" +"Please enter a valid password with at least 8 characters, upper and lower " +"case letters, at least one number and one special character (@$!%*?&+-_)!" +msgstr "" + +#: src/cpp/SingletonManager/SessionManager.cpp:610 +msgid "Your password is to short!" +msgstr "" + +#: src/cpp/SingletonManager/SessionManager.cpp:615 +msgid "Your password does not contain lowercase letters!" +msgstr "" + +#: src/cpp/SingletonManager/SessionManager.cpp:620 +msgid "Your password does not contain any capital letters!" +msgstr "" + +#: src/cpp/SingletonManager/SessionManager.cpp:625 +msgid "Your password does not contain any number!" +msgstr "" + +#: src/cpp/SingletonManager/SessionManager.cpp:630 +msgid "Your password does not contain special characters (@$!%*?&+-)!" +msgstr "" diff --git a/docker-compose.override.yml b/docker-compose.override.yml index dfc980a86..cbb041457 100644 --- a/docker-compose.override.yml +++ b/docker-compose.override.yml @@ -26,7 +26,7 @@ services: ######################################################### login-server: build: - dockerfile: Dockerfiles/alpine/Dockerfile.debug + dockerfile: Dockerfiles/ubuntu/Dockerfile.debug security_opt: - seccomp:unconfined cap_add: @@ -37,7 +37,7 @@ services: - ./login_server/dependencies:/code/dependencies - ./login_server/scripts:/code/scripts - ./configs/login_server:/etc/grd_login - - login_build_3.1:/code/build + - login_build_ubuntu_3.1:/code/build ######################################################### @@ -99,4 +99,4 @@ services: volumes: frontend_node_modules: - login_build_3.1: + login_build_ubuntu_3.1: diff --git a/frontend/src/apis/loginAPI.js b/frontend/src/apis/loginAPI.js index f71e7634f..9dd8ce98d 100644 --- a/frontend/src/apis/loginAPI.js +++ b/frontend/src/apis/loginAPI.js @@ -93,7 +93,7 @@ const loginAPI = { update: { 'User.first_name': data.firstName, 'User.last_name': data.lastName, - 'User.description': data.description, + // 'User.description': data.description, }, } return apiPost(CONFIG.LOGIN_API_URL + 'updateUserInfos', payload) diff --git a/frontend/src/components/Inputs/InputEmail.spec.js b/frontend/src/components/Inputs/InputEmail.spec.js new file mode 100644 index 000000000..f8e374654 --- /dev/null +++ b/frontend/src/components/Inputs/InputEmail.spec.js @@ -0,0 +1,71 @@ +import { mount } from '@vue/test-utils' + +import InputEmail from './InputEmail' + +const localVue = global.localVue + +describe('InputEmail', () => { + let wrapper + + const propsData = { + name: 'input-field-name', + label: 'input-field-label', + placeholder: 'input-field-placeholder', + value: '', + } + + const Wrapper = () => { + return mount(InputEmail, { localVue, propsData }) + } + + describe('mount', () => { + beforeEach(() => { + wrapper = Wrapper() + }) + + it('has an input field', () => { + expect(wrapper.find('input').exists()).toBeTruthy() + }) + + describe('properties', () => { + it('has the name "input-field-name"', () => { + expect(wrapper.find('input').attributes('name')).toEqual('input-field-name') + }) + + it('has the id "input-field-name-input-field"', () => { + expect(wrapper.find('input').attributes('id')).toEqual('input-field-name-input-field') + }) + + it('has the placeholder "input-field-placeholder"', () => { + expect(wrapper.find('input').attributes('placeholder')).toEqual('input-field-placeholder') + }) + + it('has the value ""', () => { + expect(wrapper.vm.currentValue).toEqual('') + }) + + it('has the label "input-field-label"', () => { + expect(wrapper.find('label').text()).toEqual('input-field-label') + }) + + it('has the label for "input-field-name-input-field"', () => { + expect(wrapper.find('label').attributes('for')).toEqual('input-field-name-input-field') + }) + }) + + describe('input value changes', () => { + it('emits input with new value', async () => { + await wrapper.find('input').setValue('12') + expect(wrapper.emitted('input')).toBeTruthy() + expect(wrapper.emitted('input')).toEqual([['12']]) + }) + }) + + describe('value property changes', () => { + it('updates data model', async () => { + await wrapper.setProps({ value: 'user@example.org' }) + expect(wrapper.vm.currentValue).toEqual('user@example.org') + }) + }) + }) +}) diff --git a/frontend/src/components/Inputs/InputEmail.vue b/frontend/src/components/Inputs/InputEmail.vue new file mode 100644 index 000000000..41338fd8c --- /dev/null +++ b/frontend/src/components/Inputs/InputEmail.vue @@ -0,0 +1,73 @@ + + + diff --git a/frontend/src/components/Inputs/InputPassword.spec.js b/frontend/src/components/Inputs/InputPassword.spec.js new file mode 100644 index 000000000..ec446536d --- /dev/null +++ b/frontend/src/components/Inputs/InputPassword.spec.js @@ -0,0 +1,98 @@ +import { mount } from '@vue/test-utils' + +import InputPassword from './InputPassword' + +const localVue = global.localVue + +describe('InputPassword', () => { + let wrapper + + const propsData = { + name: 'input-field-name', + label: 'input-field-label', + placeholder: 'input-field-placeholder', + value: '', + } + + const Wrapper = () => { + return mount(InputPassword, { localVue, propsData }) + } + + describe('mount', () => { + beforeEach(() => { + wrapper = Wrapper() + }) + + it('has an input field', () => { + expect(wrapper.find('input').exists()).toBeTruthy() + }) + + describe('properties', () => { + it('has the name "input-field-name"', () => { + expect(wrapper.find('input').attributes('name')).toEqual('input-field-name') + }) + + it('has the id "input-field-name-input-field"', () => { + expect(wrapper.find('input').attributes('id')).toEqual('input-field-name-input-field') + }) + + it('has the placeholder "input-field-placeholder"', () => { + expect(wrapper.find('input').attributes('placeholder')).toEqual('input-field-placeholder') + }) + + it('has the value ""', () => { + expect(wrapper.vm.currentValue).toEqual('') + }) + + it('has the label "input-field-label"', () => { + expect(wrapper.find('label').text()).toEqual('input-field-label') + }) + + it('has the label for "input-field-name-input-field"', () => { + expect(wrapper.find('label').attributes('for')).toEqual('input-field-name-input-field') + }) + }) + + describe('input value changes', () => { + it('emits input with new value', async () => { + await wrapper.find('input').setValue('12') + expect(wrapper.emitted('input')).toBeTruthy() + expect(wrapper.emitted('input')).toEqual([['12']]) + }) + }) + + describe('password visibilty', () => { + it('has type password by default', () => { + expect(wrapper.find('input').attributes('type')).toEqual('password') + }) + + it('changes to type text when icon is clicked', async () => { + await wrapper.find('button').trigger('click') + expect(wrapper.find('input').attributes('type')).toEqual('text') + }) + + it('changes back to type password when icon is clicked twice', async () => { + await wrapper.find('button').trigger('click') + await wrapper.find('button').trigger('click') + expect(wrapper.find('input').attributes('type')).toEqual('password') + }) + }) + + describe('password visibilty icon', () => { + it('is by default bi-eye-slash', () => { + expect(wrapper.find('svg').classes('bi-eye-slash')).toBe(true) + }) + + it('changes to bi-eye when clicked', async () => { + await wrapper.find('button').trigger('click') + expect(wrapper.find('svg').classes('bi-eye')).toBe(true) + }) + + it('changes back to bi-eye-slash when clicked twice', async () => { + await wrapper.find('button').trigger('click') + await wrapper.find('button').trigger('click') + expect(wrapper.find('svg').classes('bi-eye-slash')).toBe(true) + }) + }) + }) +}) diff --git a/frontend/src/components/Inputs/InputPassword.vue b/frontend/src/components/Inputs/InputPassword.vue new file mode 100644 index 000000000..6b72f0b01 --- /dev/null +++ b/frontend/src/components/Inputs/InputPassword.vue @@ -0,0 +1,81 @@ + + diff --git a/frontend/src/components/Inputs/InputPasswordConfirmation.spec.js b/frontend/src/components/Inputs/InputPasswordConfirmation.spec.js new file mode 100644 index 000000000..953d0b960 --- /dev/null +++ b/frontend/src/components/Inputs/InputPasswordConfirmation.spec.js @@ -0,0 +1,64 @@ +import { mount } from '@vue/test-utils' + +import InputPasswordConfirmation from './InputPasswordConfirmation' + +const localVue = global.localVue + +// validation is tested in src/views/Pages/UserProfile/UserCard_FormUserPasswort.spec.js + +describe('InputPasswordConfirmation', () => { + let wrapper + + const propsData = { + value: { + password: '', + passwordRepeat: '', + }, + } + + const mocks = { + $t: jest.fn((t) => t), + } + + const Wrapper = () => { + return mount(InputPasswordConfirmation, { localVue, propsData, mocks }) + } + + describe('mount', () => { + beforeEach(() => { + wrapper = Wrapper() + }) + + it('has two input fields', () => { + expect(wrapper.findAll('input')).toHaveLength(2) + }) + + describe('input values ', () => { + it('emits input with new value for first input field', async () => { + await wrapper.findAll('input').at(0).setValue('1234') + expect(wrapper.emitted('input')).toBeTruthy() + expect(wrapper.emitted('input')).toEqual([ + [ + { + password: '1234', + passwordRepeat: '', + }, + ], + ]) + }) + + it('emits input with new value for second input field', async () => { + await wrapper.findAll('input').at(1).setValue('1234') + expect(wrapper.emitted('input')).toBeTruthy() + expect(wrapper.emitted('input')).toEqual([ + [ + { + password: '', + passwordRepeat: '1234', + }, + ], + ]) + }) + }) + }) +}) diff --git a/frontend/src/components/Inputs/InputPasswordConfirmation.vue b/frontend/src/components/Inputs/InputPasswordConfirmation.vue new file mode 100644 index 000000000..08efaccfd --- /dev/null +++ b/frontend/src/components/Inputs/InputPasswordConfirmation.vue @@ -0,0 +1,68 @@ + + diff --git a/frontend/src/components/PaginationButtons.vue b/frontend/src/components/PaginationButtons.vue index ac7ff73c6..252301388 100644 --- a/frontend/src/components/PaginationButtons.vue +++ b/frontend/src/components/PaginationButtons.vue @@ -6,7 +6,7 @@ - +

{{ currentPage }} / {{ totalPages }}

diff --git a/frontend/src/locales/de.json b/frontend/src/locales/de.json index 1781ea1cd..7de64ff6a 100644 --- a/frontend/src/locales/de.json +++ b/frontend/src/locales/de.json @@ -84,6 +84,7 @@ }, "error": { "error":"Fehler", + "no-account": "Leider konnten wir keinen Account finden mit diesen Daten!", "change-password": "Fehler beim Ändern des Passworts" }, "transaction":{ @@ -158,6 +159,7 @@ }, "reset-password": { "title": "Passwort zurücksetzen", - "text": "Jetzt kannst du ein neues Passwort speichern, mit dem du dich zukünftig in der Gradido-App anmelden kannst." + "text": "Jetzt kannst du ein neues Passwort speichern, mit dem du dich zukünftig in der Gradido-App anmelden kannst.", + "not-authenticated": "Leider konnten wir dich nicht authentifizieren. Bitte wende dich an den Support." } } diff --git a/frontend/src/locales/en.json b/frontend/src/locales/en.json index 29a9b49c1..ac75c90f0 100644 --- a/frontend/src/locales/en.json +++ b/frontend/src/locales/en.json @@ -84,6 +84,7 @@ }, "error": { "error":"Error", + "no-account": "Unfortunately we could not find an account to the given data!", "change-password": "Error while changing password" }, "transaction":{ @@ -159,6 +160,7 @@ }, "reset-password": { "title": "Reset Password", - "text": "Now you can save a new password to login to the Gradido-App in the future." + "text": "Now you can save a new password to login to the Gradido-App in the future.", + "not-authenticated": "Unfortunately we could not authenticate you. Please contact the support." } } diff --git a/frontend/src/main.js b/frontend/src/main.js index 1eda3eaca..9e1b4c06b 100755 --- a/frontend/src/main.js +++ b/frontend/src/main.js @@ -2,22 +2,18 @@ import Vue from 'vue' import DashboardPlugin from './plugins/dashboard-plugin' import App from './App.vue' import i18n from './i18n.js' -import { configure, extend } from 'vee-validate' -// eslint-disable-next-line camelcase -import { required, email, min, max, is_not } from 'vee-validate/dist/rules' +import { loadAllRules } from './validation-rules' -// store import { store } from './store/store' -import loginAPI from './apis/loginAPI' - -// router setup import router from './routes/router' // plugin setup Vue.use(DashboardPlugin) Vue.config.productionTip = false +loadAllRules(i18n) + router.beforeEach((to, from, next) => { if (to.meta.requiresAuth && !store.state.sessionId) { next({ path: '/login' }) @@ -26,68 +22,6 @@ router.beforeEach((to, from, next) => { } }) -configure({ - defaultMessage: (field, values) => { - values._field_ = i18n.t(`fields.${field}`) - return i18n.t(`validations.messages.${values._rule_}`, values) - }, -}) - -extend('email', { - ...email, - message: (_, values) => i18n.t('validations.messages.email', values), -}) - -extend('required', { - ...required, - message: (_, values) => i18n.t('validations.messages.required', values), -}) - -extend('min', { - ...min, - message: (_, values) => i18n.t('validations.messages.min', values), -}) - -extend('max', { - ...max, - message: (_, values) => i18n.t('validations.messages.max', values), -}) - -extend('gddSendAmount', { - validate(value, { min, max }) { - value = value.replace(',', '.') - return value.match(/^[0-9]+(\.[0-9]{0,2})?$/) && Number(value) >= min && Number(value) <= max - }, - params: ['min', 'max'], - message: (_, values) => { - values.min = i18n.n(values.min, 'ungroupedDecimal') - values.max = i18n.n(values.max, 'ungroupedDecimal') - return i18n.t('form.validation.gddSendAmount', values) - }, -}) - -extend('gddUsernameUnique', { - async validate(value) { - const result = await loginAPI.checkUsername(value) - return result.result.data.state === 'success' - }, - message: (_, values) => i18n.t('form.validation.usernmae-unique', values), -}) - -extend('gddUsernameRgex', { - validate(value) { - return !!value.match(/^[a-zA-Z][-_a-zA-Z0-9]{2,}$/) - }, - message: (_, values) => i18n.t('form.validation.usernmae-regex', values), -}) - -// eslint-disable-next-line camelcase -extend('is_not', { - // eslint-disable-next-line camelcase - ...is_not, - message: (_, values) => i18n.t('form.validation.is-not', values), -}) - /* eslint-disable no-new */ new Vue({ el: '#app', diff --git a/frontend/src/plugins/dashboard-plugin.js b/frontend/src/plugins/dashboard-plugin.js index 2edac0995..8ef34e4ab 100755 --- a/frontend/src/plugins/dashboard-plugin.js +++ b/frontend/src/plugins/dashboard-plugin.js @@ -1,5 +1,4 @@ import '@/polyfills' -import { configure, extend } from 'vee-validate' import GlobalComponents from './globalComponents' import GlobalDirectives from './globalDirectives' import SideBar from '@/components/SidebarPlugin' @@ -14,8 +13,6 @@ import { BootstrapVue, IconsPlugin } from 'bootstrap-vue' // asset imports import '@/assets/scss/argon.scss' import '@/assets/vendor/nucleo/css/nucleo.css' -import * as rules from 'vee-validate/dist/rules' -import { messages } from 'vee-validate/dist/locale/en.json' import VueQrcodeReader from 'vue-qrcode-reader' import VueQrcode from 'vue-qrcode' @@ -28,13 +25,6 @@ import VueMoment from 'vue-moment' import Loading from 'vue-loading-overlay' import 'vue-loading-overlay/dist/vue-loading.css' -Object.keys(rules).forEach((rule) => { - extend(rule, { - ...rules[rule], // copies rule configuration - message: messages[rule], // assign message - }) -}) - export default { install(Vue) { Vue.use(GlobalComponents) @@ -49,12 +39,5 @@ export default { Vue.use(VueQrcode) Vue.use(FlatPickr) Vue.use(Loading) - configure({ - classes: { - valid: 'is-valid', - invalid: 'is-invalid', - dirty: ['is-dirty', 'is-dirty'], // multiple classes per flag! - }, - }) }, } diff --git a/frontend/src/store/store.test.js b/frontend/src/store/store.test.js index 6bc004273..4f276feec 100644 --- a/frontend/src/store/store.test.js +++ b/frontend/src/store/store.test.js @@ -1,6 +1,6 @@ import { mutations, actions } from './store' -const { language, email, sessionId } = mutations +const { language, email, sessionId, username, firstName, lastName, description } = mutations const { login, logout } = actions describe('Vuex store', () => { @@ -28,51 +28,102 @@ describe('Vuex store', () => { expect(state.sessionId).toEqual('1234') }) }) + + describe('username', () => { + it('sets the state of username', () => { + const state = { username: null } + username(state, 'user') + expect(state.username).toEqual('user') + }) + }) + + describe('firstName', () => { + it('sets the state of firstName', () => { + const state = { firstName: null } + firstName(state, 'Peter') + expect(state.firstName).toEqual('Peter') + }) + }) + + describe('lastName', () => { + it('sets the state of lastName', () => { + const state = { lastName: null } + lastName(state, 'Lustig') + expect(state.lastName).toEqual('Lustig') + }) + }) + + describe('description', () => { + it('sets the state of description', () => { + const state = { description: null } + description(state, 'Nickelbrille') + expect(state.description).toEqual('Nickelbrille') + }) + }) }) describe('actions', () => { describe('login', () => { const commit = jest.fn() const state = {} + const commitedData = { + sessionId: 1234, + user: { + email: 'someone@there.is', + language: 'en', + username: 'user', + first_name: 'Peter', + last_name: 'Lustig', + description: 'Nickelbrille', + }, + } - it('calls three commits', () => { - login( - { commit, state }, - { sessionId: 1234, user: { email: 'someone@there.is', language: 'en' } }, - ) + it('calls seven commits', () => { + login({ commit, state }, commitedData) expect(commit).toHaveBeenCalledTimes(7) }) it('commits sessionId', () => { - login( - { commit, state }, - { sessionId: 1234, user: { email: 'someone@there.is', language: 'en' } }, - ) + login({ commit, state }, commitedData) expect(commit).toHaveBeenNthCalledWith(1, 'sessionId', 1234) }) it('commits email', () => { - login( - { commit, state }, - { sessionId: 1234, user: { email: 'someone@there.is', language: 'en' } }, - ) + login({ commit, state }, commitedData) expect(commit).toHaveBeenNthCalledWith(2, 'email', 'someone@there.is') }) it('commits language', () => { - login( - { commit, state }, - { sessionId: 1234, user: { email: 'someone@there.is', language: 'en' } }, - ) + login({ commit, state }, commitedData) expect(commit).toHaveBeenNthCalledWith(3, 'language', 'en') }) + + it('commits username', () => { + login({ commit, state }, commitedData) + expect(commit).toHaveBeenNthCalledWith(4, 'username', 'user') + }) + + it('commits firstName', () => { + login({ commit, state }, commitedData) + expect(commit).toHaveBeenNthCalledWith(5, 'firstName', 'Peter') + }) + + it('commits lastName', () => { + login({ commit, state }, commitedData) + expect(commit).toHaveBeenNthCalledWith(6, 'lastName', 'Lustig') + }) + + it('commits description', () => { + login({ commit, state }, commitedData) + expect(commit).toHaveBeenNthCalledWith(7, 'description', 'Nickelbrille') + }) }) describe('logout', () => { const commit = jest.fn() const state = {} - it('calls two commits', () => { + it('calls six commits', () => { logout({ commit, state }) expect(commit).toHaveBeenCalledTimes(6) }) @@ -87,11 +138,36 @@ describe('Vuex store', () => { expect(commit).toHaveBeenNthCalledWith(2, 'email', null) }) - // how can I get this working? - it.skip('calls sessionStorage.clear()', () => { + it('commits username', () => { logout({ commit, state }) - const spy = jest.spyOn(sessionStorage, 'clear') - expect(spy).toHaveBeenCalledTimes(1) + expect(commit).toHaveBeenNthCalledWith(3, 'username', '') + }) + + it('commits firstName', () => { + logout({ commit, state }) + expect(commit).toHaveBeenNthCalledWith(4, 'firstName', '') + }) + + it('commits lastName', () => { + logout({ commit, state }) + expect(commit).toHaveBeenNthCalledWith(5, 'lastName', '') + }) + + it('commits description', () => { + logout({ commit, state }) + expect(commit).toHaveBeenNthCalledWith(6, 'description', '') + }) + + // how to get this working? + it.skip('calls sessionStorage.clear()', () => { + const clearStorageMock = jest.fn() + global.sessionStorage = jest.fn(() => { + return { + clear: clearStorageMock, + } + }) + logout({ commit, state }) + expect(clearStorageMock).toBeCalled() }) }) }) diff --git a/frontend/src/validation-rules.js b/frontend/src/validation-rules.js new file mode 100644 index 000000000..59900b272 --- /dev/null +++ b/frontend/src/validation-rules.js @@ -0,0 +1,110 @@ +import { configure, extend } from 'vee-validate' +// eslint-disable-next-line camelcase +import { required, email, min, max, is_not } from 'vee-validate/dist/rules' +import loginAPI from './apis/loginAPI' + +export const loadAllRules = (i18nCallback) => { + configure({ + defaultMessage: (field, values) => { + values._field_ = i18nCallback.t(`fields.${field}`) + return i18nCallback.t(`validations.messages.${values._rule_}`, values) + }, + classes: { + valid: 'is-valid', + invalid: 'is-invalid', + dirty: ['is-dirty', 'is-dirty'], // multiple classes per flag! + }, + }) + + extend('email', { + ...email, + message: (_, values) => i18nCallback.t('validations.messages.email', values), + }) + + extend('required', { + ...required, + message: (_, values) => i18nCallback.t('validations.messages.required', values), + }) + + extend('min', { + ...min, + message: (_, values) => i18nCallback.t('validations.messages.min', values), + }) + + extend('max', { + ...max, + message: (_, values) => i18nCallback.t('validations.messages.max', values), + }) + + extend('gddSendAmount', { + validate(value, { min, max }) { + value = value.replace(',', '.') + return value.match(/^[0-9]+(\.[0-9]{0,2})?$/) && Number(value) >= min && Number(value) <= max + }, + params: ['min', 'max'], + message: (_, values) => { + values.min = i18nCallback.n(values.min, 'ungroupedDecimal') + values.max = i18nCallback.n(values.max, 'ungroupedDecimal') + return i18nCallback.t('form.validation.gddSendAmount', values) + }, + }) + + extend('gddUsernameUnique', { + async validate(value) { + const result = await loginAPI.checkUsername(value) + return result.result.data.state === 'success' + }, + message: (_, values) => i18nCallback.t('form.validation.usernmae-unique', values), + }) + + extend('gddUsernameRgex', { + validate(value) { + return !!value.match(/^[a-zA-Z][-_a-zA-Z0-9]{2,}$/) + }, + message: (_, values) => i18nCallback.t('form.validation.usernmae-regex', values), + }) + + // eslint-disable-next-line camelcase + extend('is_not', { + // eslint-disable-next-line camelcase + ...is_not, + message: (_, values) => i18nCallback.t('form.validation.is-not', values), + }) + + // Password validation + + extend('containsLowercaseCharacter', { + validate(value) { + return !!value.match(/[a-z]+/) + }, + message: (_, values) => i18nCallback.t('site.signup.lowercase', values), + }) + + extend('containsUppercaseCharacter', { + validate(value) { + return !!value.match(/[A-Z]+/) + }, + message: (_, values) => i18nCallback.t('site.signup.uppercase', values), + }) + + extend('containsNumericCharacter', { + validate(value) { + return !!value.match(/[0-9]+/) + }, + message: (_, values) => i18nCallback.t('site.signup.one_number', values), + }) + + extend('atLeastEightCharactera', { + validate(value) { + return !!value.match(/.{8,}/) + }, + message: (_, values) => i18nCallback.t('site.signup.minimum', values), + }) + + extend('samePassword', { + validate(value, [pwd]) { + return value === pwd + }, + message: (_, values) => i18nCallback.t('site.signup.dont_match', values), + }) +} diff --git a/frontend/src/views/Pages/AccountOverview.spec.js b/frontend/src/views/Pages/AccountOverview.spec.js index 031828129..18bc7c036 100644 --- a/frontend/src/views/Pages/AccountOverview.spec.js +++ b/frontend/src/views/Pages/AccountOverview.spec.js @@ -1,34 +1,127 @@ -import { shallowMount } from '@vue/test-utils' +import { mount } from '@vue/test-utils' import AccountOverview from './AccountOverview' +import communityAPI from '../../apis/communityAPI.js' + +jest.mock('../../apis/communityAPI.js') + +const sendMock = jest.fn() +sendMock.mockReturnValue({ success: true }) + +communityAPI.send = sendMock const localVue = global.localVue describe('AccountOverview', () => { let wrapper + const propsData = { + balance: 123.45, + transactionCount: 1, + } + const mocks = { $t: jest.fn((t) => t), + $store: { + state: { + sessionId: 1, + }, + }, + $n: jest.fn((n) => String(n)), } const Wrapper = () => { - return shallowMount(AccountOverview, { localVue, mocks }) + return mount(AccountOverview, { localVue, mocks, propsData }) } - describe('shallow Mount', () => { + describe('mount', () => { beforeEach(() => { wrapper = Wrapper() }) it('has a status line', () => { - expect(wrapper.find('gdd-status-stub').exists()).toBeTruthy() + expect(wrapper.find('div.gdd-status').exists()).toBeTruthy() }) it('has a send field', () => { - expect(wrapper.find('gdd-send-stub').exists()).toBeTruthy() + expect(wrapper.find('div.gdd-send').exists()).toBeTruthy() }) it('has a transactions table', () => { - expect(wrapper.find('gdd-transaction-list-stub').exists()).toBeTruthy() + expect(wrapper.find('div.gdd-transaction-list').exists()).toBeTruthy() + }) + + describe('transaction form', () => { + it('steps forward in the dialog', async () => { + await wrapper.findComponent({ name: 'TransactionForm' }).vm.$emit('set-transaction', { + email: 'user@example.org', + amount: 23.45, + memo: 'Make the best of it!', + }) + expect(wrapper.findComponent({ name: 'TransactionConfirmation' }).exists()).toBeTruthy() + }) + }) + + describe('confirm transaction', () => { + beforeEach(() => { + wrapper.setData({ + currentTransactionStep: 1, + transactionData: { + email: 'user@example.org', + amount: 23.45, + memo: 'Make the best of it!', + }, + }) + }) + + it('resets the transaction process when on-reset is emitted', async () => { + await wrapper.findComponent({ name: 'TransactionConfirmation' }).vm.$emit('on-reset') + expect(wrapper.findComponent({ name: 'TransactionForm' }).exists()).toBeTruthy() + expect(wrapper.vm.transactionData).toEqual({ + email: '', + amount: 0, + memo: '', + }) + }) + + describe('transaction is confirmed and server response is success', () => { + beforeEach(async () => { + jest.clearAllMocks() + await wrapper + .findComponent({ name: 'TransactionConfirmation' }) + .vm.$emit('send-transaction') + }) + + it('calls the API when send-transaction is emitted', async () => { + expect(sendMock).toBeCalledWith(1, { + email: 'user@example.org', + amount: 23.45, + memo: 'Make the best of it!', + }) + }) + + it('emits update-balance', () => { + expect(wrapper.emitted('update-balance')).toBeTruthy() + expect(wrapper.emitted('update-balance')).toEqual([[23.45]]) + }) + + it('shows the succes page', () => { + expect(wrapper.find('div.card-body').text()).toContain('form.send_transaction_success') + }) + }) + + describe('transaction is confirmed and server response is error', () => { + beforeEach(async () => { + jest.clearAllMocks() + sendMock.mockReturnValue({ success: false }) + await wrapper + .findComponent({ name: 'TransactionConfirmation' }) + .vm.$emit('send-transaction') + }) + + it('shows the error page', () => { + expect(wrapper.find('div.card-body').text()).toContain('form.send_transaction_error') + }) + }) }) }) }) diff --git a/frontend/src/views/Pages/AccountOverview.vue b/frontend/src/views/Pages/AccountOverview.vue index bbe16b539..08eb503ad 100644 --- a/frontend/src/views/Pages/AccountOverview.vue +++ b/frontend/src/views/Pages/AccountOverview.vue @@ -69,7 +69,7 @@ export default { data() { return { timestamp: Date.now(), - transactionData: EMPTY_TRANSACTION_DATA, + transactionData: { ...EMPTY_TRANSACTION_DATA }, error: false, currentTransactionStep: 0, loading: false, @@ -94,7 +94,7 @@ export default { }, methods: { setTransaction(data) { - this.transactionData = data + this.transactionData = { ...data } this.currentTransactionStep = 1 }, async sendTransaction() { @@ -110,7 +110,7 @@ export default { this.loading = false }, onReset() { - this.transactionData = EMPTY_TRANSACTION_DATA + this.transactionData = { ...EMPTY_TRANSACTION_DATA } this.currentTransactionStep = 0 }, updateTransactions(pagination) { diff --git a/frontend/src/views/Pages/AccountOverview/GddSend/TransactionForm.spec.js b/frontend/src/views/Pages/AccountOverview/GddSend/TransactionForm.spec.js index 199cba4f3..28b769a3c 100644 --- a/frontend/src/views/Pages/AccountOverview/GddSend/TransactionForm.spec.js +++ b/frontend/src/views/Pages/AccountOverview/GddSend/TransactionForm.spec.js @@ -1,5 +1,6 @@ import { mount } from '@vue/test-utils' import TransactionForm from './TransactionForm' +import flushPromises from 'flush-promises' const localVue = global.localVue @@ -19,8 +20,12 @@ describe('GddSend', () => { }, } + const propsData = { + balance: 100.0, + } + const Wrapper = () => { - return mount(TransactionForm, { localVue, mocks }) + return mount(TransactionForm, { localVue, mocks, propsData }) } describe('mount', () => { @@ -53,6 +58,18 @@ describe('GddSend', () => { 'E-Mail', ) }) + + it('flushes an error message when no valid email is given', async () => { + await wrapper.find('#input-group-1').find('input').setValue('a') + await flushPromises() + expect(wrapper.find('span.errors').text()).toBe('validations.messages.email') + }) + + it('trims the email after blur', async () => { + await wrapper.find('#input-group-1').find('input').setValue(' valid@email.com ') + await flushPromises() + expect(wrapper.vm.form.email).toBe('valid@email.com') + }) }) describe('ammount field', () => { @@ -73,6 +90,24 @@ describe('GddSend', () => { '0.01', ) }) + + it('flushes an error message when no valid amount is given', async () => { + await wrapper.find('#input-group-2').find('input').setValue('a') + await flushPromises() + expect(wrapper.find('span.errors').text()).toBe('form.validation.gddSendAmount') + }) + + it('flushes an error message when amount is too high', async () => { + await wrapper.find('#input-group-2').find('input').setValue('123.34') + await flushPromises() + expect(wrapper.find('span.errors').text()).toBe('form.validation.gddSendAmount') + }) + + it('flushes no errors when amount is valid', async () => { + await wrapper.find('#input-group-2').find('input').setValue('87.34') + await flushPromises() + expect(wrapper.find('span.errors').exists()).toBeFalsy() + }) }) describe('message text box', () => { @@ -89,6 +124,18 @@ describe('GddSend', () => { it('has a label form.memo', () => { expect(wrapper.find('label.input-3').text()).toBe('form.memo') }) + + it('flushes an error message when memo is less than 5 characters', async () => { + await wrapper.find('#input-group-3').find('textarea').setValue('a') + await flushPromises() + expect(wrapper.find('span.errors').text()).toBe('validations.messages.min') + }) + + it('flushes no error message when memo is valid', async () => { + await wrapper.find('#input-group-3').find('textarea').setValue('Long enough') + await flushPromises() + expect(wrapper.find('span.errors').exists()).toBeFalsy() + }) }) describe('cancel button', () => { @@ -100,11 +147,42 @@ describe('GddSend', () => { expect(wrapper.find('button[type="reset"]').text()).toBe('form.reset') }) - it.skip('clears the email field on click', async () => { - wrapper.find('#input-group-1').find('input').setValue('someone@watches.tv') - wrapper.find('button[type="reset"]').trigger('click') - await wrapper.vm.$nextTick() - expect(wrapper.vm.form.email).toBeNull() + it('clears all fields on click', async () => { + await wrapper.find('#input-group-1').find('input').setValue('someone@watches.tv') + await wrapper.find('#input-group-2').find('input').setValue('87.23') + await wrapper.find('#input-group-3').find('textarea').setValue('Long enugh') + await flushPromises() + expect(wrapper.vm.form.email).toBe('someone@watches.tv') + expect(wrapper.vm.form.amount).toBe('87.23') + expect(wrapper.vm.form.memo).toBe('Long enugh') + await wrapper.find('button[type="reset"]').trigger('click') + await flushPromises() + expect(wrapper.vm.form.email).toBe('') + expect(wrapper.vm.form.amount).toBe('') + expect(wrapper.vm.form.memo).toBe('') + }) + }) + + describe('submit', () => { + beforeEach(async () => { + await wrapper.find('#input-group-1').find('input').setValue('someone@watches.tv') + await wrapper.find('#input-group-2').find('input').setValue('87.23') + await wrapper.find('#input-group-3').find('textarea').setValue('Long enugh') + await wrapper.find('form').trigger('submit') + await flushPromises() + }) + + it('emits set-transaction', async () => { + expect(wrapper.emitted('set-transaction')).toBeTruthy() + expect(wrapper.emitted('set-transaction')).toEqual([ + [ + { + email: 'someone@watches.tv', + amount: 87.23, + memo: 'Long enugh', + }, + ], + ]) }) }) }) diff --git a/frontend/src/views/Pages/AccountOverview/GddSend/TransactionForm.vue b/frontend/src/views/Pages/AccountOverview/GddSend/TransactionForm.vue index c9c9df7b3..74a4a8de1 100644 --- a/frontend/src/views/Pages/AccountOverview/GddSend/TransactionForm.vue +++ b/frontend/src/views/Pages/AccountOverview/GddSend/TransactionForm.vue @@ -168,7 +168,7 @@ export default { }, methods: { onSubmit() { - this.normalizeAmount() + this.normalizeAmount(true) this.$emit('set-transaction', { email: this.form.email, amount: this.form.amountValue, @@ -181,10 +181,11 @@ export default { this.form.amount = '' this.form.memo = '' }, - setTransaction(data) { - this.form.email = data.email - this.form.amount = data.amount - }, + /* + setTransaction(data) { + this.form.email = data.email + this.form.amount = data.amount + }, */ normalizeAmount(isValid) { this.amountFocused = false if (!isValid) return diff --git a/frontend/src/views/Pages/AccountOverview/GddStatus.vue b/frontend/src/views/Pages/AccountOverview/GddStatus.vue index c0c4869dd..4ab675485 100644 --- a/frontend/src/views/Pages/AccountOverview/GddStatus.vue +++ b/frontend/src/views/Pages/AccountOverview/GddStatus.vue @@ -1,5 +1,5 @@ - diff --git a/frontend/src/views/Pages/UserProfile/UserCard_FormUsername.spec.js b/frontend/src/views/Pages/UserProfile/UserCard_FormUsername.spec.js index b1d705952..8b1c53751 100644 --- a/frontend/src/views/Pages/UserProfile/UserCard_FormUsername.spec.js +++ b/frontend/src/views/Pages/UserProfile/UserCard_FormUsername.spec.js @@ -1,29 +1,28 @@ import { mount } from '@vue/test-utils' -import { extend } from 'vee-validate' import UserCardFormUsername from './UserCard_FormUsername' import loginAPI from '../../../apis/loginAPI' import flushPromises from 'flush-promises' +import { extend } from 'vee-validate' jest.mock('../../../apis/loginAPI') -extend('gddUsernameRgex', { - validate(value) { - return true - }, -}) - -extend('gddUsernameUnique', { - validate(value) { - return true - }, -}) - const localVue = global.localVue const mockAPIcall = jest.fn((args) => { return { success: true } }) +// override this rule to avoid API call +extend('gddUsernameUnique', { + validate(value) { + return true + }, +}) + +const toastErrorMock = jest.fn() +const toastSuccessMock = jest.fn() +const storeCommitMock = jest.fn() + loginAPI.changeUsernameProfile = mockAPIcall describe('UserCard_FormUsername', () => { @@ -37,10 +36,11 @@ describe('UserCard_FormUsername', () => { email: 'user@example.org', username: '', }, - commit: jest.fn(), + commit: storeCommitMock, }, $toast: { - success: jest.fn(), + success: toastSuccessMock, + error: toastErrorMock, }, } @@ -111,10 +111,43 @@ describe('UserCard_FormUsername', () => { expect(wrapper.find('div.display-username').text()).toEqual('@username') }) + it('commits the username to the store', () => { + expect(storeCommitMock).toBeCalledWith('username', 'username') + }) + + it('toasts an success message', () => { + expect(toastSuccessMock).toBeCalledWith('site.profil.user-data.change-success') + }) + it('has no edit button anymore', () => { expect(wrapper.find('svg.bi-pencil').exists()).toBeFalsy() }) }) + + describe('submit retruns error', () => { + beforeEach(async () => { + jest.clearAllMocks() + mockAPIcall.mockReturnValue({ + success: false, + result: { message: 'Error' }, + }) + await wrapper.find('input[placeholder="Username"]').setValue('username') + await wrapper.find('form').trigger('submit') + await flushPromises() + }) + + it('calls the loginAPI', () => { + expect(mockAPIcall).toHaveBeenCalledWith(1, 'user@example.org', 'username') + }) + + it('toasts an error message', () => { + expect(toastErrorMock).toBeCalledWith('Error') + }) + + it('renders an empty username', () => { + expect(wrapper.find('div.display-username').text()).toEqual('@') + }) + }) }) }) }) diff --git a/frontend/test/testSetup.js b/frontend/test/testSetup.js index 26d311941..565ebc33f 100644 --- a/frontend/test/testSetup.js +++ b/frontend/test/testSetup.js @@ -1,10 +1,11 @@ import { createLocalVue } from '@vue/test-utils' import { BootstrapVue, IconsPlugin } from 'bootstrap-vue' import Vuex from 'vuex' + import { ValidationProvider, ValidationObserver, extend } from 'vee-validate' import * as rules from 'vee-validate/dist/rules' - import { messages } from 'vee-validate/dist/locale/en.json' + import RegeneratorRuntime from 'regenerator-runtime' import SideBar from '@/components/SidebarPlugin' import VueQrcode from 'vue-qrcode' @@ -14,7 +15,7 @@ import VueMoment from 'vue-moment' import clickOutside from '@/directives/click-ouside.js' import { focus } from 'vue-focus' -global.localVue = createLocalVue() +import { loadAllRules } from '../src/validation-rules' Object.keys(rules).forEach((rule) => { extend(rule, { @@ -23,6 +24,15 @@ Object.keys(rules).forEach((rule) => { }) }) +const i18nMock = { + t: (identifier, values) => identifier, + n: (value, format) => value, +} + +loadAllRules(i18nMock) + +global.localVue = createLocalVue() + global.localVue.use(BootstrapVue) global.localVue.use(Vuex) global.localVue.use(IconsPlugin) diff --git a/login_server/Dockerfiles/ubuntu/Dockerfile.debug b/login_server/Dockerfiles/ubuntu/Dockerfile.debug index 79ed8d802..31b6f549f 100644 --- a/login_server/Dockerfiles/ubuntu/Dockerfile.debug +++ b/login_server/Dockerfiles/ubuntu/Dockerfile.debug @@ -12,7 +12,6 @@ RUN echo '/usr/local/lib' >> /etc/ld.so.conf && ldconfig COPY ./CMakeLists.txt.lib ./CMakeLists.txt RUN ln -s /usr/local/googletest ./googletest COPY ./src ./src -COPY ./cmake/CodeCoverage.cmake ./cmake/CodeCoverage.cmake COPY ./dependencies/cmake-modules ./dependencies/cmake-modules COPY ./dependencies/spirit-po ./dependencies/spirit-po COPY ./dependencies/tinf ./dependencies/tinf @@ -35,5 +34,5 @@ RUN cd scripts && \ chmod +x compile_pot.sh && \ ./compile_pot.sh -CMD cd build && cmake .. && make -j$(nproc) Gradido_LoginServer && ./bin/Gradido_LoginServer +CMD cd build && cmake .. -DCMAKE_BUILD_TYPE=Debug && make -j$(nproc) Gradido_LoginServer && ./bin/Gradido_LoginServer diff --git a/login_server/src/LOCALE/de_DE.mo b/login_server/src/LOCALE/de_DE.mo index a38486518..bfee8efd3 100644 Binary files a/login_server/src/LOCALE/de_DE.mo and b/login_server/src/LOCALE/de_DE.mo differ diff --git a/login_server/src/LOCALE/de_DE.po b/login_server/src/LOCALE/de_DE.po index 8691eff55..b4bca3098 100644 --- a/login_server/src/LOCALE/de_DE.po +++ b/login_server/src/LOCALE/de_DE.po @@ -7,438 +7,452 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-05-18 12:17+0200\n" -"PO-Revision-Date: 2021-05-18 12:21+0200\n" +"POT-Creation-Date: 2021-06-21 13:37+0200\n" +"PO-Revision-Date: 2021-06-21 13:38+0200\n" "Last-Translator: \n" "Language-Team: \n" "Language: de_DE\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.4.3\n" +"X-Generator: Poedit 3.0\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\login.cpsp:181 -#: F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\login.cpsp:260 +#: build/http_pages/LoginPage.cpp:196 build/http_pages/LoginPage.cpp:275 msgid "Login" msgstr "Anmeldung" -#: F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\login.cpsp:181 +#: build/http_pages/LoginPage.cpp:196 msgid "E-Mail or password isn't right, please try again!" msgstr "" "E-Mail und Passwort Kombination stimmen nicht, bitte versuche es erneut. " -#: F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\login.cpsp:190 +#: build/http_pages/LoginPage.cpp:205 msgid "Passwort" msgstr "Passwort" -#: F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\login.cpsp:190 +#: build/http_pages/LoginPage.cpp:205 msgid "" "Passwort wird noch berechnet, bitte versuche es in etwa 1 Minute erneut." msgstr "" -#: F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\login.cpsp:193 -#: F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\login.cpsp:196 +#: build/http_pages/LoginPage.cpp:208 build/http_pages/LoginPage.cpp:211 msgid "User" msgstr "" -#: F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\login.cpsp:193 +#: build/http_pages/LoginPage.cpp:208 msgid "Error in saved data, the server admin will look at it." msgstr "" -#: F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\login.cpsp:196 +#: build/http_pages/LoginPage.cpp:211 msgid "Benutzer ist deaktiviert, kein Login möglich!" msgstr "" -#: F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\login.cpsp:260 +#: build/http_pages/LoginPage.cpp:275 msgid "Username and password are needed!" msgstr "E-Mail und Passwort werden benötigt!" -#: F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\login.cpsp:290 -#: model/Session.cpp:164 model/Session.cpp:171 model/Session.cpp:223 -#: model/Session.cpp:234 +#: build/http_pages/LoginPage.cpp:376 src/cpp/model/Session.cpp:161 +#: src/cpp/model/Session.cpp:168 src/cpp/model/Session.cpp:220 +#: src/cpp/model/Session.cpp:231 msgid "E-Mail" msgstr "" -#: F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\login.cpsp:291 -#: SingletonManager/SessionManager.cpp:608 -#: SingletonManager/SessionManager.cpp:614 -#: SingletonManager/SessionManager.cpp:620 -#: SingletonManager/SessionManager.cpp:626 -#: SingletonManager/SessionManager.cpp:632 -#: SingletonManager/SessionManager.cpp:638 +#: build/http_pages/LoginPage.cpp:381 +#: src/cpp/SingletonManager/SessionManager.cpp:603 +#: src/cpp/SingletonManager/SessionManager.cpp:609 +#: src/cpp/SingletonManager/SessionManager.cpp:614 +#: src/cpp/SingletonManager/SessionManager.cpp:619 +#: src/cpp/SingletonManager/SessionManager.cpp:624 +#: src/cpp/SingletonManager/SessionManager.cpp:629 msgid "Password" msgstr "Passwort" -#: F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\login.cpsp:292 +#: build/http_pages/LoginPage.cpp:384 msgid " Login " msgstr "Anmeldung" -#: F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\login.cpsp:297 +#: build/http_pages/LoginPage.cpp:391 msgid "You haven't any account yet? Please follow the link to create one." msgstr "Du hast noch kein Gradido-Konto?" -#: F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\login.cpsp:299 +#: build/http_pages/LoginPage.cpp:395 msgid "Create New Account" msgstr "Neues Konto erstellen" -#: F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\login.cpsp:303 +#: build/http_pages/LoginPage.cpp:403 msgid "Passwort vergessen" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp:73 +#: build/http_pages/CheckEmailPage.cpp:155 msgid "E-Mail verifizieren" msgstr "E-Mail überprüfen" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp:78 +#: build/http_pages/CheckEmailPage.cpp:165 msgid "" "Deine E-Mail wurde erfolgreich bestätigt. Du kannst nun Gradidos versenden." msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp:79 +#: build/http_pages/CheckEmailPage.cpp:170 msgid "Zur Startseite" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp:81 +#: build/http_pages/CheckEmailPage.cpp:175 msgid "Bitte gib deinen E-Mail Verification Code ein:" msgstr "Bitte gib deinen E-Mail Verification Code ein:" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp:82 -#: model/Session.cpp:187 +#: build/http_pages/CheckEmailPage.cpp:178 src/cpp/model/Session.cpp:184 msgid "Email Verification Code" msgstr "Email Verification Code" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp:83 +#: build/http_pages/CheckEmailPage.cpp:185 msgid "Überprüfe Code" msgstr "Überprüfe Code" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp:86 +#: build/http_pages/CheckEmailPage.cpp:190 msgid "Du hast bisher keinen Code erhalten?" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp:87 +#: build/http_pages/CheckEmailPage.cpp:193 msgid "E-Mail erneut zuschicken (in Arbeit)" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp:90 +#: build/http_pages/CheckEmailPage.cpp:198 msgid "Funktioniert dein E-Mail Verification Code nicht?" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp:91 +#: build/http_pages/CheckEmailPage.cpp:201 msgid "Schicke uns eine E-Mail und wir kümmern uns darum: " msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp:92 -#: F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\resetPassword.cpsp:151 +#: build/http_pages/CheckEmailPage.cpp:208 +#: build/http_pages/ResetPasswordPage.cpp:273 msgid "E-Mail an Support schicken" msgstr "" -#: F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\resetPassword.cpsp:113 -#: F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\resetPassword.cpsp:124 +#: build/http_pages/ResetPasswordPage.cpp:174 +#: build/http_pages/ResetPasswordPage.cpp:217 msgid "Gib bitte hier deine E-Mail Adresse an:" msgstr "" -#: F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\resetPassword.cpsp:116 +#: build/http_pages/ResetPasswordPage.cpp:183 msgid "Bestätigen" msgstr "" -#: F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\resetPassword.cpsp:126 +#: build/http_pages/ResetPasswordPage.cpp:225 msgid "Hast du dir deine Passphrase notiert oder gemerkt?" msgstr "" -#: F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\resetPassword.cpsp:131 -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:206 +#: build/http_pages/ResetPasswordPage.cpp:234 +#: build/http_pages/PassphrasePage.cpp:373 msgid "Ja" msgstr "" -#: F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\resetPassword.cpsp:136 +#: build/http_pages/ResetPasswordPage.cpp:241 msgid "Nein" msgstr "" -#: F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\resetPassword.cpsp:140 +#: build/http_pages/ResetPasswordPage.cpp:247 msgid "Absenden" msgstr "" -#: F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\resetPassword.cpsp:145 +#: build/http_pages/ResetPasswordPage.cpp:255 msgid "Dir wird eine E-Mail zugeschickt um dein Passwort zurückzusetzen." msgstr "" -#: F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\resetPassword.cpsp:147 +#: build/http_pages/ResetPasswordPage.cpp:260 msgid "Der Admin hat eine E-Mail bekommen und wird sich bei dir melden." msgstr "" -#: F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\resetPassword.cpsp:149 +#: build/http_pages/ResetPasswordPage.cpp:265 msgid "" "Du hast bereits eine E-Mail bekommen. Bitte schau auch in dein Spam-" "Verzeichnis nach. " msgstr "" -#: F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\resetPassword.cpsp:150 +#: build/http_pages/ResetPasswordPage.cpp:268 msgid "" "Du hast wirklich keine E-Mail erhalten und auch schon ein paar Minuten " "gewartet?" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:26 -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:96 -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:117 -#: model/Session.cpp:468 model/Session.cpp:480 model/Session.cpp:494 +#: build/http_pages/PassphrasePage.cpp:41 +#: build/http_pages/PassphrasePage.cpp:111 +#: build/http_pages/PassphrasePage.cpp:132 src/cpp/model/Session.cpp:465 +#: src/cpp/model/Session.cpp:477 src/cpp/model/Session.cpp:491 msgid "Passphrase" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:27 -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:266 +#: build/http_pages/PassphrasePage.cpp:42 +#: build/http_pages/PassphrasePage.cpp:451 msgid "Neues Konto anlegen" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:28 +#: build/http_pages/PassphrasePage.cpp:43 msgid "2/3" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:96 +#: build/http_pages/PassphrasePage.cpp:111 msgid "" "Diese Passphrase ist ungültig, bitte überprüfen oder neu " "generieren (lassen)." msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:117 +#: build/http_pages/PassphrasePage.cpp:132 msgid "intern error please try again later" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:132 +#: build/http_pages/PassphrasePage.cpp:147 msgid "3/3" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:135 -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:138 +#: build/http_pages/PassphrasePage.cpp:150 +#: build/http_pages/PassphrasePage.cpp:153 msgid "1/3" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:137 +#: build/http_pages/PassphrasePage.cpp:152 msgid "Neues Passwort anlegen" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:148 +#: build/http_pages/PassphrasePage.cpp:270 msgid "Passphrase abschreiben" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:159 +#: build/http_pages/PassphrasePage.cpp:287 msgid "Was ist eine Passphrase?" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:160 +#: build/http_pages/PassphrasePage.cpp:290 msgid "Deine Passphrase besteht aus den im grünen Feld angezeigten Wörtern." msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:161 +#: build/http_pages/PassphrasePage.cpp:293 msgid "Sie dient deiner Sicherheit." msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:162 +#: build/http_pages/PassphrasePage.cpp:296 msgid "" "Du brauchst deine Passphrase um dein Konto wiederherzustellen, wenn du mal " "dein Passwort vergessen haben solltest." msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:164 +#: build/http_pages/PassphrasePage.cpp:300 msgid "Deine Passphrase (Groß/Kleinschreibung beachten)" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:169 -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:197 +#: build/http_pages/PassphrasePage.cpp:309 +#: build/http_pages/PassphrasePage.cpp:352 msgid "Was zu tun ist:" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:170 +#: build/http_pages/PassphrasePage.cpp:312 msgid "" "Schreibe dir die obenstehende Passphrase von Hand auf ein Blatt " "Papier!" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:171 +#: build/http_pages/PassphrasePage.cpp:315 msgid "Speichere sie auf keinen Fall auf deinem Rechner oder Mobilgerät!!" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:172 +#: build/http_pages/PassphrasePage.cpp:318 msgid "Bewahre sie an einem sicheren Ort auf!" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:174 -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:285 -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:290 -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:303 +#: build/http_pages/PassphrasePage.cpp:322 +#: build/http_pages/PassphrasePage.cpp:478 +#: build/http_pages/PassphrasePage.cpp:487 +#: build/http_pages/PassphrasePage.cpp:511 msgid "Weiter" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:198 +#: build/http_pages/PassphrasePage.cpp:355 msgid "Hast du dir deine Passphrase gemerkt?" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:199 +#: build/http_pages/PassphrasePage.cpp:358 msgid "" "Dann zeig es mir. Zur Unterstützung gebe ich dir deine Wörter aber in " "anderer Reihenfolge." msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:200 +#: build/http_pages/PassphrasePage.cpp:361 msgid "Klicke sie an um sie einzusetzen." msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:201 +#: build/http_pages/PassphrasePage.cpp:364 msgid "Überprüfe dabei, ob du alle Wörter richtig geschrieben hast!" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:205 +#: build/http_pages/PassphrasePage.cpp:370 msgid "" "Weil du kein Javascript verwendest geht es direkt weiter. Hast du dir deine " "Passphrase gemerkt oder aufgeschrieben?" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:252 +#: build/http_pages/PassphrasePage.cpp:429 msgid "Deine E-Mail Adresse wurde erfolgreich bestätigt." msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:256 +#: build/http_pages/PassphrasePage.cpp:437 msgid "Neue Gradido Adresse anlegen / wiederherstellen" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:257 +#: build/http_pages/PassphrasePage.cpp:440 msgid "" "Möchtest du ein neues Gradido-Konto anlegen oder ein bestehendes " "wiederherstellen?" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:273 +#: build/http_pages/PassphrasePage.cpp:460 msgid "Bestehendes Konto wiederherstellen" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:280 +#: build/http_pages/PassphrasePage.cpp:469 msgid "" "Falls du ein bestehendes Konto wiederherstellen willst, gib hier deine " "Passphrase ein:" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:297 +#: build/http_pages/PassphrasePage.cpp:497 msgid "Konto wiederherstellen / Neues Passwort anlegen" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:299 +#: build/http_pages/PassphrasePage.cpp:501 msgid "" "Um dein Konto wiederherzustellen und dir ein Neues Passwort auswählen zu " "können, tippe hier bitte die Wörter deiner Passphrase in der richtigen " "Reihenfolge ein, welche du dir aufgeschrieben hast." msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:313 +#: build/http_pages/PassphrasePage.cpp:524 msgid "Fehler" msgstr "" -#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp:314 +#: build/http_pages/PassphrasePage.cpp:527 msgid "" "Ungültige Seite, wenn du das siehst stimmt hier etwas nicht. Bitte wende " "dich an den Server-Admin." msgstr "" -#: model/Session.cpp:150 model/Session.cpp:180 model/Session.cpp:779 -#: model/Session.cpp:785 model/Session.cpp:1061 model/Session.cpp:1077 +#: src/cpp/model/Session.cpp:147 src/cpp/model/Session.cpp:177 +#: src/cpp/model/Session.cpp:645 src/cpp/model/Session.cpp:651 +#: src/cpp/model/Session.cpp:937 src/cpp/model/Session.cpp:953 msgid "Benutzer" msgstr "" -#: model/Session.cpp:150 +#: src/cpp/model/Session.cpp:147 msgid "Eingeloggter Benutzer ist kein Admin" msgstr "" -#: model/Session.cpp:156 model/Session.cpp:215 +#: src/cpp/model/Session.cpp:153 src/cpp/model/Session.cpp:212 msgid "Vorname" msgstr "" -#: model/Session.cpp:156 model/Session.cpp:160 model/Session.cpp:215 -#: model/Session.cpp:219 +#: src/cpp/model/Session.cpp:153 src/cpp/model/Session.cpp:157 +#: src/cpp/model/Session.cpp:212 src/cpp/model/Session.cpp:216 msgid "" "Bitte gebe einen Namen an. Mindestens 3 Zeichen, keines folgender Zeichen " "<>&;" msgstr "" -#: model/Session.cpp:160 model/Session.cpp:219 +#: src/cpp/model/Session.cpp:157 src/cpp/model/Session.cpp:216 msgid "Nachname" msgstr "" -#: model/Session.cpp:164 model/Session.cpp:223 +#: src/cpp/model/Session.cpp:161 src/cpp/model/Session.cpp:220 msgid "Bitte gebe eine gültige E-Mail Adresse an." msgstr "" -#: model/Session.cpp:171 +#: src/cpp/model/Session.cpp:168 msgid "Für diese E-Mail Adresse gibt es bereits einen Account" msgstr "" -#: model/Session.cpp:180 model/Session.cpp:187 +#: src/cpp/model/Session.cpp:177 src/cpp/model/Session.cpp:184 msgid "Fehler beim speichern!" msgstr "" -#: model/Session.cpp:234 +#: src/cpp/model/Session.cpp:231 msgid "Für diese E-Mail Adresse gibt es bereits ein Konto" msgstr "" -#: model/Session.cpp:258 +#: src/cpp/model/Session.cpp:255 msgid "Server" msgstr "" -#: model/Session.cpp:258 +#: src/cpp/model/Session.cpp:255 msgid "Fehler beim speichen des Kontos bitte versuche es später noch einmal" msgstr "" -#: model/Session.cpp:353 model/Session.cpp:393 model/Session.cpp:966 -#: model/Session.cpp:975 +#: src/cpp/model/Session.cpp:350 src/cpp/model/Session.cpp:390 +#: src/cpp/model/Session.cpp:832 src/cpp/model/Session.cpp:841 msgid "E-Mail Verification" msgstr "E-Mail Überprüfung" -#: model/Session.cpp:353 +#: src/cpp/model/Session.cpp:350 msgid "Du hast dein Konto bereits aktiviert!" msgstr "" -#: model/Session.cpp:393 +#: src/cpp/model/Session.cpp:390 msgid "Falscher Code für aktiven Login" msgstr "" -#: model/Session.cpp:468 +#: src/cpp/model/Session.cpp:465 msgid "Deine Passphrase ist ungütig" msgstr "" -#: model/Session.cpp:480 +#: src/cpp/model/Session.cpp:477 msgid "Ein Fehler trat auf, bitte versuche es erneut" msgstr "" -#: model/Session.cpp:494 +#: src/cpp/model/Session.cpp:491 msgid "Das ist nicht die richtige Passphrase." msgstr "" -#: model/Session.cpp:779 +#: src/cpp/model/Session.cpp:645 msgid "Konnte Community Server nicht erreichen. E-Mail an den Admin ist raus." msgstr "" -#: model/Session.cpp:785 +#: src/cpp/model/Session.cpp:651 msgid "" "Fehler beim Löschen des Accounts. Bitte logge dich erneut ein und " "versuche es nochmal." msgstr "" -#: model/Session.cpp:966 +#: src/cpp/model/Session.cpp:832 msgid "Konnte kein passendes Konto finden." msgstr "" -#: model/Session.cpp:975 +#: src/cpp/model/Session.cpp:841 msgid "Fehler beim laden des Benutzers." msgstr "" -#: model/Session.cpp:1061 +#: src/cpp/model/Session.cpp:937 msgid "Kein gültiger Benutzer, bitte logge dich erneut ein." msgstr "" -#: model/Session.cpp:1077 +#: src/cpp/model/Session.cpp:953 msgid "Fehler beim generieren der Passphrase, der Admin bekommt eine E-Mail. " msgstr "" -#: SingletonManager/SessionManager.cpp:609 +#: src/cpp/model/email/Email.cpp:174 +msgid "Default Email Subject" +msgstr "" + +#: src/cpp/model/email/Email.cpp:180 +msgid "Error from Gradido Login Server" +msgstr "Fehler auf dem Gradido Login Server" + +#: src/cpp/model/email/Email.cpp:200 +msgid "Gradido: E-Mail Verification" +msgstr "Gradido: E-Mail Überprüfung" + +#: src/cpp/model/email/Email.cpp:246 +msgid "Gradido: Reset Password" +msgstr "Gradido: Passwort zurücksetzen" + +#: src/cpp/SingletonManager/SessionManager.cpp:604 msgid "" "Please enter a valid password with at least 8 characters, upper and lower " "case letters, at least one number and one special character (@$!%*?&+-_)!" @@ -447,23 +461,23 @@ msgstr "" "Kleinbuchstaben, mindestens einer Zahl und einem Sonderzeichen (@$!%*?&+-_) " "ein!" -#: SingletonManager/SessionManager.cpp:615 +#: src/cpp/SingletonManager/SessionManager.cpp:610 msgid "Your password is to short!" msgstr "Dein Passwort ist zu kurz!" -#: SingletonManager/SessionManager.cpp:621 +#: src/cpp/SingletonManager/SessionManager.cpp:615 msgid "Your password does not contain lowercase letters!" msgstr "Dein Passwort enthält keine Kleinbuchstaben!" -#: SingletonManager/SessionManager.cpp:627 +#: src/cpp/SingletonManager/SessionManager.cpp:620 msgid "Your password does not contain any capital letters!" msgstr " Dein Passwort enthält keine Großbuchstaben!" -#: SingletonManager/SessionManager.cpp:633 +#: src/cpp/SingletonManager/SessionManager.cpp:625 msgid "Your password does not contain any number!" msgstr "Dein Passwort enthält keine Zahlen!" -#: SingletonManager/SessionManager.cpp:639 +#: src/cpp/SingletonManager/SessionManager.cpp:630 msgid "Your password does not contain special characters (@$!%*?&+-)!" msgstr "Dein Passwort enthält keine Sonderzeichen (@$!%*?&+-)!" @@ -493,9 +507,6 @@ msgstr "Dein Passwort enthält keine Sonderzeichen (@$!%*?&+-)!" #~ "Der neue Gradido basiert technisch auf einer Kryptowährung (wie z.B. " #~ "Bitcoin) um für dich die maximale Sicherheit zu gewährleisten." -#~ msgid "Gradido: E-Mail Verification" -#~ msgstr "Gradido: E-Mail Überprüfung" - #~ msgid "" #~ "Der Code stimmt nicht, bitte überprüfe ihn nochmal oder " #~ "registriere dich erneut oder wende dich an den Server-Admin" diff --git a/login_server/src/cpp/JSONInterface/JsonUpdateUserInfos.cpp b/login_server/src/cpp/JSONInterface/JsonUpdateUserInfos.cpp index a99881756..eb18bf8f7 100644 --- a/login_server/src/cpp/JSONInterface/JsonUpdateUserInfos.cpp +++ b/login_server/src/cpp/JSONInterface/JsonUpdateUserInfos.cpp @@ -123,13 +123,18 @@ Poco::JSON::Object* JsonUpdateUserInfos::handle(Poco::Dynamic::Var params) } } else if ("User.description" == name) { - std::string str_val = validateString(value, "User.description", jsonErrorsArray); + std::string errorMessage = "User.description"; - if (str_val.size() > 0 && str_val != user_model->getDescription()) { + if (!value.isString()) { + errorMessage += " isn't a string"; + jsonErrorsArray.add(errorMessage); + } + std::string str_val = value.toString(); + + if (str_val != user_model->getDescription()) { user_model->setDescription(str_val); extractet_values++; } - } else if ("User.disabled" == name) { bool disabled; diff --git a/login_server/src/cpp/model/email/Email.cpp b/login_server/src/cpp/model/email/Email.cpp index 36c411413..c000a550e 100644 --- a/login_server/src/cpp/model/email/Email.cpp +++ b/login_server/src/cpp/model/email/Email.cpp @@ -171,13 +171,13 @@ Gradido Login-Server\n\ switch (mType) { case EMAIL_DEFAULT: mailMessage->addRecipient(adminRecipient); - mailMessage->setSubject(langCatalog->gettext_str("Default Email Subject")); + mailMessage->setSubject(langCatalog->gettext("Default Email Subject")); mailMessage->addContent(new Poco::Net::StringPartSource(langCatalog->gettext_str("Empty Email Content"), mt.toString())); break; case EMAIL_ERROR: mailMessage->addRecipient(adminRecipient); - mailMessage->setSubject(langCatalog->gettext_str("Error from Gradido Login Server")); + mailMessage->setSubject(langCatalog->gettext("Error from Gradido Login Server")); mailMessage->addContent(new Poco::Net::StringPartSource(mErrorHtml, mt.toString())); break; @@ -197,7 +197,7 @@ Gradido Login-Server\n\ return false; } mailMessage->addRecipient(Poco::Net::MailRecipient(Poco::Net::MailRecipient::PRIMARY_RECIPIENT, mUser->getModel()->getEmail())); - mailMessage->setSubject(langCatalog->gettext_str("Gradido: E-Mail Verification")); + mailMessage->setSubject(langCatalog->gettext("Gradido: E-Mail Verification")); messageTemplate = EmailText_emailVerification; if (EMAIL_USER_VERIFICATION_CODE_RESEND == mType) { @@ -243,7 +243,7 @@ Gradido Login-Server\n\ return false; } mailMessage->addRecipient(Poco::Net::MailRecipient(Poco::Net::MailRecipient::PRIMARY_RECIPIENT, mUser->getModel()->getEmail())); - mailMessage->setSubject(langCatalog->gettext_str(u8"Gradido: Passwort zurücksetzen")); + mailMessage->setSubject(langCatalog->gettext("Gradido: Reset Password")); mailMessage->addContent( new Poco::Net::StringPartSource(replaceUserNamesAndLink(