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; }