use setBaseUrl function instead of hacking getLink function

This commit is contained in:
einhornimmond 2021-05-11 11:32:39 +02:00
parent 73443e373b
commit 2d665299c7
5 changed files with 13 additions and 7 deletions

View File

@ -109,7 +109,7 @@ Poco::JSON::Object* JsonCreateUser::handle(Poco::Dynamic::Var params)
emailOptInModel->sendErrorsAsEmail(); emailOptInModel->sendErrorsAsEmail();
return stateError("insert emailOptIn failed"); return stateError("insert emailOptIn failed");
} }
emailOptIn->setBaseUrl(mServerHost + "/" + ServerConfig::g_frontend_checkEmailPath);
em->addEmail(new model::Email(emailOptIn, user, model::Email::convertTypeFromInt(emailType))); em->addEmail(new model::Email(emailOptIn, user, model::Email::convertTypeFromInt(emailType)));
if (login_after_register && session) { if (login_after_register && session) {

View File

@ -43,7 +43,13 @@ void JsonRequestHandler::handleRequest(Poco::Net::HTTPServerRequest& request, Po
//std::ostream& responseStream = _compressResponse ? _gzipStream : _responseStream; //std::ostream& responseStream = _compressResponse ? _gzipStream : _responseStream;
mClientIp = request.clientAddress().host(); mClientIp = request.clientAddress().host();
if (request.secure()) {
mServerHost = "https://" + request.getHost();
}
else {
mServerHost = "http://" + request.getHost();
}
auto method = request.getMethod(); auto method = request.getMethod();
std::istream& request_stream = request.stream(); std::istream& request_stream = request.stream();
Poco::JSON::Object* json_result = nullptr; Poco::JSON::Object* json_result = nullptr;

View File

@ -26,6 +26,7 @@ public:
protected: protected:
Poco::JSON::Object* mResultJson; Poco::JSON::Object* mResultJson;
Poco::Net::IPAddress mClientIp; Poco::Net::IPAddress mClientIp;
std::string mServerHost;
Session* mSession; Session* mSession;
Poco::JSON::Object* checkAndLoadSession(Poco::Dynamic::Var params, bool checkIp = false); Poco::JSON::Object* checkAndLoadSession(Poco::Dynamic::Var params, bool checkIp = false);

View File

@ -105,12 +105,12 @@ Poco::JSON::Object* JsonSendEmail::handle(Poco::Dynamic::Var params)
return stateError("invalid email"); return stateError("invalid email");
} }
auto receiver_user_id = receiver_user->getModel()->getID(); auto receiver_user_id = receiver_user->getModel()->getID();
std::string checkEmailUrl = receiver_user->getGroupBaseUrl() + ServerConfig::g_frontend_checkEmailPath;
if (emailVerificationCodeType == model::table::EMAIL_OPT_IN_RESET_PASSWORD) if (emailVerificationCodeType == model::table::EMAIL_OPT_IN_RESET_PASSWORD)
{ {
session = sm->getNewSession(); session = sm->getNewSession();
if (emailType == model::EMAIL_USER_RESET_PASSWORD) { if (emailType == model::EMAIL_USER_RESET_PASSWORD) {
auto r = session->sendResetPasswordEmail(receiver_user, true, receiver_user->getGroupBaseUrl()); auto r = session->sendResetPasswordEmail(receiver_user, true, checkEmailUrl);
if (1 == r) { if (1 == r) {
return stateWarning("email already sended"); return stateWarning("email already sended");
} }
@ -120,6 +120,7 @@ Poco::JSON::Object* JsonSendEmail::handle(Poco::Dynamic::Var params)
} }
else if (emailType == model::EMAIL_CUSTOM_TEXT) { else if (emailType == model::EMAIL_CUSTOM_TEXT) {
auto email_verification_code_object = controller::EmailVerificationCode::loadOrCreate(receiver_user_id, model::table::EMAIL_OPT_IN_RESET_PASSWORD); auto email_verification_code_object = controller::EmailVerificationCode::loadOrCreate(receiver_user_id, model::table::EMAIL_OPT_IN_RESET_PASSWORD);
email_verification_code_object->setBaseUrl(checkEmailUrl);
auto email = new model::Email(email_verification_code_object, receiver_user, emailCustomText, emailCustomSubject); auto email = new model::Email(email_verification_code_object, receiver_user, emailCustomText, emailCustomSubject);
em->addEmail(email); em->addEmail(email);
} }
@ -135,6 +136,7 @@ Poco::JSON::Object* JsonSendEmail::handle(Poco::Dynamic::Var params)
} }
auto email_verification_code_object = controller::EmailVerificationCode::loadOrCreate(receiver_user_id, emailVerificationCodeType); auto email_verification_code_object = controller::EmailVerificationCode::loadOrCreate(receiver_user_id, emailVerificationCodeType);
email_verification_code_object->setBaseUrl(checkEmailUrl);
model::Email* email = nullptr; model::Email* email = nullptr;
if (emailType == model::EMAIL_CUSTOM_TEXT) { if (emailType == model::EMAIL_CUSTOM_TEXT) {
email = new model::Email(email_verification_code_object, receiver_user, emailCustomText, emailCustomSubject); email = new model::Email(email_verification_code_object, receiver_user, emailCustomText, emailCustomSubject);

View File

@ -122,9 +122,6 @@ namespace controller {
std::string EmailVerificationCode::getLink() std::string EmailVerificationCode::getLink()
{ {
std::string link = mBaseUrl; std::string link = mBaseUrl;
if (ServerConfig::g_frontend_checkEmailPath.size() > 1) {
link = ServerConfig::g_frontend_checkEmailPath;
}
if (link.data()[link.size() - 1] != '/') { if (link.data()[link.size() - 1] != '/') {
link += '/'; link += '/';