Fix control flow of registration RequestHandler
parent
9e0267513b
commit
13495cd041
|
@ -9,6 +9,7 @@ use Mcp\RequestHandler;
|
||||||
use Mcp\Middleware\PreSessionMiddleware;
|
use Mcp\Middleware\PreSessionMiddleware;
|
||||||
|
|
||||||
use Exception;
|
use Exception;
|
||||||
|
use Mcp\Util\Util;
|
||||||
|
|
||||||
class Register extends RequestHandler
|
class Register extends RequestHandler
|
||||||
{
|
{
|
||||||
|
@ -56,12 +57,14 @@ class Register extends RequestHandler
|
||||||
$statementAvatarName->execute(['FirstName' => $nameParts[0], 'LastName' => $nameParts[1]]);
|
$statementAvatarName->execute(['FirstName' => $nameParts[0], 'LastName' => $nameParts[1]]);
|
||||||
if ($statementAvatarName->rowCount() > 0) {
|
if ($statementAvatarName->rowCount() > 0) {
|
||||||
$this->displayPage("Der gewählte Name ist bereits vergeben.");
|
$this->displayPage("Der gewählte Name ist bereits vergeben.");
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$pass = trim($_POST['password']);
|
$pass = trim($_POST['password']);
|
||||||
if (strlen($pass) < $this->app->config('password-min-length')) {
|
if (strlen($pass) < $this->app->config('password-min-length')) {
|
||||||
$this->displayPage('Dein Passwort muss mindestens '.$this->app->config('password-min-length').' Zeichen lang sein.');
|
$this->displayPage('Dein Passwort muss mindestens '.$this->app->config('password-min-length').' Zeichen lang sein.');
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$email = trim($_POST['email']);
|
$email = trim($_POST['email']);
|
||||||
|
@ -71,6 +74,7 @@ class Register extends RequestHandler
|
||||||
$avatar = trim($_POST['avatar']);
|
$avatar = trim($_POST['avatar']);
|
||||||
} else {
|
} else {
|
||||||
$this->displayPage("Der gewählte Standardavatar existiert nicht.");
|
$this->displayPage("Der gewählte Standardavatar existiert nicht.");
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$opensim = new OpenSim($this->app->db());
|
$opensim = new OpenSim($this->app->db());
|
||||||
|
@ -82,7 +86,8 @@ class Register extends RequestHandler
|
||||||
$statementInviteDeleter = $this->app->db()->prepare('DELETE FROM mcp_invites WHERE InviteCode = :code');
|
$statementInviteDeleter = $this->app->db()->prepare('DELETE FROM mcp_invites WHERE InviteCode = :code');
|
||||||
$statementInviteDeleter->execute(['code' => $_REQUEST['code']]);
|
$statementInviteDeleter->execute(['code' => $_REQUEST['code']]);
|
||||||
if ($statementInviteDeleter->rowCount() == 0) {
|
if ($statementInviteDeleter->rowCount() == 0) {
|
||||||
$this->displayError("Der angegebene Einladungscode ist nicht mehr gültig.");
|
Util::displayError($this->app, "Der angegebene Einladungscode ist nicht mehr gültig.");
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
@ -116,6 +121,7 @@ class Register extends RequestHandler
|
||||||
$this->app->db()->rollBack();
|
$this->app->db()->rollBack();
|
||||||
error_log('Could not create Account: '.$pdoException->getMessage());
|
error_log('Could not create Account: '.$pdoException->getMessage());
|
||||||
$this->displayPage('Fehler bei der Erstellung deines Accounts. Bitte versuche es später erneut.');
|
$this->displayPage('Fehler bei der Erstellung deines Accounts. Bitte versuche es später erneut.');
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
session_abort();
|
session_abort();
|
||||||
|
@ -152,26 +158,18 @@ class Register extends RequestHandler
|
||||||
])->render();
|
])->render();
|
||||||
}
|
}
|
||||||
|
|
||||||
private function displayError(string $message): void
|
|
||||||
{
|
|
||||||
$this->app->template('error.php')->parent('__presession.php')->vars([
|
|
||||||
'error-message' => $message,
|
|
||||||
'title' => 'Fehler'
|
|
||||||
])->render();
|
|
||||||
}
|
|
||||||
|
|
||||||
private function checkInvite(): bool
|
private function checkInvite(): bool
|
||||||
{
|
{
|
||||||
if (!isset($_REQUEST['code'])) {
|
if (!isset($_REQUEST['code'])) {
|
||||||
$this->displayError("Du benötigst einen Einladungscode, um dich bei 4Creative zu registrieren.");
|
Util::displayError($this->app, "Du benötigst einen Einladungscode, um dich bei 4Creative zu registrieren.");
|
||||||
} elseif (strlen($_REQUEST['code']) != 32 || !preg_match('/^[a-f0-9]+$/', $_REQUEST['code'])) {
|
} elseif (strlen($_REQUEST['code']) != 32 || !preg_match('/^[a-f0-9]+$/', $_REQUEST['code'])) {
|
||||||
$this->displayError("Der angegebene Einladungscode ist nicht gültig. Nutze genau den Link, der dir zugeschickt wurde.");
|
Util::displayError($this->app, "Der angegebene Einladungscode ist nicht gültig. Nutze genau den Link, der dir zugeschickt wurde.");
|
||||||
} else {
|
} else {
|
||||||
$statementInviteCode = $this->app->db()->prepare("SELECT 1 FROM mcp_invites WHERE InviteCode = ? LIMIT 1");
|
$statementInviteCode = $this->app->db()->prepare("SELECT 1 FROM mcp_invites WHERE InviteCode = ? LIMIT 1");
|
||||||
$statementInviteCode->execute([$_REQUEST['code']]);
|
$statementInviteCode->execute([$_REQUEST['code']]);
|
||||||
|
|
||||||
if ($statementInviteCode->rowCount() == 0) {
|
if ($statementInviteCode->rowCount() == 0) {
|
||||||
$this->displayError("Der angegebene Einladungscode ist nicht gültig. Nutze genau den Link, der dir zugeschickt wurde.");
|
Util::displayError($this->app, "Der angegebene Einladungscode ist nicht gültig. Nutze genau den Link, der dir zugeschickt wurde.");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
|
Loading…
Reference in New Issue