diff --git a/src/cpp/HTTPInterface/LoginPage.cpp b/src/cpp/HTTPInterface/LoginPage.cpp index a2a1a9701..d9e883214 100644 --- a/src/cpp/HTTPInterface/LoginPage.cpp +++ b/src/cpp/HTTPInterface/LoginPage.cpp @@ -168,18 +168,19 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net:: refererString = referer->second; } if(lastExternReferer != "") { - //printf("redirect to: %s\n", lastExternReferer.data()); + printf("redirect to: %s (last extern referer)\n", lastExternReferer.data()); response.redirect(lastExternReferer); } else if(refererString != "" && refererString.find("login") == std::string::npos && refererString.find("logout") == std::string::npos && refererString.find("user_delete") == std::string::npos && - refererString != ServerConfig::g_serverPath + request.getURI()) { + refererString != ServerConfig::g_serverPath + request.getURI() && + refererString != user->getGroupBaseUrl() + request.getURI()) { std::string uri = request.getURI(); printf("request uri: %s, redirect to: %s\n", uri.data(), refererString.data()); response.redirect(refererString); } else { - //printf("redirect to: %s\n", ServerConfig::g_php_serverPath.data()); + printf("redirect to: %s/\n", user->getGroupBaseUrl().data()); response.redirect(user->getGroupBaseUrl() + "/"); } return; @@ -258,11 +259,11 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net:: responseStream << " "; // end include header.cpsp responseStream << "\n"; -#line 170 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp" +#line 171 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp" responseStream << ( getErrorsHtml() ); responseStream << "\n"; responseStream << "\n"; responseStream << "
\n"; @@ -296,22 +297,22 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net:: responseStream << "\n"; responseStream << "
\n"; responseStream << "\t\t
\n"; responseStream << "\t\t\tgettext("E-Mail") ); responseStream << "\" value=\""; -#line 176 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp" +#line 177 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp" responseStream << ( presetEmail ); responseStream << "\"/>\n"; responseStream << "\t\t\tgettext("Password") ); responseStream << "\" />\n"; responseStream << "\t\t \n"; responseStream << "\t\t
\n"; @@ -319,7 +320,7 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net:: responseStream << "
\n"; responseStream << "
\n"; responseStream << "\t

"; -#line 183 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp" +#line 184 "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 << "

\n"; responseStream << "\t \n"; responseStream << "\t\t\t"; -#line 185 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp" +#line 186 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp" responseStream << ( langCatalog->gettext("Create New Account") ); responseStream << "\n"; responseStream << "\t\t \n"; responseStream << "\t
\n"; responseStream << "\t\t\n"; diff --git a/src/cpp/controller/User.cpp b/src/cpp/controller/User.cpp index d3dc4cbf1..60107c89e 100644 --- a/src/cpp/controller/User.cpp +++ b/src/cpp/controller/User.cpp @@ -523,18 +523,24 @@ namespace controller { std::string User::getGroupBaseUrl() { UNIQUE_LOCK; + static const char* function_name = "User::getGroupBaseUrl"; if (mGroupBaseUrl != "") { + printf("[%s] return saved group base Url: %s\n", function_name, mGroupBaseUrl.data()); return mGroupBaseUrl; } - static const char* function_name = "User::getGroupBaseUrl"; + auto model = getModel(); - if (!model->getGroupId()) return ServerConfig::g_php_serverPath; + if (!model->getGroupId()) { + printf("[%s] return ServerConfig::g_php_serverPath because no group id\n", function_name); + return ServerConfig::g_php_serverPath; + } auto servers = controller::NodeServer::load(model::table::NODE_SERVER_GRADIDO_COMMUNITY, model->getGroupId()); if (!servers.size()) { auto group = controller::Group::load(model->getGroupId()); if (!group.isNull()) { auto group_model = group->getModel(); mGroupBaseUrl = group_model->getUrl() + group_model->getHome(); + printf("[%s] return group base Url: %s from Group\n", function_name, mGroupBaseUrl.data()); return mGroupBaseUrl; } return ServerConfig::g_php_serverPath; @@ -546,6 +552,7 @@ namespace controller { return ServerConfig::g_php_serverPath; } mGroupBaseUrl = servers[0]->getBaseUri(); + printf("[%s] return group base Url: %s from NodeServer\n", function_name, mGroupBaseUrl.data()); return mGroupBaseUrl; } diff --git a/src/cpsp/login.cpsp b/src/cpsp/login.cpsp index 5309fbbce..88fd4a407 100644 --- a/src/cpsp/login.cpsp +++ b/src/cpsp/login.cpsp @@ -144,18 +144,19 @@ refererString = referer->second; } if(lastExternReferer != "") { - //printf("redirect to: %s\n", lastExternReferer.data()); + printf("redirect to: %s (last extern referer)\n", lastExternReferer.data()); response.redirect(lastExternReferer); } else if(refererString != "" && refererString.find("login") == std::string::npos && refererString.find("logout") == std::string::npos && refererString.find("user_delete") == std::string::npos && - refererString != ServerConfig::g_serverPath + request.getURI()) { + refererString != ServerConfig::g_serverPath + request.getURI() && + refererString != user->getGroupBaseUrl() + request.getURI()) { std::string uri = request.getURI(); printf("request uri: %s, redirect to: %s\n", uri.data(), refererString.data()); response.redirect(refererString); } else { - //printf("redirect to: %s\n", ServerConfig::g_php_serverPath.data()); + printf("redirect to: %s/\n", user->getGroupBaseUrl().data()); response.redirect(user->getGroupBaseUrl() + "/"); } return;