diff --git a/src/Service/User.php b/src/Service/User.php index c30d697..53eee29 100644 --- a/src/Service/User.php +++ b/src/Service/User.php @@ -12,11 +12,12 @@ class User extends Main /** * @param string $invite * @param string $username + * @param string $email * @param string $password * @return UserModel * @throws \Exception */ - public function register($invite, $username, $password) + public function register($invite, $username, $email, $password) { $invite = InviteQuery::create()->findOneByInvite($invite); @@ -24,12 +25,13 @@ class User extends Main throw new \Exception("Invalid invite code"); } - $this->validateUserParams($username, $password); + $this->validateUserParams($username, $email, $password); $inviteUser = $invite->getUser(); $user = new UserModel(); $user->setUsername($username); + $user->setEmail($email); $user->setPassword(\password_hash($password, PASSWORD_DEFAULT)); if ($inviteUser === null || $inviteUser->getMaxInvites() === -1) { @@ -47,7 +49,7 @@ class User extends Main return $user; } - public function validateUserParams($username, $password) { + public function validateUserParams($username, $email, $password) { if ($username === "") { throw new \Exception("No username given"); } @@ -56,6 +58,10 @@ class User extends Main throw new \Exception("Username can only consist of a-z, 0-9 and -"); } + if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { + throw new \Exception("Email is invalid"); + } + if ($password === "") { throw new \Exception("Password is nothing, though strong. we rather not have you use that"); } @@ -69,9 +75,9 @@ class User extends Main } } - public function createSuperuser($username, $password) { + public function createSuperuser($username, $email, $password) { - $this->validateUserParams($username, $password); + $this->validateUserParams($username, $email, $password); $user = new UserModel(); $user->setUsername($username);