diff --git a/lib/register.php b/lib/register.php
index 97ca0d8..db7e17f 100644
--- a/lib/register.php
+++ b/lib/register.php
@@ -38,13 +38,15 @@ class Registrator extends BaseClass {
return false;
}
- $this->log->d("Validation started for token: {$_GET['token']}");
+ $this->log->n("Validation started for token: {$_GET['token']}");
if ($this->checkToken() === true) {
- if ($this->generateToken(32) === true) {
+ if ($this->generateToken(24) === true) {
if ($this->registerMXID($this->token) === true) {
- $message = "Your temporary password is {$this->token}. Please
- immediately change your password!";
if ($this->removeRequest() === true) {
+ $nick = htmlspecialchars($this->dataSet[0]['nick']);
+ $message = "We have successfull registered your
+ account. Your temporary password is:
{$this->token}
+
Please immediately change your password!";
return true;
}
}
@@ -71,7 +73,7 @@ class Registrator extends BaseClass {
$count = count($this->dataSet);
if ($count === 0) {
- $this->log->d("Token {$_GET['token']} not found in database");
+ $this->log->e("Token {$_GET['token']} not found in database");
} else if ($count > 1) {
$this->log->e("Error: More than one token found");
} else {
@@ -84,14 +86,25 @@ class Registrator extends BaseClass {
private function registerMXID(string $tmp_passwd): bool {
/**
- * Registriert den Nutzer am Matrixserver. Dazu wird ein zufälliger
- * String erzeugt und zusammen mit dem Nick ein CLI Tool aus dem Paket
- * Paket von matrix-synapse aufgerufen.
+ * Registriert den Nutzer am Matrixserver. Dazu bekommt die Funktion
+ * einen zufällig erzeugten String als vorläufiges Passwort
+ * übergeben. Dieser wird zusammen mit dem Nick aus der Datenbank an
+ * den Befehl 'register_new_matrix_user' übergeben.
*/
- // $cmd = "register_new_matrix_user -u {$this->dataSet[0]['nick']} -p {$tmp_pass}";
- // $response = system($cmd);
- return true;
+ $response = null;
+ $output = null;
+ $nick = escapeshellarg($this->dataSet[0]['nick']);
+ $pass = escapeshellarg($tmp_passwd);
+ $cmd = "register_new_matrix_user -u " . $nick . " -p " . $pass;
+ exec($cmd, $output, $response);
+ if ($response === 1) {
+ $this->log->n("Account for '{$nick}' successfull registered");
+ return true;
+ } else {
+ $this->log->e("Failed to register account for {$nick}");
+ }
+ return false;
}
private function removeRequest(): bool {
@@ -109,6 +122,7 @@ class Registrator extends BaseClass {
$this->log->e("Error: {$e->getMessage()}");
return false;
}
+ $this->log->n("Request for {$nick} ($token) successfull removed");
return true;
}