RegisterServer.h 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. #pragma once
  2. #include "../Include/KSGNetwork.h"
  3. #include <Critical.h>
  4. namespace KSGClient
  5. {
  6. // Wird benutzt, um Accounts zu erstellen zu ändern oder zu löschen
  7. class RegisterClient : public RegisterServerClient
  8. {
  9. private:
  10. Framework::Text ip;
  11. unsigned short port;
  12. int cId;
  13. Network::Klient* k;
  14. char* key;
  15. unsigned char keyLen;
  16. Framework::Critical cs;
  17. Framework::Text err;
  18. public:
  19. // Konstruktor
  20. RegisterClient(int klientId, unsigned short port, const char* ip, const char* key, unsigned char keyLen);
  21. // Destruktor
  22. ~RegisterClient();
  23. // verbindet ich mit dem Register Server
  24. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  25. bool verbinde() override;
  26. // Sendet eine Anfrage auf Erstellung eines neuen Accounts. Ein neuer Account kann erst verwendet werden, wenn ein Link in der Bestätigungsemail angeklickt wurde.
  27. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  28. // name: Der Login Name des Accounts
  29. // pass: Das Login Passwort des Accounts
  30. // geheim: Das Geheimnis des Accounts
  31. // eMail: Die EMail Adresse an die die bestätigungs EMail gesendet werden soll
  32. // jahr: Das Jahr des Geburtsdatums
  33. // monat: Der Monat des Geburtstages
  34. // tag: Der Tag des Geburtstages
  35. bool accountErstellen(const char* name, const char* pass, const char* geheim, const char* eMail, unsigned short jahr, char monat, char tag) override;
  36. // 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.
  37. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  38. // name: Der Login Name des Accounts
  39. // pass: Das Login Passwort des Accounts
  40. // geheim: Das Geheimnis des Accounts
  41. bool accountLöschen(const char* name, const char* pass, const char* geheim) override;
  42. // Ändert das Passwort eines Accounts
  43. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  44. // name: Der Login Name des Accounts
  45. // pass: Das Login Passwort des Accounts
  46. // geheim: Das Geheimnis des Accounts
  47. // nPass: Das neue Passwort des Accounts
  48. bool passwortÄndern(const char* name, const char* pass, const char* geheim, const char* nPass) override;
  49. // Ändert die EMail Adresse eines Accounts
  50. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  51. // name: Der Login Name des Accounts
  52. // pass: Das Login Passwort des Accounts
  53. // geheim: Das Geheimnis des Accounts
  54. // nEMail: Die neue EMail Adresse
  55. bool eMailÄndern(const char* name, const char* pass, const char* geheim, const char* nEMail) override;
  56. // Ändert das Geheimnis eines Accounts
  57. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  58. // name: Der Login Name des Accounts
  59. // pass: Das Login Passwort des Accounts
  60. // geheim: Das Geheimnis des Accounts
  61. // nGeheim: Das neue Geheimnis
  62. bool geheimnisÄndern(const char* name, const char* pass, const char* geheim, const char* nGeheim) override;
  63. // Sendet eine Anfrage auf Name Vergessen. Der Name wird an die angegebene EMail Adresse gesendet
  64. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  65. // pass: Das Login Passwort des Accounts
  66. // geheim: Das Geheimnis des Accounts
  67. bool nameVergessen(const char* pass, const char* geheim) override;
  68. // Sendet eine Anfrage auf Passwort Vergessen. Es wird ein Link an die angegebene Email Adresse gesendet, über den ein neues Passwort vergeben werden kann
  69. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  70. // name: Der Login Name des Accounts
  71. // geheim: Das Geheimnis des Accounts
  72. bool passwortVergessen(const char* name, const char* geheim) override;
  73. // Sendet eine Anfrage auf Geheimnis Vergessen. Das Geheimnis wird an die angegebene EMail Adresse gesendet
  74. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  75. // name: Der Login Name des Accounts
  76. // pass: Das Login Passwort des Accounts
  77. bool geheimnisVergessen(const char* name, const char* pass) override;
  78. // Sendet eine Anfrage auf EMail Vergessen. Die EMail Adresse wird direkt vom Server zurückgegeben
  79. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  80. // name: Der Login Name des Accounts
  81. // pass: Das Login Passwort des Accounts
  82. // geheim: Das Geheimnis des Accounts
  83. // 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
  84. bool eMailVergessen(const char* name, const char* pass, const char* geheim, char** eMail) override;
  85. // Erhält die Verbindung aufrecht
  86. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  87. // Sollte während einer bestehenden Verbindung etwa einmal alle 60 Sekunden aufgerufen werden, da sonst der Router die Verbindung automatisch trennt
  88. bool keepAlive() override;
  89. // Trennt die Verbindung zum Server
  90. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  91. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  92. bool trenne(bool abmelden) override;
  93. // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst
  94. bool istVerbunden() const override;
  95. // gibt den Letzten Fehlertext zuück
  96. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  97. const char* getLetzterFehler() const override;
  98. };
  99. }