#pragma once #include "../Include/KSGNetwork.h" #include namespace KSGClient { // Wird benutzt, um Accounts zu erstellen zu ändern oder zu löschen class RegisterClient : public RegisterServerClient { private: Framework::Text ip; unsigned short port; int cId; Network::Klient* k; char* key; unsigned char keyLen; Framework::Critical cs; Framework::Text err; public: // Konstruktor RegisterClient(int klientId, unsigned short port, const char* ip, const char* key, unsigned char keyLen); // Destruktor ~RegisterClient(); // verbindet ich mit dem Register Server // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst bool verbinde() override; // Sendet eine Anfrage auf Erstellung eines neuen Accounts. Ein neuer Account kann erst verwendet werden, wenn ein Link in der Bestätigungsemail angeklickt wurde. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst // name: Der Login Name des Accounts // pass: Das Login Passwort des Accounts // geheim: Das Geheimnis des Accounts // eMail: Die EMail Adresse an die die bestätigungs EMail gesendet werden soll // jahr: Das Jahr des Geburtsdatums // monat: Der Monat des Geburtstages // tag: Der Tag des Geburtstages bool accountErstellen(const char* name, const char* pass, const char* geheim, const char* eMail, unsigned short jahr, char monat, char tag) override; // Sendet eine Anfrage auf Löschung eines neuen Accounts. Ein neuer Account kann erst gelöscht werden, wenn ein Link in der Bestätigungsemail angeklickt wurde. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst // name: Der Login Name des Accounts // pass: Das Login Passwort des Accounts // geheim: Das Geheimnis des Accounts bool accountLöschen(const char* name, const char* pass, const char* geheim) override; // Ändert das Passwort eines Accounts // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst // name: Der Login Name des Accounts // pass: Das Login Passwort des Accounts // geheim: Das Geheimnis des Accounts // nPass: Das neue Passwort des Accounts bool passwortÄndern(const char* name, const char* pass, const char* geheim, const char* nPass) override; // Ändert die EMail Adresse eines Accounts // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst // name: Der Login Name des Accounts // pass: Das Login Passwort des Accounts // geheim: Das Geheimnis des Accounts // nEMail: Die neue EMail Adresse bool eMailÄndern(const char* name, const char* pass, const char* geheim, const char* nEMail) override; // Ändert das Geheimnis eines Accounts // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst // name: Der Login Name des Accounts // pass: Das Login Passwort des Accounts // geheim: Das Geheimnis des Accounts // nGeheim: Das neue Geheimnis bool geheimnisÄndern(const char* name, const char* pass, const char* geheim, const char* nGeheim) override; // Sendet eine Anfrage auf Name Vergessen. Der Name wird an die angegebene EMail Adresse gesendet // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst // pass: Das Login Passwort des Accounts // geheim: Das Geheimnis des Accounts bool nameVergessen(const char* pass, const char* geheim) override; // Sendet eine Anfrage auf Passwort Vergessen. Es wird ein Link an die angegebene Email Adresse gesendet, über den ein neues Passwort vergeben werden kann // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst // name: Der Login Name des Accounts // geheim: Das Geheimnis des Accounts bool passwortVergessen(const char* name, const char* geheim) override; // Sendet eine Anfrage auf Geheimnis Vergessen. Das Geheimnis wird an die angegebene EMail Adresse gesendet // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst // name: Der Login Name des Accounts // pass: Das Login Passwort des Accounts bool geheimnisVergessen(const char* name, const char* pass) override; // Sendet eine Anfrage auf EMail Vergessen. Die EMail Adresse wird direkt vom Server zurückgegeben // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst // name: Der Login Name des Accounts // pass: Das Login Passwort des Accounts // geheim: Das Geheimnis des Accounts // eMail: Ein Zeiger auf eine Zeichenkette. Diese wird bei einem Erfolgreichen Aufruf auf die EMail Adresse gesetzt und muss manuell mit delete[] gelöscht werden bool eMailVergessen(const char* name, const char* pass, const char* geheim, char** eMail) override; // Erhält die Verbindung aufrecht // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst // Sollte während einer bestehenden Verbindung etwa einmal alle 60 Sekunden aufgerufen werden, da sonst der Router die Verbindung automatisch trennt bool keepAlive() override; // Trennt die Verbindung zum Server // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden bool trenne(bool abmelden) override; // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst bool istVerbunden() const override; // gibt den Letzten Fehlertext zuück // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist const char* getLetzterFehler() const override; }; }