mirror of
https://github.com/IT4Change/gradido.git
synced 2026-02-06 09:56:05 +00:00
adding more different emails, move emails in extra folder
This commit is contained in:
parent
c51644b2e7
commit
f00a408ad2
@ -26,6 +26,7 @@ FILE(GLOB SINGLETON_MANAGER "src/cpp/SingletonManager/*.h" "src/cpp/SingletonMan
|
|||||||
FILE(GLOB LIB_SRC "src/cpp/lib/*.h" "src/cpp/lib/*.cpp")
|
FILE(GLOB LIB_SRC "src/cpp/lib/*.h" "src/cpp/lib/*.cpp")
|
||||||
FILE(GLOB MODEL "src/cpp/model/*.h" "src/cpp/model/*.cpp")
|
FILE(GLOB MODEL "src/cpp/model/*.h" "src/cpp/model/*.cpp")
|
||||||
FILE(GLOB MODEL_TABLE "src/cpp/model/table/*.h" "src/cpp/model/table/*.cpp")
|
FILE(GLOB MODEL_TABLE "src/cpp/model/table/*.h" "src/cpp/model/table/*.cpp")
|
||||||
|
FILE(GLOB MODEL_EMAIL "src/cpp/model/email/*.h" "src/cpp/model/email/*.cpp")
|
||||||
FILE(GLOB CRYPTO "src/cpp/Crypto/*.h" "src/cpp/Crypto/*.cpp")
|
FILE(GLOB CRYPTO "src/cpp/Crypto/*.h" "src/cpp/Crypto/*.cpp")
|
||||||
FILE(GLOB MAIN "src/cpp/*.cpp" "src/cpp/*.c" "src/cpp/*.h")
|
FILE(GLOB MAIN "src/cpp/*.cpp" "src/cpp/*.c" "src/cpp/*.h")
|
||||||
FILE(GLOB MYSQL "src/cpp/MySQL/*.cpp" "src/cpp/MySQL/*.h" "src/cpp/MySQL/Poco/*.h")
|
FILE(GLOB MYSQL "src/cpp/MySQL/*.cpp" "src/cpp/MySQL/*.h" "src/cpp/MySQL/Poco/*.h")
|
||||||
@ -35,7 +36,7 @@ FILE(GLOB TEST "src/cpp/test/*.cpp" "src/cpp/test/*.h")
|
|||||||
|
|
||||||
SET(LOCAL_SRCS
|
SET(LOCAL_SRCS
|
||||||
${CONTROLLER} ${TINF} ${MAIN} ${HTTPInterface}
|
${CONTROLLER} ${TINF} ${MAIN} ${HTTPInterface}
|
||||||
${JSONInterface} ${CRYPTO} ${MODEL} ${MODEL_TABLE}
|
${JSONInterface} ${CRYPTO} ${MODEL} ${MODEL_TABLE} ${MODEL_EMAIL}
|
||||||
${SINGLETON_MANAGER} ${LIB_SRC} ${MYSQL} ${TASKS}
|
${SINGLETON_MANAGER} ${LIB_SRC} ${MYSQL} ${TASKS}
|
||||||
${PROTO_GRADIDO}
|
${PROTO_GRADIDO}
|
||||||
)
|
)
|
||||||
@ -49,6 +50,7 @@ source_group("tinf" FILES ${TINF})
|
|||||||
source_group("crypto" FILES ${CRYPTO})
|
source_group("crypto" FILES ${CRYPTO})
|
||||||
source_group("tasks" FILES ${TASKS})
|
source_group("tasks" FILES ${TASKS})
|
||||||
source_group("model\\table" FILES ${MODEL_TABLE})
|
source_group("model\\table" FILES ${MODEL_TABLE})
|
||||||
|
source_group("model\\email" FILES ${MODEL_EMAIL})
|
||||||
source_group("model" FILES ${MODEL})
|
source_group("model" FILES ${MODEL})
|
||||||
source_group("mysql" FILES ${MYSQL})
|
source_group("mysql" FILES ${MYSQL})
|
||||||
source_group("SingletonManager" FILES ${SINGLETON_MANAGER})
|
source_group("SingletonManager" FILES ${SINGLETON_MANAGER})
|
||||||
|
|||||||
@ -2,4 +2,7 @@ HTTPInterface/LoginPage.cpp
|
|||||||
HTTPInterface/CheckEmailPage.cpp
|
HTTPInterface/CheckEmailPage.cpp
|
||||||
HTTPInterface/ResetPassword.cpp
|
HTTPInterface/ResetPassword.cpp
|
||||||
model/Session.cpp
|
model/Session.cpp
|
||||||
model/Email.cpp
|
model/Email/Email.cpp
|
||||||
|
model/Email/EmailCustomReply.cpp
|
||||||
|
model/Email/EmailNotificationCreation.cpp
|
||||||
|
model/Email/EmailNotificationTransfer.cpp
|
||||||
@ -82,8 +82,8 @@ void CheckTransactionPage::handleRequest(Poco::Net::HTTPServerRequest& request,
|
|||||||
}*/
|
}*/
|
||||||
auto lastExternReferer = mSession->getLastReferer();
|
auto lastExternReferer = mSession->getLastReferer();
|
||||||
//lastExternReferer = "";
|
//lastExternReferer = "";
|
||||||
if(lastExternReferer != "") {
|
if(lastExternReferer != "" && lastExternReferer.find("transaction-send-coins") == std::string::npos) {
|
||||||
printf("last extern referer: %s\n", lastExternReferer.data());
|
//printf("last extern referer: %s\n", lastExternReferer.data());
|
||||||
response.redirect(lastExternReferer);
|
response.redirect(lastExternReferer);
|
||||||
} else {
|
} else {
|
||||||
response.redirect(ServerConfig::g_php_serverPath + "state-balances/overview");
|
response.redirect(ServerConfig::g_php_serverPath + "state-balances/overview");
|
||||||
|
|||||||
@ -15,7 +15,7 @@
|
|||||||
|
|
||||||
#include "../lib/MultithreadQueue.h"
|
#include "../lib/MultithreadQueue.h"
|
||||||
#include "../tasks/Thread.h"
|
#include "../tasks/Thread.h"
|
||||||
#include "../model/Email.h"
|
#include "../model/Email/Email.h"
|
||||||
|
|
||||||
class EmailManager : public UniLib::lib::Thread
|
class EmailManager : public UniLib::lib::Thread
|
||||||
{
|
{
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
#include "../lib/ErrorList.h"
|
#include "../lib/ErrorList.h"
|
||||||
|
|
||||||
#include "../model/Email.h"
|
#include "../model/Email/Email.h"
|
||||||
|
|
||||||
#include "EmailManager.h"
|
#include "EmailManager.h"
|
||||||
|
|
||||||
|
|||||||
@ -132,9 +132,11 @@ void SingletonTaskObserver::removeTask(DHASH id, TaskObserverType type)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
em->addError(new Error(funcName, "entry not found"));
|
if (mObserverEntrys.getNItems() > 0) {
|
||||||
em->addError(new ParamError(funcName, "existing entry count", mObserverEntrys.getNItems()));
|
em->addError(new Error(funcName, "entry not found"));
|
||||||
em->sendErrorsAsEmail();
|
em->addError(new ParamError(funcName, "existing entry count", mObserverEntrys.getNItems()));
|
||||||
|
em->sendErrorsAsEmail();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
unlock();
|
unlock();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,8 +1,10 @@
|
|||||||
#include "Email.h"
|
#include "Email.h"
|
||||||
#include "../SingletonManager/EmailManager.h"
|
#include "../../SingletonManager/EmailManager.h"
|
||||||
|
|
||||||
#include "Poco/Net/MediaType.h"
|
#include "Poco/Net/MediaType.h"
|
||||||
|
|
||||||
|
#include "../TransactionBase.h"
|
||||||
|
|
||||||
namespace model {
|
namespace model {
|
||||||
|
|
||||||
const static char EmailText_emailVerification[] = {u8"\
|
const static char EmailText_emailVerification[] = {u8"\
|
||||||
@ -45,6 +47,17 @@ Bitte logge dich im Admin-Bereich um das Problem zu lösen.\n\
|
|||||||
\n\
|
\n\
|
||||||
LG \n\
|
LG \n\
|
||||||
Gradido Login Server\
|
Gradido Login Server\
|
||||||
|
" };
|
||||||
|
|
||||||
|
const static char EmailText_notificationTransactionCreation[] = { u8"\
|
||||||
|
Hallo [first_name] [last_name],\n\
|
||||||
|
\n\
|
||||||
|
Für dich wurden soeben [amount] GDD geschöpft.\n\
|
||||||
|
\n\
|
||||||
|
Bitte antworte nicht auf diese E-Mail\n\
|
||||||
|
\n\
|
||||||
|
Mit freundlichen Grüßen\n\
|
||||||
|
Gradido Login-Server\n\
|
||||||
" };
|
" };
|
||||||
|
|
||||||
Email::Email(AutoPtr<controller::EmailVerificationCode> emailVerification, AutoPtr<controller::User> user, EmailType type)
|
Email::Email(AutoPtr<controller::EmailVerificationCode> emailVerification, AutoPtr<controller::User> user, EmailType type)
|
||||||
@ -207,7 +220,7 @@ Gradido Login Server\
|
|||||||
result.replace(findPos, 6, link);
|
result.replace(findPos, 6, link);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
addError(new Error(functionName, "no email placeholder found"));
|
//addError(new Error(functionName, "no email placeholder found"));
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@ -226,4 +239,18 @@ Gradido Login Server\
|
|||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string Email::replaceAmount(const char* src, Poco::Int64 gradido_cent)
|
||||||
|
{
|
||||||
|
std::string result = src;
|
||||||
|
static const char* functionName = "Email::replaceAmount";
|
||||||
|
int findPos = result.find("[amount]");
|
||||||
|
if (findPos != result.npos) {
|
||||||
|
result.replace(findPos, 8, TransactionBase::amountToString(gradido_cent));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
addError(new Error(functionName, "no amount placeholder found"));
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@ -12,12 +12,12 @@
|
|||||||
|
|
||||||
#include "Poco/Net/MailMessage.h"
|
#include "Poco/Net/MailMessage.h"
|
||||||
|
|
||||||
#include "../controller/EmailVerificationCode.h"
|
#include "../../controller/EmailVerificationCode.h"
|
||||||
#include "../controller/User.h"
|
#include "../../controller/User.h"
|
||||||
|
|
||||||
#include "../SingletonManager/LanguageManager.h"
|
#include "../../SingletonManager/LanguageManager.h"
|
||||||
|
|
||||||
#include "../lib/ErrorList.h"
|
#include "../../lib/ErrorList.h"
|
||||||
|
|
||||||
namespace model {
|
namespace model {
|
||||||
using namespace Poco;
|
using namespace Poco;
|
||||||
@ -29,7 +29,9 @@ namespace model {
|
|||||||
EMAIL_USER_VERIFICATION_CODE,
|
EMAIL_USER_VERIFICATION_CODE,
|
||||||
EMAIL_ADMIN_USER_VERIFICATION_CODE,
|
EMAIL_ADMIN_USER_VERIFICATION_CODE,
|
||||||
EMAIL_USER_RESET_PASSWORD,
|
EMAIL_USER_RESET_PASSWORD,
|
||||||
EMAIL_ADMIN_RESET_PASSWORD_REQUEST_WITHOUT_MEMORIZED_PASSPHRASE
|
EMAIL_ADMIN_RESET_PASSWORD_REQUEST_WITHOUT_MEMORIZED_PASSPHRASE,
|
||||||
|
EMAIL_NOTIFICATION_TRANSACTION_CREATION,
|
||||||
|
EMAIL_NOTIFICATION_TRANSACTION_TRANSFER
|
||||||
};
|
};
|
||||||
|
|
||||||
class Email: public ErrorList
|
class Email: public ErrorList
|
||||||
@ -44,12 +46,13 @@ namespace model {
|
|||||||
inline EmailType getType() { return mType; }
|
inline EmailType getType() { return mType; }
|
||||||
inline controller::User* getUser() { if (!mUser.isNull()) return mUser.get(); return nullptr; }
|
inline controller::User* getUser() { if (!mUser.isNull()) return mUser.get(); return nullptr; }
|
||||||
|
|
||||||
bool draft(Net::MailMessage* mailMessage, LanguageCatalog* langCatalog);
|
virtual bool draft(Net::MailMessage* mailMessage, LanguageCatalog* langCatalog);
|
||||||
inline void addContent(Poco::Net::StringPartSource* str_content) { mAdditionalStringPartSrcs.push(str_content); }
|
inline void addContent(Poco::Net::StringPartSource* str_content) { mAdditionalStringPartSrcs.push(str_content); }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
std::string replaceUserNamesAndLink(const char* src, const std::string& first_name, const std::string& last_name, const std::string& link);
|
std::string replaceUserNamesAndLink(const char* src, const std::string& first_name, const std::string& last_name, const std::string& link);
|
||||||
std::string replaceEmail(const char* src, const std::string& email);
|
std::string replaceEmail(const char* src, const std::string& email);
|
||||||
|
std::string replaceAmount(const char* src, Poco::Int64 gradido_cent);
|
||||||
|
|
||||||
AutoPtr<controller::EmailVerificationCode> mEmailVerificationCode;
|
AutoPtr<controller::EmailVerificationCode> mEmailVerificationCode;
|
||||||
AutoPtr<controller::User> mUser;
|
AutoPtr<controller::User> mUser;
|
||||||
20
src/cpp/model/email/EmailCustomReply.cpp
Normal file
20
src/cpp/model/email/EmailCustomReply.cpp
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
#include "EmailCustomReply.h"
|
||||||
|
|
||||||
|
#include "../../SingletonManager/EmailManager.h"
|
||||||
|
#include "Poco/Net/MediaType.h"
|
||||||
|
|
||||||
|
namespace model {
|
||||||
|
using namespace Poco;
|
||||||
|
|
||||||
|
EmailCustomReply::EmailCustomReply(AutoPtr<controller::User> user, const std::string& replyString, EmailType type)
|
||||||
|
: Email(user, type), mReplyStr(replyString)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool EmailCustomReply::addReplyStr(Net::MailMessage* mailMessage)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
33
src/cpp/model/email/EmailCustomReply.h
Normal file
33
src/cpp/model/email/EmailCustomReply.h
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
/*!
|
||||||
|
*
|
||||||
|
* \author: einhornimmond
|
||||||
|
*
|
||||||
|
* \date: 04.02.20
|
||||||
|
*
|
||||||
|
* \brief: store email with additional reply address
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef GRADIDO_LOGIN_SERVER_MODEL_EMAIL_CUSTOM_REPLY_INCLUDE
|
||||||
|
#define GRADIDO_LOGIN_SERVER_MODEL_EMAIL_CUSTOM_REPLY_INCLUDE
|
||||||
|
|
||||||
|
#include "Email.h"
|
||||||
|
|
||||||
|
namespace model {
|
||||||
|
using namespace Poco;
|
||||||
|
|
||||||
|
|
||||||
|
class EmailCustomReply : public Email
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
EmailCustomReply(AutoPtr<controller::User> user, const std::string& replyString, EmailType type);
|
||||||
|
|
||||||
|
|
||||||
|
//bool draft(Net::MailMessage* mailMessage, LanguageCatalog* langCatalog);
|
||||||
|
bool addReplyStr(Net::MailMessage* mailMessage);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
std::string mReplyStr;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif //GRADIDO_LOGIN_SERVER_MODEL_EMAIL_INCLUDE
|
||||||
0
src/cpp/model/email/EmailNotificationCreation.cpp
Normal file
0
src/cpp/model/email/EmailNotificationCreation.cpp
Normal file
0
src/cpp/model/email/EmailNotificationCreation.h
Normal file
0
src/cpp/model/email/EmailNotificationCreation.h
Normal file
0
src/cpp/model/email/EmailNotificationTransfer.cpp
Normal file
0
src/cpp/model/email/EmailNotificationTransfer.cpp
Normal file
0
src/cpp/model/email/EmailNotificationTransfer.h
Normal file
0
src/cpp/model/email/EmailNotificationTransfer.h
Normal file
@ -4,7 +4,7 @@
|
|||||||
#include "CPUTask.h"
|
#include "CPUTask.h"
|
||||||
#include "Poco/Net/MailMessage.h"
|
#include "Poco/Net/MailMessage.h"
|
||||||
|
|
||||||
#include "../model/Email.h"
|
#include "../model/Email/Email.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @author: Dario Rekowski
|
* @author: Dario Rekowski
|
||||||
|
|||||||
@ -118,6 +118,7 @@ int SigningTransaction::run() {
|
|||||||
mm->releaseMemory(finalBase64Bin);
|
mm->releaseMemory(finalBase64Bin);
|
||||||
return -7;
|
return -7;
|
||||||
}
|
}
|
||||||
|
addError(new Error("Signing transaction final", *finalBase64Bin));
|
||||||
|
|
||||||
// create json request
|
// create json request
|
||||||
|
|
||||||
|
|||||||
@ -60,8 +60,8 @@ enum PageState {
|
|||||||
}*/
|
}*/
|
||||||
auto lastExternReferer = mSession->getLastReferer();
|
auto lastExternReferer = mSession->getLastReferer();
|
||||||
//lastExternReferer = "";
|
//lastExternReferer = "";
|
||||||
if(lastExternReferer != "") {
|
if(lastExternReferer != "" && lastExternReferer.find("transaction-send-coins") == std::string::npos) {
|
||||||
printf("last extern referer: %s\n", lastExternReferer.data());
|
//printf("last extern referer: %s\n", lastExternReferer.data());
|
||||||
response.redirect(lastExternReferer);
|
response.redirect(lastExternReferer);
|
||||||
} else {
|
} else {
|
||||||
response.redirect(ServerConfig::g_php_serverPath + "state-balances/overview");
|
response.redirect(ServerConfig::g_php_serverPath + "state-balances/overview");
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user