mirror of
https://github.com/IT4Change/gradido.git
synced 2025-12-13 07:45:54 +00:00
using news style for login page, header and footer, adding first translations
This commit is contained in:
parent
bca54d1885
commit
8dac5e9a73
@ -1 +1,2 @@
|
|||||||
HTTPInterface/LoginPage.cpp
|
HTTPInterface/LoginPage.cpp
|
||||||
|
model/Session.cpp
|
||||||
Binary file not shown.
@ -7,8 +7,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2019-11-12 15:55+0100\n"
|
"POT-Creation-Date: 2019-11-16 09:16+0100\n"
|
||||||
"PO-Revision-Date: 2019-11-12 15:57+0100\n"
|
"PO-Revision-Date: 2019-11-16 09:52+0100\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
@ -18,43 +18,105 @@ msgstr ""
|
|||||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
"Language: de_DE\n"
|
"Language: de_DE\n"
|
||||||
|
|
||||||
#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp:46
|
#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp:53
|
||||||
#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp:62
|
#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp:69
|
||||||
msgid "Login"
|
msgid "Login"
|
||||||
msgstr "Anmeldung"
|
msgstr ""
|
||||||
|
|
||||||
#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp:46
|
#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp:53
|
||||||
msgid "E-Mail or password isn't right, please try again!"
|
msgid "E-Mail or password isn't right, please try again!"
|
||||||
msgstr "E-Mail oder Passwort nicht korrekt, bitte versuche es erneut!"
|
msgstr ""
|
||||||
|
"E-Mail und Passwort Kombination stimmen nicht, bitte versuche es erneut. "
|
||||||
|
|
||||||
#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp:49
|
#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp:56
|
||||||
msgid "Account"
|
msgid "Account"
|
||||||
msgstr "Konto"
|
msgstr "Konto"
|
||||||
|
|
||||||
#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp:49
|
#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp:56
|
||||||
msgid "E-Mail Address not checked, do you already get one?"
|
msgid "E-Mail Address not checked, do you already get one?"
|
||||||
msgstr "E-Mail Adresse wurde noch nicht bestätigt, hast du schon eine E-Mail erhalten?"
|
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:62
|
#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp:69
|
||||||
msgid "Username and password are needed!"
|
msgid "Username and password are needed!"
|
||||||
msgstr "Benutzernamen und Passwort müssen angegeben werden!"
|
msgstr "E-Mail und Passwort werden benötigt!"
|
||||||
|
|
||||||
#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp:78
|
#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp:112
|
||||||
msgid "Please give you email and password for login."
|
#: model/Session.cpp:138 model/Session.cpp:162
|
||||||
msgstr "Bitte gebe deine Zugangsdaten ein um dich einzuloggen."
|
|
||||||
|
|
||||||
#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp:80
|
|
||||||
msgid "E-Mail"
|
msgid "E-Mail"
|
||||||
msgstr "E-Mail"
|
msgstr ""
|
||||||
|
|
||||||
#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp:84
|
#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp:115
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr "Passwort"
|
msgstr "Passwort"
|
||||||
|
|
||||||
#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp:90
|
#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp:117
|
||||||
msgid "You haven't any account yet? Please follow the link to create one."
|
msgid " Login "
|
||||||
msgstr "Du hast noch keinen Account? Dann folge dem Link um dir einen anzulegen."
|
msgstr ""
|
||||||
|
|
||||||
#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp:91
|
#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp:119
|
||||||
|
msgid "You haven't any account yet? Please follow the link to create one."
|
||||||
|
msgstr "Du hast noch kein Konto?"
|
||||||
|
|
||||||
|
#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp:120
|
||||||
msgid "Create New Account"
|
msgid "Create New Account"
|
||||||
msgstr "Neuen Account anlegen"
|
msgstr "Anmelden"
|
||||||
|
|
||||||
|
#: model/Session.cpp:130
|
||||||
|
msgid "Vorname"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: model/Session.cpp:130 model/Session.cpp:134
|
||||||
|
msgid ""
|
||||||
|
"Bitte gebe einen Namen an. Mindestens 3 Zeichen, keines folgender Zeichen "
|
||||||
|
"<>&;"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: model/Session.cpp:134
|
||||||
|
msgid "Nachname"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: model/Session.cpp:138
|
||||||
|
msgid "Bitte gebe eine gültige E-Mail Adresse an."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: model/Session.cpp:162
|
||||||
|
msgid "Für diese E-Mail Adresse gibt es bereits einen Account"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: model/Session.cpp:210
|
||||||
|
msgid "Gradido: E-Mail Verification"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: model/Session.cpp:280 model/Session.cpp:287 model/Session.cpp:558
|
||||||
|
msgid "E-Mail Verification"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: model/Session.cpp:280
|
||||||
|
msgid ""
|
||||||
|
"Der Code stimmt nicht, bitte überprüfe ihn nochmal oder "
|
||||||
|
"registriere dich erneut oder wende dich an den Server-Admin"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: model/Session.cpp:287
|
||||||
|
msgid "Falscher Code für aktiven Login"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: model/Session.cpp:420 model/Session.cpp:671
|
||||||
|
msgid "Benutzer"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: model/Session.cpp:420
|
||||||
|
msgid ""
|
||||||
|
"Fehler beim Löschen des Accounts. Bitte logge dich erneut ein und "
|
||||||
|
"versuche es nochmal."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: model/Session.cpp:558
|
||||||
|
msgid "Konnte keinen passenden Account finden."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: model/Session.cpp:671
|
||||||
|
msgid "Kein gültiger Benutzer, bitte logge dich erneut ein."
|
||||||
|
msgstr ""
|
||||||
|
|||||||
BIN
src/LOCALE/en_GB.mo
Normal file
BIN
src/LOCALE/en_GB.mo
Normal file
Binary file not shown.
121
src/LOCALE/en_GB.po
Normal file
121
src/LOCALE/en_GB.po
Normal file
@ -0,0 +1,121 @@
|
|||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||||
|
# This file is distributed under the same license as the PACKAGE package.
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||||
|
#
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: \n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2019-11-16 09:16+0100\n"
|
||||||
|
"PO-Revision-Date: 2019-11-16 09:51+0100\n"
|
||||||
|
"Language-Team: \n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"X-Generator: Poedit 2.2.4\n"
|
||||||
|
"Last-Translator: \n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
"Language: en_GB\n"
|
||||||
|
|
||||||
|
#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp:53
|
||||||
|
#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp:69
|
||||||
|
msgid "Login"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp:53
|
||||||
|
msgid "E-Mail or password isn't right, please try again!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp:56
|
||||||
|
msgid "Account"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp:56
|
||||||
|
msgid "E-Mail Address not checked, do you already get one?"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp:69
|
||||||
|
msgid "Username and password are needed!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp:112
|
||||||
|
#: model/Session.cpp:138 model/Session.cpp:162
|
||||||
|
msgid "E-Mail"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp:115
|
||||||
|
msgid "Password"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp:117
|
||||||
|
msgid " Login "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp:119
|
||||||
|
msgid "You haven't any account yet? Please follow the link to create one."
|
||||||
|
msgstr "Don't have an account yet?"
|
||||||
|
|
||||||
|
#: F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp:120
|
||||||
|
msgid "Create New Account"
|
||||||
|
msgstr "Sign Up"
|
||||||
|
|
||||||
|
#: model/Session.cpp:130
|
||||||
|
msgid "Vorname"
|
||||||
|
msgstr "Firstname"
|
||||||
|
|
||||||
|
#: model/Session.cpp:130 model/Session.cpp:134
|
||||||
|
msgid ""
|
||||||
|
"Bitte gebe einen Namen an. Mindestens 3 Zeichen, keines folgender Zeichen "
|
||||||
|
"<>&;"
|
||||||
|
msgstr "Please enter your Name. At least 3 Character, without <>& and ;"
|
||||||
|
|
||||||
|
#: model/Session.cpp:134
|
||||||
|
msgid "Nachname"
|
||||||
|
msgstr "Lastname"
|
||||||
|
|
||||||
|
#: model/Session.cpp:138
|
||||||
|
msgid "Bitte gebe eine gültige E-Mail Adresse an."
|
||||||
|
msgstr "Please enter a valid email."
|
||||||
|
|
||||||
|
#: model/Session.cpp:162
|
||||||
|
msgid "Für diese E-Mail Adresse gibt es bereits einen Account"
|
||||||
|
msgstr "This email has an account already."
|
||||||
|
|
||||||
|
#: model/Session.cpp:210
|
||||||
|
msgid "Gradido: E-Mail Verification"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: model/Session.cpp:280 model/Session.cpp:287 model/Session.cpp:558
|
||||||
|
msgid "E-Mail Verification"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: model/Session.cpp:280
|
||||||
|
msgid ""
|
||||||
|
"Der Code stimmt nicht, bitte überprüfe ihn nochmal oder "
|
||||||
|
"registriere dich erneut oder wende dich an den Server-Admin"
|
||||||
|
msgstr ""
|
||||||
|
"The email verification code isn't correct. Please check at spell errors "
|
||||||
|
"and try again or ask the server admin."
|
||||||
|
|
||||||
|
#: model/Session.cpp:287
|
||||||
|
msgid "Falscher Code für aktiven Login"
|
||||||
|
msgstr "Wrong Code for active Login."
|
||||||
|
|
||||||
|
#: model/Session.cpp:420 model/Session.cpp:671
|
||||||
|
msgid "Benutzer"
|
||||||
|
msgstr "User"
|
||||||
|
|
||||||
|
#: model/Session.cpp:420
|
||||||
|
msgid ""
|
||||||
|
"Fehler beim Löschen des Accounts. Bitte logge dich erneut ein und "
|
||||||
|
"versuche es nochmal."
|
||||||
|
msgstr "Error by deleting the account. Please re-login and try again."
|
||||||
|
|
||||||
|
#: model/Session.cpp:558
|
||||||
|
msgid "Konnte keinen passenden Account finden."
|
||||||
|
msgstr "This Account didn't seem to exist."
|
||||||
|
|
||||||
|
#: model/Session.cpp:671
|
||||||
|
msgid "Kein gültiger Benutzer, bitte logge dich erneut ein."
|
||||||
|
msgstr "Invalid User, please re-login."
|
||||||
@ -100,7 +100,8 @@ int Gradido_LoginServer::main(const std::vector<std::string>& args)
|
|||||||
{
|
{
|
||||||
// ********** logging ************************************
|
// ********** logging ************************************
|
||||||
std::string log_Path = "/var/log/grd_login/";
|
std::string log_Path = "/var/log/grd_login/";
|
||||||
#ifdef _WIN32 || _WIN64
|
//#ifdef _WIN32
|
||||||
|
#if defined(_WIN32) || defined(_WIN64)
|
||||||
log_Path = "./";
|
log_Path = "./";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -130,7 +131,12 @@ int Gradido_LoginServer::main(const std::vector<std::string>& args)
|
|||||||
// *************** load from config ********************************************
|
// *************** load from config ********************************************
|
||||||
|
|
||||||
std::string cfg_Path = Poco::Path::config() + "grd_login/";
|
std::string cfg_Path = Poco::Path::config() + "grd_login/";
|
||||||
loadConfiguration(cfg_Path + "grd_login.properties");
|
try {
|
||||||
|
loadConfiguration(cfg_Path + "grd_login.properties");
|
||||||
|
}
|
||||||
|
catch (Poco::Exception& ex) {
|
||||||
|
errorLog.error("error loading config: %s", ex.displayText());
|
||||||
|
}
|
||||||
|
|
||||||
unsigned short port = (unsigned short)config().getInt("HTTPServer.port", 9980);
|
unsigned short port = (unsigned short)config().getInt("HTTPServer.port", 9980);
|
||||||
unsigned short json_port = (unsigned short)config().getInt("JSONServer.port", 1201);
|
unsigned short json_port = (unsigned short)config().getInt("JSONServer.port", 1201);
|
||||||
|
|||||||
@ -59,7 +59,7 @@ void CheckEmailPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::
|
|||||||
responseStream << "<html>\n";
|
responseStream << "<html>\n";
|
||||||
responseStream << "<head>\n";
|
responseStream << "<head>\n";
|
||||||
responseStream << "<meta charset=\"UTF-8\">\n";
|
responseStream << "<meta charset=\"UTF-8\">\n";
|
||||||
responseStream << "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n";
|
responseStream << "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1, shrink-to-fit=no\">\n";
|
||||||
responseStream << "<title>Gradido Login Server: ";
|
responseStream << "<title>Gradido Login Server: ";
|
||||||
#line 9 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
|
#line 9 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
|
||||||
responseStream << ( pageName );
|
responseStream << ( pageName );
|
||||||
@ -110,7 +110,7 @@ void CheckEmailPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::
|
|||||||
responseStream << "<body>\n";
|
responseStream << "<body>\n";
|
||||||
responseStream << "<div class=\"versionstring dev-info\">\n";
|
responseStream << "<div class=\"versionstring dev-info\">\n";
|
||||||
responseStream << "\t<p class=\"grd_small\">Login Server in Entwicklung</p>\n";
|
responseStream << "\t<p class=\"grd_small\">Login Server in Entwicklung</p>\n";
|
||||||
responseStream << "\t<p class=\"grd_small\">Alpha 0.5.1</p>\n";
|
responseStream << "\t<p class=\"grd_small\">Alpha 0.6.0</p>\n";
|
||||||
responseStream << "</div>\n";
|
responseStream << "</div>\n";
|
||||||
responseStream << "<!--<nav class=\"grd-left-bar expanded\" data-topbar role=\"navigation\">\n";
|
responseStream << "<!--<nav class=\"grd-left-bar expanded\" data-topbar role=\"navigation\">\n";
|
||||||
responseStream << "\t<div class=\"grd-left-bar-section\">\n";
|
responseStream << "\t<div class=\"grd-left-bar-section\">\n";
|
||||||
|
|||||||
@ -93,7 +93,7 @@ void CheckTransactionPage::handleRequest(Poco::Net::HTTPServerRequest& request,
|
|||||||
responseStream << "<html>\n";
|
responseStream << "<html>\n";
|
||||||
responseStream << "<head>\n";
|
responseStream << "<head>\n";
|
||||||
responseStream << "<meta charset=\"UTF-8\">\n";
|
responseStream << "<meta charset=\"UTF-8\">\n";
|
||||||
responseStream << "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n";
|
responseStream << "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1, shrink-to-fit=no\">\n";
|
||||||
responseStream << "<title>Gradido Login Server: ";
|
responseStream << "<title>Gradido Login Server: ";
|
||||||
#line 9 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
|
#line 9 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
|
||||||
responseStream << ( pageName );
|
responseStream << ( pageName );
|
||||||
@ -144,7 +144,7 @@ void CheckTransactionPage::handleRequest(Poco::Net::HTTPServerRequest& request,
|
|||||||
responseStream << "<body>\n";
|
responseStream << "<body>\n";
|
||||||
responseStream << "<div class=\"versionstring dev-info\">\n";
|
responseStream << "<div class=\"versionstring dev-info\">\n";
|
||||||
responseStream << "\t<p class=\"grd_small\">Login Server in Entwicklung</p>\n";
|
responseStream << "\t<p class=\"grd_small\">Login Server in Entwicklung</p>\n";
|
||||||
responseStream << "\t<p class=\"grd_small\">Alpha 0.5.1</p>\n";
|
responseStream << "\t<p class=\"grd_small\">Alpha 0.6.0</p>\n";
|
||||||
responseStream << "</div>\n";
|
responseStream << "</div>\n";
|
||||||
responseStream << "<!--<nav class=\"grd-left-bar expanded\" data-topbar role=\"navigation\">\n";
|
responseStream << "<!--<nav class=\"grd-left-bar expanded\" data-topbar role=\"navigation\">\n";
|
||||||
responseStream << "\t<div class=\"grd-left-bar-section\">\n";
|
responseStream << "\t<div class=\"grd-left-bar-section\">\n";
|
||||||
|
|||||||
@ -31,7 +31,7 @@ void ConfigPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net:
|
|||||||
responseStream << "<html>\n";
|
responseStream << "<html>\n";
|
||||||
responseStream << "<head>\n";
|
responseStream << "<head>\n";
|
||||||
responseStream << "<meta charset=\"UTF-8\">\n";
|
responseStream << "<meta charset=\"UTF-8\">\n";
|
||||||
responseStream << "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n";
|
responseStream << "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1, shrink-to-fit=no\">\n";
|
||||||
responseStream << "<title>Gradido Login Server: ";
|
responseStream << "<title>Gradido Login Server: ";
|
||||||
#line 9 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
|
#line 9 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
|
||||||
responseStream << ( pageName );
|
responseStream << ( pageName );
|
||||||
@ -82,7 +82,7 @@ void ConfigPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net:
|
|||||||
responseStream << "<body>\n";
|
responseStream << "<body>\n";
|
||||||
responseStream << "<div class=\"versionstring dev-info\">\n";
|
responseStream << "<div class=\"versionstring dev-info\">\n";
|
||||||
responseStream << "\t<p class=\"grd_small\">Login Server in Entwicklung</p>\n";
|
responseStream << "\t<p class=\"grd_small\">Login Server in Entwicklung</p>\n";
|
||||||
responseStream << "\t<p class=\"grd_small\">Alpha 0.5.1</p>\n";
|
responseStream << "\t<p class=\"grd_small\">Alpha 0.6.0</p>\n";
|
||||||
responseStream << "</div>\n";
|
responseStream << "</div>\n";
|
||||||
responseStream << "<!--<nav class=\"grd-left-bar expanded\" data-topbar role=\"navigation\">\n";
|
responseStream << "<!--<nav class=\"grd-left-bar expanded\" data-topbar role=\"navigation\">\n";
|
||||||
responseStream << "\t<div class=\"grd-left-bar-section\">\n";
|
responseStream << "\t<div class=\"grd-left-bar-section\">\n";
|
||||||
|
|||||||
@ -47,7 +47,7 @@ void DashboardPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::N
|
|||||||
responseStream << "<html>\n";
|
responseStream << "<html>\n";
|
||||||
responseStream << "<head>\n";
|
responseStream << "<head>\n";
|
||||||
responseStream << "<meta charset=\"UTF-8\">\n";
|
responseStream << "<meta charset=\"UTF-8\">\n";
|
||||||
responseStream << "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n";
|
responseStream << "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1, shrink-to-fit=no\">\n";
|
||||||
responseStream << "<title>Gradido Login Server: ";
|
responseStream << "<title>Gradido Login Server: ";
|
||||||
#line 9 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
|
#line 9 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
|
||||||
responseStream << ( pageName );
|
responseStream << ( pageName );
|
||||||
@ -98,7 +98,7 @@ void DashboardPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::N
|
|||||||
responseStream << "<body>\n";
|
responseStream << "<body>\n";
|
||||||
responseStream << "<div class=\"versionstring dev-info\">\n";
|
responseStream << "<div class=\"versionstring dev-info\">\n";
|
||||||
responseStream << "\t<p class=\"grd_small\">Login Server in Entwicklung</p>\n";
|
responseStream << "\t<p class=\"grd_small\">Login Server in Entwicklung</p>\n";
|
||||||
responseStream << "\t<p class=\"grd_small\">Alpha 0.5.1</p>\n";
|
responseStream << "\t<p class=\"grd_small\">Alpha 0.6.0</p>\n";
|
||||||
responseStream << "</div>\n";
|
responseStream << "</div>\n";
|
||||||
responseStream << "<!--<nav class=\"grd-left-bar expanded\" data-topbar role=\"navigation\">\n";
|
responseStream << "<!--<nav class=\"grd-left-bar expanded\" data-topbar role=\"navigation\">\n";
|
||||||
responseStream << "\t<div class=\"grd-left-bar-section\">\n";
|
responseStream << "\t<div class=\"grd-left-bar-section\">\n";
|
||||||
|
|||||||
@ -46,7 +46,7 @@ void Error500Page::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Ne
|
|||||||
responseStream << "<html>\n";
|
responseStream << "<html>\n";
|
||||||
responseStream << "<head>\n";
|
responseStream << "<head>\n";
|
||||||
responseStream << "<meta charset=\"UTF-8\">\n";
|
responseStream << "<meta charset=\"UTF-8\">\n";
|
||||||
responseStream << "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n";
|
responseStream << "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1, shrink-to-fit=no\">\n";
|
||||||
responseStream << "<title>Gradido Login Server: ";
|
responseStream << "<title>Gradido Login Server: ";
|
||||||
#line 9 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
|
#line 9 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
|
||||||
responseStream << ( pageName );
|
responseStream << ( pageName );
|
||||||
@ -97,7 +97,7 @@ void Error500Page::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Ne
|
|||||||
responseStream << "<body>\n";
|
responseStream << "<body>\n";
|
||||||
responseStream << "<div class=\"versionstring dev-info\">\n";
|
responseStream << "<div class=\"versionstring dev-info\">\n";
|
||||||
responseStream << "\t<p class=\"grd_small\">Login Server in Entwicklung</p>\n";
|
responseStream << "\t<p class=\"grd_small\">Login Server in Entwicklung</p>\n";
|
||||||
responseStream << "\t<p class=\"grd_small\">Alpha 0.5.1</p>\n";
|
responseStream << "\t<p class=\"grd_small\">Alpha 0.6.0</p>\n";
|
||||||
responseStream << "</div>\n";
|
responseStream << "</div>\n";
|
||||||
responseStream << "<!--<nav class=\"grd-left-bar expanded\" data-topbar role=\"navigation\">\n";
|
responseStream << "<!--<nav class=\"grd-left-bar expanded\" data-topbar role=\"navigation\">\n";
|
||||||
responseStream << "\t<div class=\"grd-left-bar-section\">\n";
|
responseStream << "\t<div class=\"grd-left-bar-section\">\n";
|
||||||
|
|||||||
@ -13,6 +13,7 @@
|
|||||||
#include "Poco/Net/HTTPServerParams.h"
|
#include "Poco/Net/HTTPServerParams.h"
|
||||||
#include "Poco/Logger.h"
|
#include "Poco/Logger.h"
|
||||||
#include "../SingletonManager/SessionManager.h"
|
#include "../SingletonManager/SessionManager.h"
|
||||||
|
#include "../SingletonManager/LanguageManager.h"
|
||||||
|
|
||||||
#line 1 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
|
#line 1 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
|
||||||
|
|
||||||
@ -27,10 +28,14 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::
|
|||||||
if (_compressResponse) response.set("Content-Encoding", "gzip");
|
if (_compressResponse) response.set("Content-Encoding", "gzip");
|
||||||
|
|
||||||
Poco::Net::HTMLForm form(request, request.stream());
|
Poco::Net::HTMLForm form(request, request.stream());
|
||||||
#line 15 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
#line 16 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||||
|
|
||||||
const char* pageName = "Login";
|
const char* pageName = "Login";
|
||||||
auto sm = SessionManager::getInstance();
|
auto sm = SessionManager::getInstance();
|
||||||
|
auto lm = LanguageManager::getInstance();
|
||||||
|
|
||||||
|
auto lang = chooseLanguage(request);
|
||||||
|
auto langCatalog = lm->getFreeCatalog(lang);
|
||||||
|
|
||||||
if(!form.empty()) {
|
if(!form.empty()) {
|
||||||
auto email = form.get("login-email", "");
|
auto email = form.get("login-email", "");
|
||||||
@ -40,7 +45,9 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::
|
|||||||
auto session = sm->getSession(request);
|
auto session = sm->getSession(request);
|
||||||
if(!session) {
|
if(!session) {
|
||||||
session = sm->getNewSession();
|
session = sm->getNewSession();
|
||||||
|
session->setLanguageCatalog(langCatalog);
|
||||||
|
// get language
|
||||||
|
// first check url, second check language header
|
||||||
// for debugging client ip
|
// for debugging client ip
|
||||||
auto client_ip = request.clientAddress();
|
auto client_ip = request.clientAddress();
|
||||||
std::string clientIpString = "client ip: ";
|
std::string clientIpString = "client ip: ";
|
||||||
@ -59,10 +66,10 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::
|
|||||||
switch(userState) {
|
switch(userState) {
|
||||||
case USER_EMPTY:
|
case USER_EMPTY:
|
||||||
case USER_PASSWORD_INCORRECT:
|
case USER_PASSWORD_INCORRECT:
|
||||||
addError(new Error(gettext("Login"), gettext("E-Mail or password isn't right, please try again!")));
|
addError(new Error(langCatalog->gettext("Login"), langCatalog->gettext("E-Mail or password isn't right, please try again!")));
|
||||||
break;
|
break;
|
||||||
case USER_EMAIL_NOT_ACTIVATED:
|
case USER_EMAIL_NOT_ACTIVATED:
|
||||||
session->addError(new Error(gettext("Account"), gettext("E-Mail Address not checked, do you already get one?")));
|
session->addError(new Error(langCatalog->gettext("Account"), langCatalog->gettext("E-Mail Address not checked, do you already get one?")));
|
||||||
response.redirect(ServerConfig::g_serverPath + "/checkEmail");
|
response.redirect(ServerConfig::g_serverPath + "/checkEmail");
|
||||||
return;
|
return;
|
||||||
case USER_NO_KEYS:
|
case USER_NO_KEYS:
|
||||||
@ -75,7 +82,7 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::
|
|||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
addError(new Error(gettext("Login"), gettext("Username and password are needed!")));
|
addError(new Error(langCatalog->gettext("Login"), langCatalog->gettext("Username and password are needed!")));
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
@ -94,64 +101,26 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::
|
|||||||
responseStream << "<html>\n";
|
responseStream << "<html>\n";
|
||||||
responseStream << "<head>\n";
|
responseStream << "<head>\n";
|
||||||
responseStream << "<meta charset=\"UTF-8\">\n";
|
responseStream << "<meta charset=\"UTF-8\">\n";
|
||||||
responseStream << "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n";
|
responseStream << "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1, shrink-to-fit=no\">\n";
|
||||||
responseStream << "<title>Gradido Login Server: ";
|
responseStream << "<title>Gradido Login Server: ";
|
||||||
#line 9 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
|
#line 9 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
|
||||||
responseStream << ( pageName );
|
responseStream << ( pageName );
|
||||||
responseStream << "</title>\n";
|
responseStream << "</title>\n";
|
||||||
responseStream << "<!--<link rel=\"stylesheet\" type=\"text/css\" href=\"css/styles.min.css\">-->\n";
|
|
||||||
responseStream << "<link rel=\"stylesheet\" type=\"text/css\" href=\"";
|
responseStream << "<link rel=\"stylesheet\" type=\"text/css\" href=\"";
|
||||||
#line 11 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
|
#line 10 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
|
||||||
responseStream << ( ServerConfig::g_php_serverPath );
|
responseStream << ( ServerConfig::g_php_serverPath );
|
||||||
responseStream << "/css/styles.css\">\n";
|
responseStream << "css/loginServer/style.css\">\n";
|
||||||
responseStream << "<style type=\"text/css\" >\n";
|
|
||||||
responseStream << ".grd_container\n";
|
|
||||||
responseStream << "{\n";
|
|
||||||
responseStream << " max-width:820px;\n";
|
|
||||||
responseStream << " margin-left:auto;\n";
|
|
||||||
responseStream << " margin-right:auto;\n";
|
|
||||||
responseStream << "}\n";
|
|
||||||
responseStream << "\n";
|
|
||||||
responseStream << "input:not([type='radio']) {\n";
|
|
||||||
responseStream << "\twidth:200px;\n";
|
|
||||||
responseStream << "}\n";
|
|
||||||
responseStream << "label:not(.grd_radio_label) {\n";
|
|
||||||
responseStream << "\twidth:80px;\n";
|
|
||||||
responseStream << "\tdisplay:inline-block;\n";
|
|
||||||
responseStream << "}\n";
|
|
||||||
responseStream << ".grd_container_small\n";
|
|
||||||
responseStream << "{\n";
|
|
||||||
responseStream << " max-width:500px;\n";
|
|
||||||
responseStream << "}\n";
|
|
||||||
responseStream << ".grd_text {\n";
|
|
||||||
responseStream << " max-width:550px;\n";
|
|
||||||
responseStream << " margin-bottom: 5px;\n";
|
|
||||||
responseStream << "}\n";
|
|
||||||
responseStream << ".dev-info {\n";
|
|
||||||
responseStream << "\tposition: fixed;\n";
|
|
||||||
responseStream << "\tcolor:grey;\n";
|
|
||||||
responseStream << "\tfont-size: smaller;\n";
|
|
||||||
responseStream << "\tleft:8px;\n";
|
|
||||||
responseStream << "}\n";
|
|
||||||
responseStream << ".grd-time-used { \n";
|
|
||||||
responseStream << " bottom:0;\n";
|
|
||||||
responseStream << "} \n";
|
|
||||||
responseStream << "\n";
|
|
||||||
responseStream << ".versionstring {\n";
|
|
||||||
responseStream << "\ttop:0;\n";
|
|
||||||
responseStream << "}\n";
|
|
||||||
responseStream << "</style>\n";
|
|
||||||
responseStream << "</head>\n";
|
responseStream << "</head>\n";
|
||||||
responseStream << "<body>\n";
|
responseStream << "<body>\n";
|
||||||
responseStream << "<div class=\"versionstring dev-info\">\n";
|
responseStream << "<div class=\"versionstring dev-info\">\n";
|
||||||
responseStream << "\t<p class=\"grd_small\">Login Server in Entwicklung</p>\n";
|
responseStream << "\t<p class=\"grd_small\">Login Server in Entwicklung</p>\n";
|
||||||
responseStream << "\t<p class=\"grd_small\">Alpha 0.5.1</p>\n";
|
responseStream << "\t<p class=\"grd_small\">Alpha 0.6.1</p>\n";
|
||||||
responseStream << "</div>\n";
|
responseStream << "</div>\n";
|
||||||
responseStream << "<!--<nav class=\"grd-left-bar expanded\" data-topbar role=\"navigation\">\n";
|
responseStream << "<!--<nav class=\"grd-left-bar expanded\" data-topbar role=\"navigation\">\n";
|
||||||
responseStream << "\t<div class=\"grd-left-bar-section\">\n";
|
responseStream << "\t<div class=\"grd-left-bar-section\">\n";
|
||||||
responseStream << "\t\t<ul class=\"grd-no-style\">\n";
|
responseStream << "\t\t<ul class=\"grd-no-style\">\n";
|
||||||
responseStream << "\t\t <li><a href=\"";
|
responseStream << "\t\t <li><a href=\"";
|
||||||
#line 58 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
|
#line 20 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
|
||||||
responseStream << ( ServerConfig::g_php_serverPath );
|
responseStream << ( ServerConfig::g_php_serverPath );
|
||||||
responseStream << "\" class=\"grd-nav-bn\">Startseite</a>\n";
|
responseStream << "\" class=\"grd-nav-bn\">Startseite</a>\n";
|
||||||
responseStream << "\t\t <li><a href=\"./account/logout\" class=\"grd-nav-bn\">Logout</a></li>\n";
|
responseStream << "\t\t <li><a href=\"./account/logout\" class=\"grd-nav-bn\">Logout</a></li>\n";
|
||||||
@ -160,47 +129,81 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::
|
|||||||
responseStream << "</nav>-->";
|
responseStream << "</nav>-->";
|
||||||
// end include header.cpsp
|
// end include header.cpsp
|
||||||
responseStream << "\n";
|
responseStream << "\n";
|
||||||
responseStream << "<form method=\"POST\">\n";
|
responseStream << "<div class=\"authentication-theme auth-style_1\">\n";
|
||||||
responseStream << "\t<div class=\"grd_container\">\n";
|
responseStream << " <div class=\"row\">\n";
|
||||||
responseStream << "\t\t<h1>Login</h1>\n";
|
responseStream << " <div class=\"col-12 logo-section\">\n";
|
||||||
responseStream << "\t\t";
|
responseStream << " <a href=\"../../index.html\" class=\"logo\">\n";
|
||||||
#line 75 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
responseStream << " <img src=\"";
|
||||||
|
#line 83 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||||
|
responseStream << ( ServerConfig::g_php_serverPath );
|
||||||
|
responseStream << "img/logo_schrift.webp\" alt=\"logo\" />\n";
|
||||||
|
responseStream << " </a>\n";
|
||||||
|
responseStream << " </div>\n";
|
||||||
|
responseStream << " </div>\n";
|
||||||
|
responseStream << " <div class=\"row\">\n";
|
||||||
|
responseStream << " <div class=\"col-lg-5 col-md-7 col-sm-9 col-11 mx-auto\">\n";
|
||||||
|
responseStream << " <div class=\"grid\">\n";
|
||||||
|
responseStream << "\t\t ";
|
||||||
|
#line 90 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||||
responseStream << ( getErrorsHtml() );
|
responseStream << ( getErrorsHtml() );
|
||||||
responseStream << "\n";
|
responseStream << "\n";
|
||||||
responseStream << "\t\t<fieldset class=\"grd_container_small\">\n";
|
responseStream << " <div class=\"grid-body\">\n";
|
||||||
responseStream << "\t\t\t<legend>Login</legend>\n";
|
responseStream << " <form action=\"\" method=\"POST\">\n";
|
||||||
responseStream << "\t\t\t<p>";
|
responseStream << " <div class=\"row pull-right-row\">\n";
|
||||||
#line 78 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
responseStream << " <div class=\"equel-grid pull-right\">\n";
|
||||||
responseStream << ( gettext("Please give you email and password for login.") );
|
responseStream << " <div class=\"grid-body-small text-center\">\n";
|
||||||
|
responseStream << " <button id=\"flag-england\" name=\"lang\" value=\"en\" title=\"English\" type=\"submit\" class=\"btn btn-outline-secondary flag-btn\">\n";
|
||||||
|
responseStream << " <span class=\"flag-england\"></span>\n";
|
||||||
|
responseStream << " </button>\n";
|
||||||
|
responseStream << " </div>\n";
|
||||||
|
responseStream << " </div>\n";
|
||||||
|
responseStream << " <div class=\"equel-grid pull-right\">\n";
|
||||||
|
responseStream << " <div class=\"grid-body-small text-center\">\n";
|
||||||
|
responseStream << " <button id=\"flag-germany\" name=\"lang\" value=\"de\" title=\"Deutsch\" type=\"submit\" class=\"btn btn-secondary disabled flag-btn\" disabled>\n";
|
||||||
|
responseStream << " <span class=\"flag-germany\"></span>\n";
|
||||||
|
responseStream << " </button>\n";
|
||||||
|
responseStream << " </div>\n";
|
||||||
|
responseStream << " </div>\n";
|
||||||
|
responseStream << " </div>\n";
|
||||||
|
responseStream << " <div class=\"row display-block\">\n";
|
||||||
|
responseStream << " <div class=\"col-lg-7 col-md-8 col-sm-9 col-12 mx-auto form-wrapper\">\n";
|
||||||
|
responseStream << " <div class=\"form-group input-rounded\">\n";
|
||||||
|
responseStream << " <input type=\"text\" class=\"form-control\" name=\"login-email\" placeholder=\"";
|
||||||
|
#line 112 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||||
|
responseStream << ( langCatalog->gettext("E-Mail") );
|
||||||
|
responseStream << "\" />\n";
|
||||||
|
responseStream << " </div>\n";
|
||||||
|
responseStream << " <div class=\"form-group input-rounded\">\n";
|
||||||
|
responseStream << " <input type=\"password\" class=\"form-control\" name=\"login-password\" placeholder=\"";
|
||||||
|
#line 115 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||||
|
responseStream << ( langCatalog->gettext("Password") );
|
||||||
|
responseStream << "\" />\n";
|
||||||
|
responseStream << " </div>\n";
|
||||||
|
responseStream << " <button type=\"submit\" name=\"submit\" class=\"btn btn-primary btn-block\">";
|
||||||
|
#line 117 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||||
|
responseStream << ( langCatalog->gettext(" Login ") );
|
||||||
|
responseStream << "</button>\n";
|
||||||
|
responseStream << " <div class=\"signup-link\">\n";
|
||||||
|
responseStream << " <p>";
|
||||||
|
#line 119 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||||
|
responseStream << ( langCatalog->gettext("You haven't any account yet? Please follow the link to create one.") );
|
||||||
responseStream << "</p>\n";
|
responseStream << "</p>\n";
|
||||||
responseStream << "\t\t\t<p class=\"grd_small\">\n";
|
responseStream << " <a href=\"https://gradido.com\">";
|
||||||
responseStream << "\t\t\t\t<label for=\"login-email\">";
|
#line 120 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||||
#line 80 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
responseStream << ( langCatalog->gettext("Create New Account") );
|
||||||
responseStream << ( gettext("E-Mail") );
|
|
||||||
responseStream << "</label>\n";
|
|
||||||
responseStream << "\t\t\t\t<input id=\"login-email\" type=\"text\" name=\"login-email\"/>\n";
|
|
||||||
responseStream << "\t\t\t</p>\n";
|
|
||||||
responseStream << "\t\t\t<p class=\"grd_small\">\n";
|
|
||||||
responseStream << "\t\t\t\t<label for=\"login-password\">";
|
|
||||||
#line 84 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
|
||||||
responseStream << ( gettext("Password") );
|
|
||||||
responseStream << "</label>\n";
|
|
||||||
responseStream << "\t\t\t\t<input id=\"login-password\" type=\"password\" name=\"login-password\"/>\n";
|
|
||||||
responseStream << "\t\t\t</p>\n";
|
|
||||||
responseStream << "\t\t\t\n";
|
|
||||||
responseStream << "\t\t</fieldset>\n";
|
|
||||||
responseStream << "\t\t<input class=\"grd-form-bn grd-form-bn-succeed grd_clickable\" type=\"submit\" name=\"submit\" value=\"Einloggen\">\n";
|
|
||||||
responseStream << "\t\t<p>";
|
|
||||||
#line 90 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
|
||||||
responseStream << ( gettext("You haven't any account yet? Please follow the link to create one.") );
|
|
||||||
responseStream << "</p>\n";
|
|
||||||
responseStream << "\t\t<a href=\"https://gradido.com\">";
|
|
||||||
#line 91 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
|
||||||
responseStream << ( gettext("Create New Account") );
|
|
||||||
responseStream << "</a>\n";
|
responseStream << "</a>\n";
|
||||||
responseStream << "\t</div>\n";
|
responseStream << " </div>\n";
|
||||||
responseStream << "\t\n";
|
responseStream << " </div>\n";
|
||||||
responseStream << "</form>\n";
|
responseStream << " </div>\n";
|
||||||
|
responseStream << " </form>\n";
|
||||||
|
responseStream << " </div>\n";
|
||||||
|
responseStream << " </div>\n";
|
||||||
|
responseStream << " </div>\n";
|
||||||
|
responseStream << " </div>\n";
|
||||||
|
responseStream << " <div class=\"auth_footer\">\n";
|
||||||
|
responseStream << " <p class=\"text-muted text-center\">© Ripple Inc 2019</p>\n";
|
||||||
|
responseStream << " </div>\n";
|
||||||
|
responseStream << " </div>\n";
|
||||||
// begin include footer.cpsp
|
// begin include footer.cpsp
|
||||||
responseStream << "\t<div class=\"grd-time-used dev-info\">\n";
|
responseStream << "\t<div class=\"grd-time-used dev-info\">\n";
|
||||||
responseStream << "\t\t\t";
|
responseStream << "\t\t\t";
|
||||||
@ -208,6 +211,10 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::
|
|||||||
responseStream << ( mTimeProfiler.string() );
|
responseStream << ( mTimeProfiler.string() );
|
||||||
responseStream << "\n";
|
responseStream << "\n";
|
||||||
responseStream << "\t</div>\n";
|
responseStream << "\t</div>\n";
|
||||||
|
responseStream << "\t<script src=\"";
|
||||||
|
#line 4 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\footer.cpsp"
|
||||||
|
responseStream << ( ServerConfig::g_php_serverPath );
|
||||||
|
responseStream << "js/core.js\"></script>\n";
|
||||||
responseStream << "</body>\n";
|
responseStream << "</body>\n";
|
||||||
responseStream << "</html>";
|
responseStream << "</html>";
|
||||||
// end include footer.cpsp
|
// end include footer.cpsp
|
||||||
|
|||||||
@ -1,2 +1,33 @@
|
|||||||
#include "PageRequestMessagedHandler.h"
|
#include "PageRequestMessagedHandler.h"
|
||||||
|
|
||||||
|
#include "Poco/Net/HTTPServerRequest.h"
|
||||||
|
|
||||||
|
const Poco::RegularExpression PageRequestMessagedHandler::mDetectLanguageGET("^/(?:[a-zA-Z0-9_-]*)/(en|de)");
|
||||||
|
|
||||||
|
Languages PageRequestMessagedHandler::chooseLanguage(Poco::Net::HTTPServerRequest& request, std::string post_lang /* = std::string("") */)
|
||||||
|
{
|
||||||
|
|
||||||
|
// from Form
|
||||||
|
Languages lang = LanguageManager::languageFromString(post_lang);
|
||||||
|
if (lang == LANG_NULL) {
|
||||||
|
// from URL
|
||||||
|
std::string uri = request.getURI();
|
||||||
|
std::string lang_str;
|
||||||
|
mDetectLanguageGET.extract(uri, lang_str);
|
||||||
|
if (lang_str.size() > 0) {
|
||||||
|
lang = LanguageManager::languageFromString(lang_str);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// from Header
|
||||||
|
/*
|
||||||
|
$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
|
||||||
|
$acceptLang = ['fr', 'it', 'en'];
|
||||||
|
$lang = in_array($lang, $acceptLang) ? $lang : 'en';
|
||||||
|
*/
|
||||||
|
std::string accept_languages = request.get("HTTP_ACCEPT_LANGUAGE", "");
|
||||||
|
printf("accept header: %s\n", accept_languages.data());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return lang;
|
||||||
|
}
|
||||||
@ -1,12 +1,14 @@
|
|||||||
#ifndef PAGE_REQUEST_MESSAGE_HANDLER_INCLUDED
|
#ifndef PAGE_REQUEST_MESSAGE_HANDLER_INCLUDED
|
||||||
#define PAGE_REQUEST_MESSAGE_HANDLER_INCLUDED
|
#define PAGE_REQUEST_MESSAGE_HANDLER_INCLUDED
|
||||||
|
|
||||||
//#include "../model/Session.h"
|
#include "../model/Session.h"
|
||||||
#include "../lib/ErrorList.h"
|
#include "../lib/ErrorList.h"
|
||||||
#include "../lib/Profiler.h"
|
#include "../lib/Profiler.h"
|
||||||
|
|
||||||
|
#include "../SingletonManager/LanguageManager.h"
|
||||||
|
|
||||||
#include "Poco/Net/HTTPRequestHandler.h"
|
#include "Poco/Net/HTTPRequestHandler.h"
|
||||||
|
#include "Poco/RegularExpression.h"
|
||||||
|
|
||||||
|
|
||||||
class PageRequestMessagedHandler : public Poco::Net::HTTPRequestHandler, public ErrorList
|
class PageRequestMessagedHandler : public Poco::Net::HTTPRequestHandler, public ErrorList
|
||||||
{
|
{
|
||||||
@ -17,6 +19,11 @@ public:
|
|||||||
//Poco::Net::HTTPRequestHandler* createRequestHandler(const Poco::Net::HTTPServerRequest& request);
|
//Poco::Net::HTTPRequestHandler* createRequestHandler(const Poco::Net::HTTPServerRequest& request);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
static const Poco::RegularExpression mDetectLanguageGET;
|
||||||
|
|
||||||
|
inline const char* gettext(Session* session, const char* text) { if (!session || !session->getLanguageCatalog()) return text; return session->getLanguageCatalog()->gettext(text); }
|
||||||
|
Languages chooseLanguage(Poco::Net::HTTPServerRequest& request, std::string post_lang = std::string(""));
|
||||||
|
|
||||||
Profiler mTimeProfiler;
|
Profiler mTimeProfiler;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -82,7 +82,7 @@ void PassphrasePage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::
|
|||||||
responseStream << "<html>\n";
|
responseStream << "<html>\n";
|
||||||
responseStream << "<head>\n";
|
responseStream << "<head>\n";
|
||||||
responseStream << "<meta charset=\"UTF-8\">\n";
|
responseStream << "<meta charset=\"UTF-8\">\n";
|
||||||
responseStream << "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n";
|
responseStream << "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1, shrink-to-fit=no\">\n";
|
||||||
responseStream << "<title>Gradido Login Server: ";
|
responseStream << "<title>Gradido Login Server: ";
|
||||||
#line 9 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
|
#line 9 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
|
||||||
responseStream << ( pageName );
|
responseStream << ( pageName );
|
||||||
@ -133,7 +133,7 @@ void PassphrasePage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::
|
|||||||
responseStream << "<body>\n";
|
responseStream << "<body>\n";
|
||||||
responseStream << "<div class=\"versionstring dev-info\">\n";
|
responseStream << "<div class=\"versionstring dev-info\">\n";
|
||||||
responseStream << "\t<p class=\"grd_small\">Login Server in Entwicklung</p>\n";
|
responseStream << "\t<p class=\"grd_small\">Login Server in Entwicklung</p>\n";
|
||||||
responseStream << "\t<p class=\"grd_small\">Alpha 0.5.1</p>\n";
|
responseStream << "\t<p class=\"grd_small\">Alpha 0.6.0</p>\n";
|
||||||
responseStream << "</div>\n";
|
responseStream << "</div>\n";
|
||||||
responseStream << "<!--<nav class=\"grd-left-bar expanded\" data-topbar role=\"navigation\">\n";
|
responseStream << "<!--<nav class=\"grd-left-bar expanded\" data-topbar role=\"navigation\">\n";
|
||||||
responseStream << "\t<div class=\"grd-left-bar-section\">\n";
|
responseStream << "\t<div class=\"grd-left-bar-section\">\n";
|
||||||
|
|||||||
@ -65,7 +65,7 @@ void RegisterPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Ne
|
|||||||
responseStream << "<html>\n";
|
responseStream << "<html>\n";
|
||||||
responseStream << "<head>\n";
|
responseStream << "<head>\n";
|
||||||
responseStream << "<meta charset=\"UTF-8\">\n";
|
responseStream << "<meta charset=\"UTF-8\">\n";
|
||||||
responseStream << "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n";
|
responseStream << "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1, shrink-to-fit=no\">\n";
|
||||||
responseStream << "<title>Gradido Login Server: ";
|
responseStream << "<title>Gradido Login Server: ";
|
||||||
#line 9 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
|
#line 9 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
|
||||||
responseStream << ( pageName );
|
responseStream << ( pageName );
|
||||||
@ -116,7 +116,7 @@ void RegisterPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Ne
|
|||||||
responseStream << "<body>\n";
|
responseStream << "<body>\n";
|
||||||
responseStream << "<div class=\"versionstring dev-info\">\n";
|
responseStream << "<div class=\"versionstring dev-info\">\n";
|
||||||
responseStream << "\t<p class=\"grd_small\">Login Server in Entwicklung</p>\n";
|
responseStream << "\t<p class=\"grd_small\">Login Server in Entwicklung</p>\n";
|
||||||
responseStream << "\t<p class=\"grd_small\">Alpha 0.5.1</p>\n";
|
responseStream << "\t<p class=\"grd_small\">Alpha 0.6.0</p>\n";
|
||||||
responseStream << "</div>\n";
|
responseStream << "</div>\n";
|
||||||
responseStream << "<!--<nav class=\"grd-left-bar expanded\" data-topbar role=\"navigation\">\n";
|
responseStream << "<!--<nav class=\"grd-left-bar expanded\" data-topbar role=\"navigation\">\n";
|
||||||
responseStream << "\t<div class=\"grd-left-bar-section\">\n";
|
responseStream << "\t<div class=\"grd-left-bar-section\">\n";
|
||||||
|
|||||||
@ -100,7 +100,7 @@ void SaveKeysPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Ne
|
|||||||
responseStream << "<html>\n";
|
responseStream << "<html>\n";
|
||||||
responseStream << "<head>\n";
|
responseStream << "<head>\n";
|
||||||
responseStream << "<meta charset=\"UTF-8\">\n";
|
responseStream << "<meta charset=\"UTF-8\">\n";
|
||||||
responseStream << "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n";
|
responseStream << "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1, shrink-to-fit=no\">\n";
|
||||||
responseStream << "<title>Gradido Login Server: ";
|
responseStream << "<title>Gradido Login Server: ";
|
||||||
#line 9 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
|
#line 9 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
|
||||||
responseStream << ( pageName );
|
responseStream << ( pageName );
|
||||||
@ -151,7 +151,7 @@ void SaveKeysPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Ne
|
|||||||
responseStream << "<body>\n";
|
responseStream << "<body>\n";
|
||||||
responseStream << "<div class=\"versionstring dev-info\">\n";
|
responseStream << "<div class=\"versionstring dev-info\">\n";
|
||||||
responseStream << "\t<p class=\"grd_small\">Login Server in Entwicklung</p>\n";
|
responseStream << "\t<p class=\"grd_small\">Login Server in Entwicklung</p>\n";
|
||||||
responseStream << "\t<p class=\"grd_small\">Alpha 0.5.1</p>\n";
|
responseStream << "\t<p class=\"grd_small\">Alpha 0.6.0</p>\n";
|
||||||
responseStream << "</div>\n";
|
responseStream << "</div>\n";
|
||||||
responseStream << "<!--<nav class=\"grd-left-bar expanded\" data-topbar role=\"navigation\">\n";
|
responseStream << "<!--<nav class=\"grd-left-bar expanded\" data-topbar role=\"navigation\">\n";
|
||||||
responseStream << "\t<div class=\"grd-left-bar-section\">\n";
|
responseStream << "\t<div class=\"grd-left-bar-section\">\n";
|
||||||
|
|||||||
@ -5,13 +5,18 @@
|
|||||||
#include "PageRequestMessagedHandler.h"
|
#include "PageRequestMessagedHandler.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class SessionHTTPRequestHandler : public PageRequestMessagedHandler
|
class SessionHTTPRequestHandler : public PageRequestMessagedHandler
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
SessionHTTPRequestHandler(Session* session) : mSession(session) {}
|
SessionHTTPRequestHandler(Session* session) : mSession(session) {}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
Session* mSession;
|
Session* mSession;
|
||||||
|
|
||||||
|
|
||||||
|
inline const char* gettext(const char* text) { if (!mSession || !mSession->getLanguageCatalog()) return text; return mSession->getLanguageCatalog()->gettext(text); }
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -70,7 +70,7 @@ void UpdateUserPasswordPage::handleRequest(Poco::Net::HTTPServerRequest& request
|
|||||||
responseStream << "<html>\n";
|
responseStream << "<html>\n";
|
||||||
responseStream << "<head>\n";
|
responseStream << "<head>\n";
|
||||||
responseStream << "<meta charset=\"UTF-8\">\n";
|
responseStream << "<meta charset=\"UTF-8\">\n";
|
||||||
responseStream << "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n";
|
responseStream << "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1, shrink-to-fit=no\">\n";
|
||||||
responseStream << "<title>Gradido Login Server: ";
|
responseStream << "<title>Gradido Login Server: ";
|
||||||
#line 9 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
|
#line 9 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
|
||||||
responseStream << ( pageName );
|
responseStream << ( pageName );
|
||||||
@ -121,7 +121,7 @@ void UpdateUserPasswordPage::handleRequest(Poco::Net::HTTPServerRequest& request
|
|||||||
responseStream << "<body>\n";
|
responseStream << "<body>\n";
|
||||||
responseStream << "<div class=\"versionstring dev-info\">\n";
|
responseStream << "<div class=\"versionstring dev-info\">\n";
|
||||||
responseStream << "\t<p class=\"grd_small\">Login Server in Entwicklung</p>\n";
|
responseStream << "\t<p class=\"grd_small\">Login Server in Entwicklung</p>\n";
|
||||||
responseStream << "\t<p class=\"grd_small\">Alpha 0.5.1</p>\n";
|
responseStream << "\t<p class=\"grd_small\">Alpha 0.6.0</p>\n";
|
||||||
responseStream << "</div>\n";
|
responseStream << "</div>\n";
|
||||||
responseStream << "<!--<nav class=\"grd-left-bar expanded\" data-topbar role=\"navigation\">\n";
|
responseStream << "<!--<nav class=\"grd-left-bar expanded\" data-topbar role=\"navigation\">\n";
|
||||||
responseStream << "\t<div class=\"grd-left-bar-section\">\n";
|
responseStream << "\t<div class=\"grd-left-bar-section\">\n";
|
||||||
|
|||||||
@ -1,9 +1,24 @@
|
|||||||
#include "LanguageManager.h"
|
#include "LanguageManager.h"
|
||||||
|
|
||||||
|
#include "Poco/Path.h"
|
||||||
|
#include "Poco/File.h"
|
||||||
|
|
||||||
|
#include <fstream>
|
||||||
|
|
||||||
LanguageCatalog::LanguageCatalog(Languages lang)
|
LanguageCatalog::LanguageCatalog(Languages lang)
|
||||||
: mReferenceCount(1), mCatalog(nullptr), mThisLanguage(lang)
|
: mReferenceCount(1), mCatalog(nullptr), mThisLanguage(lang)
|
||||||
{
|
{
|
||||||
// TODO: Catalog init code
|
// TODO: Catalog init code
|
||||||
|
std::string path = Poco::Path::config() + "grd_login/LOCALE/" + LanguageManager::filenameForLanguage(lang) + ".po";
|
||||||
|
auto file = Poco::File(path);
|
||||||
|
if (file.exists()) {
|
||||||
|
|
||||||
|
std::ifstream ifs(path + LanguageManager::filenameForLanguage(lang) + ".po");
|
||||||
|
std::string po_file{ std::istreambuf_iterator<char>{ifs}, std::istreambuf_iterator<char>() };
|
||||||
|
|
||||||
|
mCatalog = new spirit_po::default_catalog(spirit_po::default_catalog::from_range(po_file));
|
||||||
|
}
|
||||||
|
//spirit_po::default_catalog cat{ spirit_po::default_catalog::from_range(po_file) };
|
||||||
}
|
}
|
||||||
|
|
||||||
LanguageCatalog::~LanguageCatalog()
|
LanguageCatalog::~LanguageCatalog()
|
||||||
@ -71,13 +86,34 @@ void LanguageManager::returnCatalog(LanguageCatalog* catalog)
|
|||||||
unlock();
|
unlock();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string LanguageManager::filenameForLanguage(Languages lang)
|
||||||
|
{
|
||||||
|
switch (lang) {
|
||||||
|
case LANG_DE: return "de_DE";
|
||||||
|
case LANG_EN: return "en_GB";
|
||||||
|
}
|
||||||
|
return "en_GB";
|
||||||
|
}
|
||||||
|
|
||||||
|
Languages LanguageManager::languageFromString(const std::string& language_key)
|
||||||
|
{
|
||||||
|
if (language_key == "de") {
|
||||||
|
return LANG_DE;
|
||||||
|
}
|
||||||
|
if (language_key == "en") {
|
||||||
|
return LANG_EN;
|
||||||
|
}
|
||||||
|
return LANG_NULL;
|
||||||
|
}
|
||||||
|
|
||||||
Poco::AutoPtr<LanguageCatalog> LanguageManager::getFreeCatalog(Languages lang)
|
Poco::AutoPtr<LanguageCatalog> LanguageManager::getFreeCatalog(Languages lang)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (lang >= LANG_COUNT) {
|
if (lang >= LANG_COUNT) {
|
||||||
//printf("[LanguageManager::getFreeCatalog] invalid language: %d\n", lang);
|
//printf("[LanguageManager::getFreeCatalog] invalid language: %d\n", lang);
|
||||||
mLogging.error("[LanguageManager::getFreeCatalog] invalid language: %d", lang);
|
mLogging.information("[LanguageManager::getFreeCatalog] invalid language: %d, set to default (en_GB)", (int)lang);
|
||||||
return nullptr;
|
//return nullptr;
|
||||||
|
lang = LANG_EN;
|
||||||
}
|
}
|
||||||
lock();
|
lock();
|
||||||
if (mFreeCatalogs[lang].size() > 0) {
|
if (mFreeCatalogs[lang].size() > 0) {
|
||||||
|
|||||||
@ -21,7 +21,8 @@
|
|||||||
enum Languages {
|
enum Languages {
|
||||||
LANG_DE,
|
LANG_DE,
|
||||||
LANG_EN,
|
LANG_EN,
|
||||||
LANG_COUNT
|
LANG_COUNT,
|
||||||
|
LANG_NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
class LanguageCatalog : protected UniLib::lib::MultithreadContainer
|
class LanguageCatalog : protected UniLib::lib::MultithreadContainer
|
||||||
@ -37,7 +38,7 @@ public:
|
|||||||
|
|
||||||
// catalog overload api
|
// catalog overload api
|
||||||
|
|
||||||
inline const char * gettext(const char * msgid) { return mCatalog->gettext(msgid); }
|
inline const char * gettext(const char * msgid) { if (!mCatalog) return msgid; return mCatalog->gettext(msgid); }
|
||||||
inline const char * ngettext(const char * msgid, const char * msgid_plural, spirit_po::uint plural) {
|
inline const char * ngettext(const char * msgid, const char * msgid_plural, spirit_po::uint plural) {
|
||||||
return mCatalog->ngettext(msgid, msgid_plural, plural);
|
return mCatalog->ngettext(msgid, msgid_plural, plural);
|
||||||
}
|
}
|
||||||
@ -48,7 +49,7 @@ public:
|
|||||||
return mCatalog->npgettext(msgctxt, msgid, msgid_plural, plural);
|
return mCatalog->npgettext(msgctxt, msgid, msgid_plural, plural);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline std::string gettext_str(const std::string & msgid) { return mCatalog->gettext_str(msgid); }
|
inline std::string gettext_str(const std::string & msgid) { if (!mCatalog) return msgid; return mCatalog->gettext_str(msgid); }
|
||||||
inline std::string ngettext_str(const std::string & msgid, const std::string & msgid_plural, spirit_po::uint plural) {
|
inline std::string ngettext_str(const std::string & msgid, const std::string & msgid_plural, spirit_po::uint plural) {
|
||||||
return mCatalog->ngettext_str(msgid, msgid_plural, plural);
|
return mCatalog->ngettext_str(msgid, msgid_plural, plural);
|
||||||
}
|
}
|
||||||
@ -77,6 +78,8 @@ public:
|
|||||||
|
|
||||||
Poco::AutoPtr<LanguageCatalog> getFreeCatalog(Languages lang);
|
Poco::AutoPtr<LanguageCatalog> getFreeCatalog(Languages lang);
|
||||||
|
|
||||||
|
static std::string filenameForLanguage(Languages lang);
|
||||||
|
static Languages languageFromString(const std::string& language_key);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
LanguageManager();
|
LanguageManager();
|
||||||
|
|||||||
@ -127,15 +127,15 @@ bool Session::createUser(const std::string& first_name, const std::string& last_
|
|||||||
Profiler usedTime;
|
Profiler usedTime;
|
||||||
auto sm = SessionManager::getInstance();
|
auto sm = SessionManager::getInstance();
|
||||||
if (!sm->isValid(first_name, VALIDATE_NAME)) {
|
if (!sm->isValid(first_name, VALIDATE_NAME)) {
|
||||||
addError(new Error("Vorname", "Bitte gebe einen Namen an. Mindestens 3 Zeichen, keines folgender Zeichen <>&;"));
|
addError(new Error(gettext("Vorname"), gettext("Bitte gebe einen Namen an. Mindestens 3 Zeichen, keines folgender Zeichen <>&;")));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (!sm->isValid(last_name, VALIDATE_NAME)) {
|
if (!sm->isValid(last_name, VALIDATE_NAME)) {
|
||||||
addError(new Error("Nachname", "Bitte gebe einen Namen an. Mindestens 3 Zeichen, keines folgender Zeichen <>&;"));
|
addError(new Error(gettext("Nachname"), gettext("Bitte gebe einen Namen an. Mindestens 3 Zeichen, keines folgender Zeichen <>&;")));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (!sm->isValid(email, VALIDATE_EMAIL)) {
|
if (!sm->isValid(email, VALIDATE_EMAIL)) {
|
||||||
addError(new Error("E-Mail", "Bitte gebe eine gültige E-Mail Adresse an."));
|
addError(new Error(gettext("E-Mail"), gettext("Bitte gebe eine gültige E-Mail Adresse an.")));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (!sm->checkPwdValidation(password, this)) {
|
if (!sm->checkPwdValidation(password, this)) {
|
||||||
@ -159,7 +159,7 @@ bool Session::createUser(const std::string& first_name, const std::string& last_
|
|||||||
select << "SELECT email from users where email = ?;", useRef(email);
|
select << "SELECT email from users where email = ?;", useRef(email);
|
||||||
try {
|
try {
|
||||||
if (select.execute() > 0) {
|
if (select.execute() > 0) {
|
||||||
addError(new Error("E-Mail", "Für diese E-Mail Adresse gibt es bereits einen Account"));
|
addError(new Error(gettext("E-Mail"), gettext("Für diese E-Mail Adresse gibt es bereits einen Account")));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -192,12 +192,13 @@ bool Session::createUser(const std::string& first_name, const std::string& last_
|
|||||||
writeEmailVerification->setFinishCommand(new SessionStateUpdateCommand(SESSION_STATE_EMAIL_VERIFICATION_WRITTEN, this));
|
writeEmailVerification->setFinishCommand(new SessionStateUpdateCommand(SESSION_STATE_EMAIL_VERIFICATION_WRITTEN, this));
|
||||||
writeEmailVerification->scheduleTask(writeEmailVerification);
|
writeEmailVerification->scheduleTask(writeEmailVerification);
|
||||||
|
|
||||||
printf("LastName: %s\n", last_name.data());
|
/*printf("LastName: %s\n", last_name.data());
|
||||||
for (int i = 0; i < last_name.size(); i++) {
|
for (int i = 0; i < last_name.size(); i++) {
|
||||||
char c = last_name.data()[i];
|
char c = last_name.data()[i];
|
||||||
printf("%d ", c);
|
//printf("%d ", c);
|
||||||
}
|
}
|
||||||
printf("\n\n");
|
//printf("\n\n");
|
||||||
|
*/
|
||||||
|
|
||||||
// depends on writeUser because need user_id, write email verification into db
|
// depends on writeUser because need user_id, write email verification into db
|
||||||
auto message = new Poco::Net::MailMessage;
|
auto message = new Poco::Net::MailMessage;
|
||||||
@ -206,7 +207,7 @@ bool Session::createUser(const std::string& first_name, const std::string& last_
|
|||||||
message->setContentType(mt);
|
message->setContentType(mt);
|
||||||
|
|
||||||
message->addRecipient(Poco::Net::MailRecipient(Poco::Net::MailRecipient::PRIMARY_RECIPIENT, email));
|
message->addRecipient(Poco::Net::MailRecipient(Poco::Net::MailRecipient::PRIMARY_RECIPIENT, email));
|
||||||
message->setSubject("Gradido: E-Mail Verification");
|
message->setSubject(gettext("Gradido: E-Mail Verification"));
|
||||||
std::stringstream ss;
|
std::stringstream ss;
|
||||||
ss << "Hallo " << first_name << " " << last_name << "," << std::endl << std::endl;
|
ss << "Hallo " << first_name << " " << last_name << "," << std::endl << std::endl;
|
||||||
ss << "Du oder jemand anderes hat sich soeben mit dieser E-Mail Adresse bei Gradido registriert. " << std::endl;
|
ss << "Du oder jemand anderes hat sich soeben mit dieser E-Mail Adresse bei Gradido registriert. " << std::endl;
|
||||||
@ -276,14 +277,14 @@ bool Session::updateEmailVerification(Poco::UInt64 emailVerificationCode)
|
|||||||
em->sendErrorsAsEmail();
|
em->sendErrorsAsEmail();
|
||||||
}
|
}
|
||||||
if (!updated_rows) {
|
if (!updated_rows) {
|
||||||
addError(new Error("E-Mail Verification", "Der Code stimmt nicht, bitte überprüfe ihn nochmal oder registriere dich erneut oder wende dich an den Server-Admin"));
|
addError(new Error(gettext("E-Mail Verification"), gettext("Der Code stimmt nicht, bitte überprüfe ihn nochmal oder registriere dich erneut oder wende dich an den Server-Admin")));
|
||||||
printf("[%s] time: %s\n", funcName, usedTime.string().data());
|
printf("[%s] time: %s\n", funcName, usedTime.string().data());
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
addError(new Error("E-Mail Verification", "Falscher Code für aktiven Login"));
|
addError(new Error(gettext("E-Mail Verification"), gettext("Falscher Code für aktiven Login")));
|
||||||
printf("[%s] time: %s\n", funcName, usedTime.string().data());
|
printf("[%s] time: %s\n", funcName, usedTime.string().data());
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -416,12 +417,34 @@ bool Session::deleteUser()
|
|||||||
bResult = mSessionUser->deleteFromDB();
|
bResult = mSessionUser->deleteFromDB();
|
||||||
}
|
}
|
||||||
if(!bResult) {
|
if(!bResult) {
|
||||||
addError(new Error("Benutzer", "Fehler beim Löschen des Accounts. Bitte logge dich erneut ein und versuche es nochmal."));
|
addError(new Error(gettext("Benutzer"), gettext("Fehler beim Löschen des Accounts. Bitte logge dich erneut ein und versuche es nochmal.")));
|
||||||
}
|
}
|
||||||
|
|
||||||
return bResult;
|
return bResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Session::setLanguage(Languages lang)
|
||||||
|
{
|
||||||
|
lock();
|
||||||
|
if (mLanguageCatalog.isNull() || mLanguageCatalog->getLanguage() != lang) {
|
||||||
|
auto lm = LanguageManager::getInstance();
|
||||||
|
mLanguageCatalog = lm->getFreeCatalog(lang);
|
||||||
|
}
|
||||||
|
unlock();
|
||||||
|
}
|
||||||
|
|
||||||
|
Languages Session::getLanguage()
|
||||||
|
{
|
||||||
|
Languages lang = LANG_NULL;
|
||||||
|
lock();
|
||||||
|
if (!mLanguageCatalog.isNull()) {
|
||||||
|
lang = mLanguageCatalog->getLanguage();
|
||||||
|
}
|
||||||
|
unlock();
|
||||||
|
return lang;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
SESSION_STATE_CRYPTO_KEY_GENERATED,
|
SESSION_STATE_CRYPTO_KEY_GENERATED,
|
||||||
SESSION_STATE_USER_WRITTEN,
|
SESSION_STATE_USER_WRITTEN,
|
||||||
@ -532,7 +555,7 @@ bool Session::loadFromEmailVerificationCode(Poco::UInt64 emailVerificationCode)
|
|||||||
em->sendErrorsAsEmail();
|
em->sendErrorsAsEmail();
|
||||||
}
|
}
|
||||||
if (rowCount < 1) {
|
if (rowCount < 1) {
|
||||||
addError(new Error("E-Mail Verification", "Konnte keinen passenden Account finden."));
|
addError(new Error(gettext("E-Mail Verification"), gettext("Konnte keinen passenden Account finden.")));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -645,7 +668,7 @@ bool Session::generateKeys(bool savePrivkey, bool savePassphrase)
|
|||||||
validUser = false;
|
validUser = false;
|
||||||
}
|
}
|
||||||
if (!validUser) {
|
if (!validUser) {
|
||||||
addError(new Error("Benutzer", "Kein gültiger Benutzer, bitte logge dich erneut ein."));
|
addError(new Error(gettext("Benutzer"), gettext("Kein gültiger Benutzer, bitte logge dich erneut ein.")));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// delete passphrase after all went well
|
// delete passphrase after all went well
|
||||||
|
|||||||
@ -16,6 +16,8 @@
|
|||||||
#include "../lib/MultithreadContainer.h"
|
#include "../lib/MultithreadContainer.h"
|
||||||
#include "../tasks/ProcessingTransaction.h"
|
#include "../tasks/ProcessingTransaction.h"
|
||||||
|
|
||||||
|
#include "../SingletonManager/LanguageManager.h"
|
||||||
|
|
||||||
#include "Poco/Thread.h"
|
#include "Poco/Thread.h"
|
||||||
#include "Poco/Types.h"
|
#include "Poco/Types.h"
|
||||||
#include "Poco/DateTime.h"
|
#include "Poco/DateTime.h"
|
||||||
@ -105,6 +107,12 @@ public:
|
|||||||
void finalizeTransaction(bool sign, bool reject);
|
void finalizeTransaction(bool sign, bool reject);
|
||||||
inline size_t getProcessingTransactionCount() { lock(); auto ret = mProcessingTransactions.size(); unlock(); return ret; }
|
inline size_t getProcessingTransactionCount() { lock(); auto ret = mProcessingTransactions.size(); unlock(); return ret; }
|
||||||
|
|
||||||
|
inline LanguageCatalog* getLanguageCatalog() { return mLanguageCatalog.isNull() ? nullptr : mLanguageCatalog; }
|
||||||
|
void setLanguage(Languages lang);
|
||||||
|
inline void setLanguageCatalog(Poco::AutoPtr<LanguageCatalog> languageCatalog) { mLanguageCatalog = languageCatalog; }
|
||||||
|
Languages getLanguage();
|
||||||
|
inline const char* gettext(const char* text) { if (mLanguageCatalog.isNull()) return text; return mLanguageCatalog->gettext(text); }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void updateTimeout();
|
void updateTimeout();
|
||||||
inline void setHandle(int newHandle) { mHandleId = newHandle; }
|
inline void setHandle(int newHandle) { mHandleId = newHandle; }
|
||||||
@ -129,6 +137,8 @@ private:
|
|||||||
bool mActive;
|
bool mActive;
|
||||||
std::list<Poco::AutoPtr<ProcessingTransaction>> mProcessingTransactions;
|
std::list<Poco::AutoPtr<ProcessingTransaction>> mProcessingTransactions;
|
||||||
Poco::AutoPtr<ProcessingTransaction> mCurrentActiveProcessingTransaction;
|
Poco::AutoPtr<ProcessingTransaction> mCurrentActiveProcessingTransaction;
|
||||||
|
|
||||||
|
Poco::AutoPtr<LanguageCatalog> mLanguageCatalog;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
<div class="grd-time-used dev-info">
|
<div class="grd-time-used dev-info">
|
||||||
<%= mTimeProfiler.string() %>
|
<%= mTimeProfiler.string() %>
|
||||||
</div>
|
</div>
|
||||||
|
<script src="<%= ServerConfig::g_php_serverPath %>js/core.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@ -5,52 +5,14 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
<title>Gradido Login Server: <%= pageName %></title>
|
<title>Gradido Login Server: <%= pageName %></title>
|
||||||
<!--<link rel="stylesheet" type="text/css" href="css/styles.min.css">-->
|
<link rel="stylesheet" type="text/css" href="<%= ServerConfig::g_php_serverPath %>css/loginServer/style.css">
|
||||||
<link rel="stylesheet" type="text/css" href="<%= ServerConfig::g_php_serverPath %>/css/styles.css">
|
|
||||||
<style type="text/css" >
|
|
||||||
.grd_container
|
|
||||||
{
|
|
||||||
max-width:820px;
|
|
||||||
margin-left:auto;
|
|
||||||
margin-right:auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
input:not([type='radio']) {
|
|
||||||
width:200px;
|
|
||||||
}
|
|
||||||
label:not(.grd_radio_label) {
|
|
||||||
width:80px;
|
|
||||||
display:inline-block;
|
|
||||||
}
|
|
||||||
.grd_container_small
|
|
||||||
{
|
|
||||||
max-width:500px;
|
|
||||||
}
|
|
||||||
.grd_text {
|
|
||||||
max-width:550px;
|
|
||||||
margin-bottom: 5px;
|
|
||||||
}
|
|
||||||
.dev-info {
|
|
||||||
position: fixed;
|
|
||||||
color:grey;
|
|
||||||
font-size: smaller;
|
|
||||||
left:8px;
|
|
||||||
}
|
|
||||||
.grd-time-used {
|
|
||||||
bottom:0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.versionstring {
|
|
||||||
top:0;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div class="versionstring dev-info">
|
<div class="versionstring dev-info">
|
||||||
<p class="grd_small">Login Server in Entwicklung</p>
|
<p class="grd_small">Login Server in Entwicklung</p>
|
||||||
<p class="grd_small">Alpha 0.5.1</p>
|
<p class="grd_small">Alpha 0.6.1</p>
|
||||||
</div>
|
</div>
|
||||||
<!--<nav class="grd-left-bar expanded" data-topbar role="navigation">
|
<!--<nav class="grd-left-bar expanded" data-topbar role="navigation">
|
||||||
<div class="grd-left-bar-section">
|
<div class="grd-left-bar-section">
|
||||||
|
|||||||
@ -10,11 +10,16 @@
|
|||||||
#include "Poco/Net/HTTPServerParams.h"
|
#include "Poco/Net/HTTPServerParams.h"
|
||||||
#include "Poco/Logger.h"
|
#include "Poco/Logger.h"
|
||||||
#include "../SingletonManager/SessionManager.h"
|
#include "../SingletonManager/SessionManager.h"
|
||||||
|
#include "../SingletonManager/LanguageManager.h"
|
||||||
|
|
||||||
%>
|
%>
|
||||||
<%%
|
<%%
|
||||||
const char* pageName = "Login";
|
const char* pageName = "Login";
|
||||||
auto sm = SessionManager::getInstance();
|
auto sm = SessionManager::getInstance();
|
||||||
|
auto lm = LanguageManager::getInstance();
|
||||||
|
|
||||||
|
auto lang = chooseLanguage(request);
|
||||||
|
auto langCatalog = lm->getFreeCatalog(lang);
|
||||||
|
|
||||||
if(!form.empty()) {
|
if(!form.empty()) {
|
||||||
auto email = form.get("login-email", "");
|
auto email = form.get("login-email", "");
|
||||||
@ -24,7 +29,9 @@
|
|||||||
auto session = sm->getSession(request);
|
auto session = sm->getSession(request);
|
||||||
if(!session) {
|
if(!session) {
|
||||||
session = sm->getNewSession();
|
session = sm->getNewSession();
|
||||||
|
session->setLanguageCatalog(langCatalog);
|
||||||
|
// get language
|
||||||
|
// first check url, second check language header
|
||||||
// for debugging client ip
|
// for debugging client ip
|
||||||
auto client_ip = request.clientAddress();
|
auto client_ip = request.clientAddress();
|
||||||
std::string clientIpString = "client ip: ";
|
std::string clientIpString = "client ip: ";
|
||||||
@ -43,10 +50,10 @@
|
|||||||
switch(userState) {
|
switch(userState) {
|
||||||
case USER_EMPTY:
|
case USER_EMPTY:
|
||||||
case USER_PASSWORD_INCORRECT:
|
case USER_PASSWORD_INCORRECT:
|
||||||
addError(new Error(gettext("Login"), gettext("E-Mail or password isn't right, please try again!")));
|
addError(new Error(langCatalog->gettext("Login"), langCatalog->gettext("E-Mail or password isn't right, please try again!")));
|
||||||
break;
|
break;
|
||||||
case USER_EMAIL_NOT_ACTIVATED:
|
case USER_EMAIL_NOT_ACTIVATED:
|
||||||
session->addError(new Error(gettext("Account"), gettext("E-Mail Address not checked, do you already get one?")));
|
session->addError(new Error(langCatalog->gettext("Account"), langCatalog->gettext("E-Mail Address not checked, do you already get one?")));
|
||||||
response.redirect(ServerConfig::g_serverPath + "/checkEmail");
|
response.redirect(ServerConfig::g_serverPath + "/checkEmail");
|
||||||
return;
|
return;
|
||||||
case USER_NO_KEYS:
|
case USER_NO_KEYS:
|
||||||
@ -59,7 +66,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
addError(new Error(gettext("Login"), gettext("Username and password are needed!")));
|
addError(new Error(langCatalog->gettext("Login"), langCatalog->gettext("Username and password are needed!")));
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
@ -69,27 +76,58 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
%><%@ include file="header.cpsp" %>
|
%><%@ include file="header.cpsp" %>
|
||||||
<form method="POST">
|
<div class="authentication-theme auth-style_1">
|
||||||
<div class="grd_container">
|
<div class="row">
|
||||||
<h1>Login</h1>
|
<div class="col-12 logo-section">
|
||||||
<%= getErrorsHtml() %>
|
<a href="../../index.html" class="logo">
|
||||||
<fieldset class="grd_container_small">
|
<img src="<%= ServerConfig::g_php_serverPath %>img/logo_schrift.webp" alt="logo" />
|
||||||
<legend>Login</legend>
|
</a>
|
||||||
<p><%= gettext("Please give you email and password for login.") %></p>
|
</div>
|
||||||
<p class="grd_small">
|
</div>
|
||||||
<label for="login-email"><%= gettext("E-Mail") %></label>
|
<div class="row">
|
||||||
<input id="login-email" type="text" name="login-email"/>
|
<div class="col-lg-5 col-md-7 col-sm-9 col-11 mx-auto">
|
||||||
</p>
|
<div class="grid">
|
||||||
<p class="grd_small">
|
<%= getErrorsHtml() %>
|
||||||
<label for="login-password"><%= gettext("Password") %></label>
|
<div class="grid-body">
|
||||||
<input id="login-password" type="password" name="login-password"/>
|
<form action="" method="POST">
|
||||||
</p>
|
<div class="row pull-right-row">
|
||||||
|
<div class="equel-grid pull-right">
|
||||||
</fieldset>
|
<div class="grid-body-small text-center">
|
||||||
<input class="grd-form-bn grd-form-bn-succeed grd_clickable" type="submit" name="submit" value="Einloggen">
|
<button id="flag-england" name="lang" value="en" title="English" type="submit" class="btn btn-outline-secondary flag-btn">
|
||||||
<p><%= gettext("You haven't any account yet? Please follow the link to create one.") %></p>
|
<span class="flag-england"></span>
|
||||||
<a href="https://gradido.com"><%= gettext("Create New Account") %></a>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
</form>
|
<div class="equel-grid pull-right">
|
||||||
|
<div class="grid-body-small text-center">
|
||||||
|
<button id="flag-germany" name="lang" value="de" title="Deutsch" type="submit" class="btn btn-secondary disabled flag-btn" disabled>
|
||||||
|
<span class="flag-germany"></span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row display-block">
|
||||||
|
<div class="col-lg-7 col-md-8 col-sm-9 col-12 mx-auto form-wrapper">
|
||||||
|
<div class="form-group input-rounded">
|
||||||
|
<input type="text" class="form-control" name="login-email" placeholder="<%= langCatalog->gettext("E-Mail") %>" />
|
||||||
|
</div>
|
||||||
|
<div class="form-group input-rounded">
|
||||||
|
<input type="password" class="form-control" name="login-password" placeholder="<%= langCatalog->gettext("Password") %>" />
|
||||||
|
</div>
|
||||||
|
<button type="submit" name="submit" class="btn btn-primary btn-block"><%= langCatalog->gettext(" Login ") %></button>
|
||||||
|
<div class="signup-link">
|
||||||
|
<p><%= langCatalog->gettext("You haven't any account yet? Please follow the link to create one.") %></p>
|
||||||
|
<a href="https://gradido.com"><%= langCatalog->gettext("Create New Account") %></a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="auth_footer">
|
||||||
|
<p class="text-muted text-center">© Ripple Inc 2019</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<%@ include file="footer.cpsp" %>
|
<%@ include file="footer.cpsp" %>
|
||||||
Loading…
x
Reference in New Issue
Block a user