mirror of
https://github.com/IT4Change/gradido.git
synced 2025-12-13 07:45:54 +00:00
update styling
This commit is contained in:
parent
0c00a3e809
commit
aa9169bd34
@ -8,10 +8,12 @@
|
||||
#include <sodium.h>
|
||||
|
||||
class UserWriteKeysIntoDB;
|
||||
class UserGenerateKeys;
|
||||
// TODO: https://libsodium.gitbook.io/doc/advanced/ed25519-curve25519
|
||||
class KeyPair
|
||||
{
|
||||
friend UserWriteKeysIntoDB;
|
||||
friend UserGenerateKeys;
|
||||
public:
|
||||
KeyPair();
|
||||
~KeyPair();
|
||||
|
||||
184
src/cpp/DRMemoryList.h
Normal file
184
src/cpp/DRMemoryList.h
Normal file
@ -0,0 +1,184 @@
|
||||
/*/*************************************************************************
|
||||
* *
|
||||
* Core, Core-Lib for my programs, Core doesn't need any libraries *
|
||||
* Copyright (C) 2012, 2013, 2014 Dario Rekowski *
|
||||
* Email: ***REMOVED*** Web: ***REMOVED*** *
|
||||
* *
|
||||
* This program is free software: you can redistribute it and/or modify *
|
||||
* it under the terms of the GNU General Public License as published by *
|
||||
* the Free Software Foundation, either version 3 of the License, or *
|
||||
* any later version. *
|
||||
* *
|
||||
* This program is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU General Public License *
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>. *
|
||||
* *
|
||||
***************************************************************************/
|
||||
|
||||
/*
|
||||
Speichermanager mit Free Listen
|
||||
Damit man häufig Speicher reservieren kann ohne den
|
||||
Speicher zu defragmentieren.
|
||||
Nach einem Artikel aus Gems4: "Speicherfragmentierung mit Templated Free-Lists bekämmpfen"
|
||||
von Paul Glinker Rockstar Games Toronto
|
||||
|
||||
Programmierer: Dario Rekowski
|
||||
*/
|
||||
//DRLogger Log;
|
||||
//Deklaration
|
||||
//#ifdef _TEMPLATEFREE_
|
||||
#ifndef __DR_CORE2_MEMORY_LIST__
|
||||
#define __DR_CORE2_MEMORY_LIST__
|
||||
|
||||
#ifndef __CORE_2_MAIN_H__
|
||||
#include "Core2Main.h"
|
||||
#endif
|
||||
|
||||
template <typename FLDataType> class DRMemoryList
|
||||
{
|
||||
|
||||
public:
|
||||
//Standard Konstruktor
|
||||
DRMemoryList(int iNumObjects);
|
||||
|
||||
//Konstruktor für Daten ohne Standard Konstruktor
|
||||
DRMemoryList(FLDataType* pObjectData, FLDataType** ppFreeObjects, int iNumObjects);
|
||||
|
||||
//Deskonstruktor, wichtig!!
|
||||
~DRMemoryList();
|
||||
|
||||
//füllt den Zeigerstack (Stapel)
|
||||
void FillStack();
|
||||
|
||||
//Liefert den Zeiger auf einen freien Spiecherplatz zurück
|
||||
FLDataType* NewInstance();
|
||||
|
||||
//Und die Instance freigeben
|
||||
void FreeInstance(FLDataType* pInstance);
|
||||
|
||||
//liefert die anzahl der noch freien Speicherplätze zurück
|
||||
int getFreeCount() {return m_iTop;}
|
||||
int getObjectCount() {return m_iNumObject;}
|
||||
FLDataType** getDataPointer() {return m_ppFreeObjects;}
|
||||
|
||||
private:
|
||||
FLDataType* m_pObjectData; //Zeiger auf den reservieretn Speicher
|
||||
FLDataType** m_ppFreeObjects; //Zeiger auf die anderen Zeiger
|
||||
int m_iNumObject; //Anzahl der Objecte
|
||||
bool m_bFreeOnDestroy; //Weiß nicht
|
||||
int m_iTop; //Keine Ahnung
|
||||
};
|
||||
|
||||
|
||||
//******************************************************************************++
|
||||
//Funktionen
|
||||
template <typename FLDataType> DRMemoryList<FLDataType>::DRMemoryList(int iNumObjects)
|
||||
{
|
||||
//Fehler abfangen
|
||||
//ASSERT(iNumObjects > 0);
|
||||
if(iNumObjects <= 0) LOG_ERROR_VOID("not enough objects ");
|
||||
|
||||
//Speicher reservieren
|
||||
m_pObjectData = new FLDataType[iNumObjects];
|
||||
m_ppFreeObjects = new FLDataType*[iNumObjects];
|
||||
|
||||
//Checken ob der Speicher reserviert wurde
|
||||
// ASSERT(m_pObjectData);
|
||||
// ASSERT(m_ppFreeObjects);
|
||||
if(!m_pObjectData || !m_ppFreeObjects) LOG_ERROR_VOID("Es konnte kein Speicher reserviert werden!");
|
||||
|
||||
|
||||
//Anzahl zuweisen
|
||||
m_iNumObject = iNumObjects;
|
||||
|
||||
m_bFreeOnDestroy = true;
|
||||
|
||||
//Zeiger zuweisen
|
||||
FillStack();
|
||||
|
||||
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------
|
||||
|
||||
template <typename FLDataType> DRMemoryList<FLDataType>::DRMemoryList(FLDataType* pObjectData, FLDataType** ppFreeObjects, int iNumObjects)
|
||||
{
|
||||
//Fehler abfangen
|
||||
// ASSERT(iNumObjects > 0);
|
||||
if(iNumObjects <= 0) LOG_ERROR_VOID("not enough objects ");
|
||||
|
||||
|
||||
//Speicher reservieren
|
||||
m_pObjectData = pObjectData;
|
||||
m_ppFreeObjects = ppFreeObjects;
|
||||
|
||||
//Checken ob der Speicher reserviert wurde
|
||||
// ASSERT(m_pObjectData);
|
||||
// ASSERT(m_ppFreeObjects);
|
||||
if(!m_pObjectData || !m_ppFreeObjects) LOG_ERROR_VOID("Es konnte kein Speicher reserviert werden!");
|
||||
|
||||
|
||||
//Anzahl zuweisen
|
||||
m_iNumObject = iNumObjects;
|
||||
|
||||
m_bFreeOnDestroy = false;
|
||||
|
||||
//Zeiger zuweisen
|
||||
FillStack();
|
||||
|
||||
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------
|
||||
template <typename FLDataType> DRMemoryList<FLDataType>::~DRMemoryList()
|
||||
{
|
||||
DR_SAVE_DELETE_ARRAY(m_pObjectData);
|
||||
DR_SAVE_DELETE_ARRAY(m_ppFreeObjects);
|
||||
}
|
||||
|
||||
|
||||
//****************************************************************************++
|
||||
|
||||
template <typename FLDataType> void DRMemoryList<FLDataType>::FillStack()
|
||||
{
|
||||
int iIndex = m_iNumObject - 1;
|
||||
|
||||
//Die Zeiger in m_ppFreeObjects werden von vorne nach hinten,
|
||||
//von hinten nach vorne auf den reservierten Speicher ausgerichtet
|
||||
for(m_iTop = 0; m_iTop < m_iNumObject; m_iTop++)
|
||||
{
|
||||
m_ppFreeObjects[m_iTop] = &(m_pObjectData[iIndex--]);
|
||||
}
|
||||
}
|
||||
|
||||
//*********************************************************************************
|
||||
|
||||
template <typename FLDataType> FLDataType* DRMemoryList<FLDataType>::NewInstance()
|
||||
{
|
||||
// ASSERT(m_iTop);
|
||||
if(m_iTop <= 0)
|
||||
{
|
||||
LOG_ERROR("Kein Platz mehr in der Liste!", NULL);
|
||||
}
|
||||
return m_ppFreeObjects[--m_iTop];
|
||||
}
|
||||
|
||||
//********************************************************************************
|
||||
|
||||
template <typename FLDataType> void DRMemoryList<FLDataType>::FreeInstance(FLDataType* pInstance)
|
||||
{
|
||||
|
||||
//Fehler kontrolle
|
||||
// ASSERT(pInstance >= &(m_pObjectData[0]) &&
|
||||
// pInstance < &(m_pObjectData[m_iNumObject]));
|
||||
// ASSERT(m_iTop < m_iNumObject);
|
||||
|
||||
m_ppFreeObjects[m_iTop++] = pInstance;
|
||||
}
|
||||
|
||||
#endif //__DR_CORE2_MEMORY_LIST__
|
||||
//#endif //_TEMPLATEFREE_
|
||||
@ -110,7 +110,7 @@ void CheckEmailPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::
|
||||
responseStream << "<body>\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\">Alpha 0.4.3</p>\n";
|
||||
responseStream << "\t<p class=\"grd_small\">Alpha 0.4.4</p>\n";
|
||||
responseStream << "</div>\n";
|
||||
responseStream << "<!--<nav class=\"grd-left-bar expanded\" data-topbar role=\"navigation\">\n";
|
||||
responseStream << "\t<div class=\"grd-left-bar-section\">\n";
|
||||
@ -155,7 +155,7 @@ void CheckEmailPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::
|
||||
#line 46 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkEmail.cpsp"
|
||||
} responseStream << "\n";
|
||||
responseStream << "\t\t<input type=\"number\" name=\"email-verification-code\">\n";
|
||||
responseStream << "\t\t<input class=\"grd-form-bn grd-form-bn-succeed\" type=\"submit\" value=\"Überprüfe Code\">\n";
|
||||
responseStream << "\t\t<input class=\"grd-form-bn grd-form-bn-succeed grd_clickable\" type=\"submit\" value=\"Überprüfe Code\">\n";
|
||||
responseStream << "\t\t<p>Du hast bisher keinen Code erhalten? </p>\n";
|
||||
responseStream << "\t\t<p>E-Mail erneut zuschicken (in Arbeit)</p>\n";
|
||||
responseStream << "\t</form>\n";
|
||||
|
||||
@ -66,7 +66,8 @@ void CheckTransactionPage::handleRequest(Poco::Net::HTTPServerRequest& request,
|
||||
size_t notReadyTransactions = 0;
|
||||
size_t sumTransactions = mSession->getProcessingTransactionCount();
|
||||
if(sumTransactions == 0) {
|
||||
response.redirect(ServerConfig::g_php_serverPath + "/");
|
||||
response.redirect(ServerConfig::g_php_serverPath);
|
||||
return;
|
||||
}
|
||||
auto processingTransaction = mSession->getNextReadyTransaction(¬ReadyTransactions);
|
||||
if(sumTransactions > 0) {
|
||||
@ -143,7 +144,7 @@ void CheckTransactionPage::handleRequest(Poco::Net::HTTPServerRequest& request,
|
||||
responseStream << "<body>\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\">Alpha 0.4.3</p>\n";
|
||||
responseStream << "\t<p class=\"grd_small\">Alpha 0.4.4</p>\n";
|
||||
responseStream << "</div>\n";
|
||||
responseStream << "<!--<nav class=\"grd-left-bar expanded\" data-topbar role=\"navigation\">\n";
|
||||
responseStream << "\t<div class=\"grd-left-bar-section\">\n";
|
||||
@ -180,54 +181,54 @@ void CheckTransactionPage::handleRequest(Poco::Net::HTTPServerRequest& request,
|
||||
responseStream << "<div class=\"grd_container\">\n";
|
||||
responseStream << "\t<h1>Eine Transaktion prüfen</h1>\n";
|
||||
responseStream << "\t";
|
||||
#line 67 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 68 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp"
|
||||
responseStream << ( getErrorsHtml() );
|
||||
responseStream << "\n";
|
||||
responseStream << "\t";
|
||||
#line 68 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 69 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp"
|
||||
if(sumTransactions > 0 && sumTransactions - notReadyTransactions != 1) { responseStream << "\n";
|
||||
responseStream << "\t\t";
|
||||
#line 69 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 70 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp"
|
||||
if(notReadyTransactions > 0) { responseStream << " \n";
|
||||
responseStream << "\t\t\t<pre>";
|
||||
#line 70 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 71 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp"
|
||||
responseStream << ( sumTransactions - notReadyTransactions );
|
||||
responseStream << " von ";
|
||||
#line 70 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 71 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp"
|
||||
responseStream << ( sumTransactions );
|
||||
responseStream << " Transaktionen sind bereit zum prüfen</pre>\n";
|
||||
responseStream << "\t\t";
|
||||
#line 71 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 72 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp"
|
||||
} else { responseStream << "\n";
|
||||
responseStream << "\t\t\t<pre>";
|
||||
#line 72 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 73 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp"
|
||||
responseStream << ( sumTransactions );
|
||||
responseStream << " Transaktionen warten darauf überprüft zu werden.</pre>\n";
|
||||
responseStream << "\t\t";
|
||||
#line 73 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp"
|
||||
} responseStream << "\n";
|
||||
responseStream << "\t";
|
||||
#line 74 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp"
|
||||
} responseStream << "\n";
|
||||
responseStream << "\t";
|
||||
#line 75 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp"
|
||||
} responseStream << "\n";
|
||||
responseStream << "\t";
|
||||
#line 76 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp"
|
||||
if(state == PAGE_NO_TRANSACTIONS) { responseStream << "\n";
|
||||
responseStream << "\t<div class=\"grd_text-max-width\">\n";
|
||||
responseStream << "\t\t";
|
||||
#line 77 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 78 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp"
|
||||
if(sumTransactions == 0) { responseStream << "\n";
|
||||
responseStream << "\t\t\t<div class=\"grd_text\">Es gibt zurzeit keine Transaktionen zum überprüfen</div>\n";
|
||||
responseStream << "\t\t";
|
||||
#line 79 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 80 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp"
|
||||
} else { responseStream << "\n";
|
||||
responseStream << "\t\t\t<div class=\"grd_text\">Transaktion(en) werden noch vorbereitet, bitte lade die Seite in wenigen Augenblicken erneut.</div>\n";
|
||||
responseStream << "\t\t";
|
||||
#line 81 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 82 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp"
|
||||
} responseStream << "\n";
|
||||
responseStream << "\t</div>\n";
|
||||
responseStream << "\t\n";
|
||||
responseStream << "\t";
|
||||
#line 84 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 85 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp"
|
||||
} else if(state == PAGE_TRANSACTION_CREATION) {
|
||||
auto creationTransaction = processingTransaction->getCreationTransaction();
|
||||
auto transactionUser = creationTransaction->getUser();
|
||||
@ -237,57 +238,57 @@ void CheckTransactionPage::handleRequest(Poco::Net::HTTPServerRequest& request,
|
||||
responseStream << "\t\t<h2>Schöpfungstransaktion</h2>\n";
|
||||
responseStream << "\t\t<b>Memo: </b>\n";
|
||||
responseStream << "\t\t<p>";
|
||||
#line 92 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 93 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp"
|
||||
responseStream << ( creationTransaction->getMemo() );
|
||||
responseStream << "</p>\n";
|
||||
responseStream << "\t\t<b>Empfänger: </b>\n";
|
||||
responseStream << "\t\t";
|
||||
#line 94 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 95 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp"
|
||||
if(transactionUser) { responseStream << "\n";
|
||||
responseStream << "\t\t\t<p class=\"grd_small\">";
|
||||
#line 95 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 96 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp"
|
||||
responseStream << ( transactionUser->getFirstName() );
|
||||
responseStream << " ";
|
||||
#line 95 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 96 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp"
|
||||
responseStream << ( transactionUser->getLastName() );
|
||||
responseStream << "</p>\n";
|
||||
responseStream << "\t\t\t<p class=\"grd_small\">";
|
||||
#line 96 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 97 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp"
|
||||
responseStream << ( transactionUser->getEmail() );
|
||||
responseStream << "</p>\n";
|
||||
responseStream << "\t\t";
|
||||
#line 97 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 98 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp"
|
||||
} else { responseStream << "\n";
|
||||
responseStream << "\t\t\t<p class=\"grd_small\">";
|
||||
#line 98 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 99 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp"
|
||||
responseStream << ( creationTransaction->getPublicHex() );
|
||||
responseStream << "</p>\n";
|
||||
responseStream << "\t\t";
|
||||
#line 99 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 100 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp"
|
||||
} responseStream << "\n";
|
||||
responseStream << "\t\t<b>Summe: </b>\n";
|
||||
responseStream << "\t\t";
|
||||
#line 101 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 102 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp"
|
||||
responseStream << ( creationTransaction->getAmountString() );
|
||||
responseStream << " Gradido\n";
|
||||
responseStream << "\t\t<form >\n";
|
||||
responseStream << "\t\t\tUnterschreiben mit aktuellem Account?<br>\n";
|
||||
responseStream << "\t\t\t<p class=\"grd_small\">";
|
||||
#line 104 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 105 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp"
|
||||
responseStream << ( accountUser->getFirstName() );
|
||||
responseStream << " ";
|
||||
#line 104 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 105 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp"
|
||||
responseStream << ( accountUser->getLastName() );
|
||||
responseStream << "</p>\n";
|
||||
responseStream << "\t\t\t<p class=\"grd_small\">";
|
||||
#line 105 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 106 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp"
|
||||
responseStream << ( accountUser->getEmail() );
|
||||
responseStream << "</p>\n";
|
||||
responseStream << "\t\t\t";
|
||||
#line 106 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 107 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp"
|
||||
// TODO: additional password check responseStream << "\n";
|
||||
responseStream << "\t\t\t";
|
||||
#line 107 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 108 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp"
|
||||
if(!accountUser->hasCryptoKey()) { responseStream << "\n";
|
||||
responseStream << "\t\t\t<p>Ich brauche nochmal dein Passwort</p>\n";
|
||||
responseStream << "\t\t\t\t<p class=\"grd_small\">\n";
|
||||
@ -295,14 +296,14 @@ void CheckTransactionPage::handleRequest(Poco::Net::HTTPServerRequest& request,
|
||||
responseStream << "\t\t\t\t\t<input id=\"sign-password\" type=\"password\" name=\"sign-password\"/>\n";
|
||||
responseStream << "\t\t\t\t</p>\n";
|
||||
responseStream << "\t\t\t";
|
||||
#line 113 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 114 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp"
|
||||
} responseStream << "\n";
|
||||
responseStream << "\t\t\t<input class=\"grd-form-bn grd-form-bn-succeed grd_clickable\" type=\"submit\" name=\"ok\" value=\"Transaktion unterzeichnen\">\n";
|
||||
responseStream << "\t\t\t<input class=\"grd-form-bn grd-form-bn-discard grd_clickable\" type=\"submit\" name=\"abort\" value=\"Transaktion verwerfen\">\n";
|
||||
responseStream << "\t\t</form>\n";
|
||||
responseStream << "\t</div>\t\n";
|
||||
responseStream << "\t";
|
||||
#line 118 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 119 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp"
|
||||
} responseStream << "\n";
|
||||
responseStream << "</div>\n";
|
||||
// begin include footer.cpsp
|
||||
|
||||
@ -82,7 +82,7 @@ void ConfigPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net:
|
||||
responseStream << "<body>\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\">Alpha 0.4.3</p>\n";
|
||||
responseStream << "\t<p class=\"grd_small\">Alpha 0.4.4</p>\n";
|
||||
responseStream << "</div>\n";
|
||||
responseStream << "<!--<nav class=\"grd-left-bar expanded\" data-topbar role=\"navigation\">\n";
|
||||
responseStream << "\t<div class=\"grd-left-bar-section\">\n";
|
||||
|
||||
@ -98,7 +98,7 @@ void DashboardPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::N
|
||||
responseStream << "<body>\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\">Alpha 0.4.3</p>\n";
|
||||
responseStream << "\t<p class=\"grd_small\">Alpha 0.4.4</p>\n";
|
||||
responseStream << "</div>\n";
|
||||
responseStream << "<!--<nav class=\"grd-left-bar expanded\" data-topbar role=\"navigation\">\n";
|
||||
responseStream << "\t<div class=\"grd-left-bar-section\">\n";
|
||||
|
||||
@ -312,10 +312,7 @@ int HandleElopageRequestTask::run()
|
||||
sendEmail->scheduleTask(sendEmail);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// if errors occured, send via email
|
||||
// if errors occured, send via email
|
||||
if (errorCount() > 1) {
|
||||
sendErrorsAsEmail();
|
||||
}
|
||||
|
||||
@ -97,7 +97,7 @@ void Error500Page::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Ne
|
||||
responseStream << "<body>\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\">Alpha 0.4.3</p>\n";
|
||||
responseStream << "\t<p class=\"grd_small\">Alpha 0.4.4</p>\n";
|
||||
responseStream << "</div>\n";
|
||||
responseStream << "<!--<nav class=\"grd-left-bar expanded\" data-topbar role=\"navigation\">\n";
|
||||
responseStream << "\t<div class=\"grd-left-bar-section\">\n";
|
||||
|
||||
@ -146,7 +146,7 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::
|
||||
responseStream << "<body>\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\">Alpha 0.4.3</p>\n";
|
||||
responseStream << "\t<p class=\"grd_small\">Alpha 0.4.4</p>\n";
|
||||
responseStream << "</div>\n";
|
||||
responseStream << "<!--<nav class=\"grd-left-bar expanded\" data-topbar role=\"navigation\">\n";
|
||||
responseStream << "\t<div class=\"grd-left-bar-section\">\n";
|
||||
|
||||
@ -134,7 +134,7 @@ void PassphrasePage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::
|
||||
responseStream << "<body>\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\">Alpha 0.4.3</p>\n";
|
||||
responseStream << "\t<p class=\"grd_small\">Alpha 0.4.4</p>\n";
|
||||
responseStream << "</div>\n";
|
||||
responseStream << "<!--<nav class=\"grd-left-bar expanded\" data-topbar role=\"navigation\">\n";
|
||||
responseStream << "\t<div class=\"grd-left-bar-section\">\n";
|
||||
@ -168,7 +168,7 @@ void PassphrasePage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::
|
||||
responseStream << ( mSession->getPassphrase() );
|
||||
responseStream << "\n";
|
||||
responseStream << "\t\t\t</div>\n";
|
||||
responseStream << "\t\t\t<a href=\"saveKeys\" class=\"grd-form-bn-succeed\">Weiter</a>\n";
|
||||
responseStream << "\t\t\t<a href=\"saveKeys\" class=\"grd-margin-top-10 grd-form-bn grd-form-bn-succeed\">Weiter</a>\n";
|
||||
responseStream << "\t\t</div>\n";
|
||||
responseStream << "\t";
|
||||
#line 69 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\passphrase.cpsp"
|
||||
@ -194,7 +194,7 @@ void PassphrasePage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::
|
||||
responseStream << ( !form.empty() ? form.get("passphrase-existing", "") : "" );
|
||||
responseStream << "</textarea>\n";
|
||||
responseStream << "\t\t</fieldset>\n";
|
||||
responseStream << "\t\t<input class=\"grd-form-bn grd-form-bn-succeed\" type=\"submit\" name=\"submit\" value=\"Weiter\">\n";
|
||||
responseStream << "\t\t<input class=\"grd-form-bn grd-form-bn-succeed grd-margin-top-10\" type=\"submit\" name=\"submit\" value=\"Weiter\">\n";
|
||||
responseStream << "\t\t\n";
|
||||
responseStream << "\t</form>\n";
|
||||
responseStream << "\t";
|
||||
|
||||
@ -116,7 +116,7 @@ void RegisterPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Ne
|
||||
responseStream << "<body>\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\">Alpha 0.4.3</p>\n";
|
||||
responseStream << "\t<p class=\"grd_small\">Alpha 0.4.4</p>\n";
|
||||
responseStream << "</div>\n";
|
||||
responseStream << "<!--<nav class=\"grd-left-bar expanded\" data-topbar role=\"navigation\">\n";
|
||||
responseStream << "\t<div class=\"grd-left-bar-section\">\n";
|
||||
|
||||
@ -152,7 +152,7 @@ void SaveKeysPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Ne
|
||||
responseStream << "<body>\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\">Alpha 0.4.3</p>\n";
|
||||
responseStream << "\t<p class=\"grd_small\">Alpha 0.4.4</p>\n";
|
||||
responseStream << "</div>\n";
|
||||
responseStream << "<!--<nav class=\"grd-left-bar expanded\" data-topbar role=\"navigation\">\n";
|
||||
responseStream << "\t<div class=\"grd-left-bar-section\">\n";
|
||||
@ -237,7 +237,7 @@ void SaveKeysPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Ne
|
||||
responseStream << "\t\t\t<a class=\"grd-form-bn\" href=\"";
|
||||
#line 127 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\saveKeys.cpsp"
|
||||
responseStream << ( uri_start );
|
||||
responseStream << "/\">Zurück zur Startseite</a>\n";
|
||||
responseStream << "\">Zurück zur Startseite</a>\n";
|
||||
responseStream << "\t\t</div>\n";
|
||||
responseStream << "\t";
|
||||
#line 129 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\saveKeys.cpsp"
|
||||
|
||||
@ -121,7 +121,7 @@ void UpdateUserPasswordPage::handleRequest(Poco::Net::HTTPServerRequest& request
|
||||
responseStream << "<body>\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\">Alpha 0.4.3</p>\n";
|
||||
responseStream << "\t<p class=\"grd_small\">Alpha 0.4.4</p>\n";
|
||||
responseStream << "</div>\n";
|
||||
responseStream << "<!--<nav class=\"grd-left-bar expanded\" data-topbar role=\"navigation\">\n";
|
||||
responseStream << "\t<div class=\"grd-left-bar-section\">\n";
|
||||
|
||||
@ -49,6 +49,9 @@ int UserGenerateKeys::run()
|
||||
mKeys.generateFromPassphrase(mPassphrase.data(), &ServerConfig::g_Mnemonic_WordLists[ServerConfig::MNEMONIC_BIP0039_SORTED_ORDER]);
|
||||
|
||||
mUser->setPublicKeyHex(mKeys.getPubkeyHex());
|
||||
if (mUser->hasCryptoKey()) {
|
||||
mUser->setPrivKey(mKeys.getPrivateKey());
|
||||
}
|
||||
|
||||
//printf("[UserGenerateKeys::run] time: %s\n", timeUsed.string().data());
|
||||
|
||||
@ -112,7 +115,10 @@ int UserWriteKeysIntoDB::run()
|
||||
// TODO: encrypt privkey
|
||||
auto privKey = keyPairs->getPrivateKey();
|
||||
//printf("[UserWriteKeysIntoDB] privKey hex: %s\n", KeyPair::getHex(*privKey, privKey->size()).data());
|
||||
pprivkey_blob = mUser->encrypt(privKey);
|
||||
auto encryptedPrivKey = mUser->encrypt(privKey);
|
||||
//pprivkey_blob = mUser->encrypt(privKey);
|
||||
|
||||
pprivkey_blob = new Poco::Data::BLOB(*encryptedPrivKey, encryptedPrivKey->size());
|
||||
//printf("[UserWriteKeysIntoDB] privkey encrypted\n");
|
||||
//Poco::Data::BLOB privkey_blob(*privKey, privKey->size());
|
||||
|
||||
@ -142,10 +148,12 @@ int UserWriteKeysIntoDB::run()
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
//printf("[UserWriteKeysIntoDB] after saving into db\n");
|
||||
if (pprivkey_blob) {
|
||||
delete pprivkey_blob;
|
||||
}
|
||||
|
||||
//printf("UserWritePrivKeyIntoDB time: %s\n", timeUsed.string().data());
|
||||
return 0;
|
||||
}
|
||||
@ -663,7 +671,7 @@ bool User::generateKeys(bool savePrivkey, const std::string& passphrase, Session
|
||||
|
||||
}
|
||||
|
||||
Poco::Data::BLOB* User::encrypt(const ObfusArray* data)
|
||||
ObfusArray* User::encrypt(const ObfusArray* data)
|
||||
{
|
||||
if (!hasCryptoKey()) {
|
||||
addError(new Error("User::encrypt", "hasn't crypto key"));
|
||||
@ -678,19 +686,22 @@ Poco::Data::BLOB* User::encrypt(const ObfusArray* data)
|
||||
|
||||
unsigned char* ciphertext = (unsigned char*)malloc(ciphertext_len);
|
||||
memset(ciphertext, 0, ciphertext_len);
|
||||
|
||||
lock();
|
||||
if (0 != crypto_secretbox_easy(ciphertext, *data, message_len, nonce, *mCryptoKey)) {
|
||||
//printf("[%s] error encrypting message \n", __FUNCTION__);
|
||||
addError(new Error("User::encrypt", "encrypting message failed"));
|
||||
free(ciphertext);
|
||||
unlock();
|
||||
return nullptr;
|
||||
}
|
||||
unlock();
|
||||
|
||||
//printf("[User::encrypt] encrypted: %s\n", KeyPair::getHex(ciphertext, ciphertext_len).data());
|
||||
auto result_blob = new Poco::Data::BLOB(ciphertext, ciphertext_len);
|
||||
//printf("[User::encrypt] encrypted: %s, ciphertext len: %u\n", KeyPair::getHex(ciphertext, ciphertext_len).data(), ciphertext_len);
|
||||
|
||||
auto resultObfus = new ObfusArray(ciphertext_len, ciphertext);
|
||||
free(ciphertext);
|
||||
|
||||
return result_blob;
|
||||
return resultObfus;
|
||||
}
|
||||
|
||||
ObfusArray* User::decrypt(const ObfusArray* encryptedData)
|
||||
@ -699,7 +710,7 @@ ObfusArray* User::decrypt(const ObfusArray* encryptedData)
|
||||
addError(new Error("User::decrypt", "hasn't crypto key"));
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
//printf("[User::decrypt] decrypt: %s, ciphertext len: %u\n", KeyPair::getHex(*encryptedData, encryptedData->size()).data(), encryptedData->size());
|
||||
//ObfusArray* decrypetData = new ObfusArray(encryptedData->size() - crypto_secretbox_MACBYTES);
|
||||
|
||||
size_t decryptSize = encryptedData->size() - crypto_secretbox_MACBYTES;
|
||||
@ -722,6 +733,33 @@ ObfusArray* User::decrypt(const ObfusArray* encryptedData)
|
||||
return decryptedData;
|
||||
}
|
||||
|
||||
ObfusArray* User::sign(const unsigned char* message, size_t messageSize)
|
||||
{
|
||||
/*
|
||||
if (!message || !messageSize) return nullptr;
|
||||
if (!hasCryptoKey()) {
|
||||
addError(new Error("User::sign", "hasn't crypto key"));
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
//binArrayObj = new BinaryArray(crypto_sign_BYTES);
|
||||
unsigned char* signBinBuffer = (unsigned char*)malloc(crypto_sign_BYTES);
|
||||
|
||||
crypto_sign_detached(signBinBuffer, NULL, message, messageSize, key->sodium_secret);
|
||||
|
||||
if (crypto_sign_verify_detached(binArrayObj->bytes, binArray, binArraySize, key->sodium_public) != 0) {
|
||||
// Incorrect signature!
|
||||
printf("c[KeyBuffer::%s] sign verify failed\n", __FUNCTION__);
|
||||
}
|
||||
|
||||
size_t hex_sig_size = crypto_sign_BYTES * 2;
|
||||
char sig_hex[crypto_sign_BYTES * 2 + 1];
|
||||
sodium_bin2hex(sig_hex, hex_sig_size + 1, binArrayObj->bytes, crypto_sign_BYTES);
|
||||
printf("c[KeyBuffer::%s] signature hex: %s\n", __FUNCTION__, sig_hex);
|
||||
*/
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
Poco::Data::Statement User::insertIntoDB(Poco::Data::Session session)
|
||||
{
|
||||
|
||||
@ -812,7 +850,7 @@ const char* User::userStateToString(UserStates state)
|
||||
|
||||
ObfusArray* User::getPrivKey()
|
||||
{
|
||||
if (mState != USER_COMPLETE) {
|
||||
if (!mPrivateKey) {
|
||||
addError(new Error("User::getPrivKey", "no private key saved"));
|
||||
return nullptr;
|
||||
}
|
||||
@ -821,4 +859,21 @@ ObfusArray* User::getPrivKey()
|
||||
return nullptr;
|
||||
}
|
||||
return decrypt(mPrivateKey);
|
||||
}
|
||||
|
||||
bool User::setPrivKey(const ObfusArray* privKey)
|
||||
{
|
||||
if (!hasCryptoKey()) {
|
||||
lock();
|
||||
addError(new Error("User::getPrivKey", "no crypto key set for encrypting priv key"));
|
||||
unlock();
|
||||
return false;
|
||||
}
|
||||
auto encyrptedPrivKey = encrypt(privKey);
|
||||
lock();
|
||||
mState = USER_COMPLETE;
|
||||
mPrivateKey = encrypt(privKey);
|
||||
unlock();
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -17,6 +17,7 @@ class UserWriteIntoDB;
|
||||
class Session;
|
||||
class UserWriteCryptoKeyHashIntoDB;
|
||||
class SigningTransaction;
|
||||
class UserGenerateKeys;
|
||||
|
||||
enum UserStates
|
||||
{
|
||||
@ -45,6 +46,7 @@ class User : public ErrorList
|
||||
friend UserWriteIntoDB;
|
||||
friend UserWriteCryptoKeyHashIntoDB;
|
||||
friend SigningTransaction;
|
||||
friend UserGenerateKeys;
|
||||
public:
|
||||
// new user
|
||||
User(const char* email, const char* first_name, const char* last_name);
|
||||
@ -88,8 +90,9 @@ public:
|
||||
bool validatePwd(const std::string& pwd, ErrorList* validationErrorsToPrint);
|
||||
bool validateIdentHash(HASH hash);
|
||||
|
||||
Poco::Data::BLOB* encrypt(const ObfusArray* data);
|
||||
ObfusArray* encrypt(const ObfusArray* data);
|
||||
ObfusArray* decrypt(const ObfusArray* encryptedData);
|
||||
ObfusArray* sign(const unsigned char* message, size_t messageSize);
|
||||
|
||||
Poco::JSON::Object getJson();
|
||||
|
||||
@ -116,6 +119,7 @@ protected:
|
||||
inline void unlock() { mWorkingMutex.unlock(); }
|
||||
|
||||
ObfusArray* getPrivKey();
|
||||
bool setPrivKey(const ObfusArray* privKey);
|
||||
|
||||
private:
|
||||
UserStates mState;
|
||||
|
||||
@ -50,6 +50,7 @@ public:
|
||||
static HASH calculateHash(const std::string& proto_message_base64);
|
||||
inline HASH getHash() { mHashMutex.lock(); HASH hs = mHash; mHashMutex.unlock(); return hs; }
|
||||
|
||||
|
||||
protected:
|
||||
TransactionType mType;
|
||||
std::string mProtoMessageBase64;
|
||||
|
||||
@ -17,10 +17,12 @@ int SigningTransaction::run() {
|
||||
auto em = ErrorManager::getInstance();
|
||||
|
||||
|
||||
Error* transactionError = new Error("SigningTransaction start", mProcessingeTransaction->mTransactionBody.SerializeAsString().data());
|
||||
Error* transactionError = new Error("SigningTransaction start", mProcessingeTransaction->mProtoMessageBase64.data());
|
||||
|
||||
|
||||
//= new Error("SigningTransaction start", mProcessingeTransaction->g)
|
||||
if (mUser.isNull() || !mUser->hasCryptoKey()) {
|
||||
em->addError(transactionError);
|
||||
em->addError(new Error("SigningTransaction", "user hasn't crypto key or is null"));
|
||||
em->sendErrorsAsEmail();
|
||||
return -1;
|
||||
@ -28,12 +30,15 @@ int SigningTransaction::run() {
|
||||
|
||||
auto privKey = mUser->getPrivKey();
|
||||
if (!privKey) {
|
||||
em->addError(transactionError);
|
||||
em->getErrors(mUser);
|
||||
em->addError(new Error("SigningTransaction", "couldn't get user priv key"));
|
||||
em->sendErrorsAsEmail();
|
||||
return -2;
|
||||
}
|
||||
|
||||
|
||||
delete transactionError;
|
||||
delete privKey;
|
||||
|
||||
return 0;
|
||||
|
||||
@ -45,7 +45,7 @@ enum PageState
|
||||
<p>Er wurde an deine E-Mail Adresse: <%= mSession->getUser()->getEmail() %> gesendet.</p>
|
||||
<% } %>
|
||||
<input type="number" name="email-verification-code">
|
||||
<input class="grd-form-bn grd-form-bn-succeed" type="submit" value="Überprüfe Code">
|
||||
<input class="grd-form-bn grd-form-bn-succeed grd_clickable" type="submit" value="Überprüfe Code">
|
||||
<p>Du hast bisher keinen Code erhalten? </p>
|
||||
<p>E-Mail erneut zuschicken (in Arbeit)</p>
|
||||
</form>
|
||||
|
||||
@ -45,7 +45,8 @@ enum PageState {
|
||||
size_t notReadyTransactions = 0;
|
||||
size_t sumTransactions = mSession->getProcessingTransactionCount();
|
||||
if(sumTransactions == 0) {
|
||||
response.redirect(ServerConfig::g_php_serverPath + "/");
|
||||
response.redirect(ServerConfig::g_php_serverPath);
|
||||
return;
|
||||
}
|
||||
auto processingTransaction = mSession->getNextReadyTransaction(¬ReadyTransactions);
|
||||
if(sumTransactions > 0) {
|
||||
|
||||
@ -64,7 +64,8 @@ enum PageState
|
||||
<div class="grd_textarea">
|
||||
<%= mSession->getPassphrase() %>
|
||||
</div>
|
||||
<a href="saveKeys" class="grd-form-bn-succeed">Weiter</a>
|
||||
<div class="grd-margin-top-10"></div>
|
||||
<a href="saveKeys" class="grd-form-bn grd-form-bn-succeed grd_clickable">Weiter</a>
|
||||
</div>
|
||||
<% } else if(state == PAGE_ASK_PASSPHRASE) { %>
|
||||
<p>Deine E-Mail Adresse wurde erfolgreich bestätigt. </p>
|
||||
@ -82,7 +83,8 @@ enum PageState
|
||||
</p>
|
||||
<textarea style="width:100%;height:100px" name="passphrase-existing"><%= !form.empty() ? form.get("passphrase-existing", "") : "" %></textarea>
|
||||
</fieldset>
|
||||
<input class="grd-form-bn grd-form-bn-succeed" type="submit" name="submit" value="Weiter">
|
||||
|
||||
<input class="grd-form-bn grd-form-bn-succeed grd_clickable" type="submit" name="submit" value="Weiter">
|
||||
|
||||
</form>
|
||||
<% } else { %>
|
||||
|
||||
@ -124,7 +124,7 @@ enum PageState
|
||||
<p class="grd_textarea">
|
||||
<%= mSession->getUser()->getPublicKeyHex() %>
|
||||
</p>-->
|
||||
<a class="grd-form-bn" href="<%= uri_start %>/">Zurück zur Startseite</a>
|
||||
<a class="grd-form-bn" href="<%= uri_start %>">Zurück zur Startseite</a>
|
||||
</div>
|
||||
<% } else if(state == PAGE_ERROR) { %>
|
||||
<div class="grd_text">
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user