From 37195eb6055f8288fd8fc70757d98b8679bfaa0f Mon Sep 17 00:00:00 2001
From: Moreau Elise <moreau.elise13@gmail.com>
Date: Sat, 31 Oct 2020 14:59:34 +0100
Subject: [PATCH] solve bug when email or username already in use

---
 .../Actions/User/CreateUserAction.php         | 37 ++++++++++++++++++-
 1 file changed, 36 insertions(+), 1 deletion(-)

diff --git a/src/Application/Actions/User/CreateUserAction.php b/src/Application/Actions/User/CreateUserAction.php
index 0f727ac..2ec2ede 100755
--- a/src/Application/Actions/User/CreateUserAction.php
+++ b/src/Application/Actions/User/CreateUserAction.php
@@ -5,7 +5,8 @@ namespace App\Application\Actions\User;
 
 use Psr\Http\Message\ResponseInterface as Response;
 use Psr\Http\Message\ServerRequestInterface as Request;
-use App\Domain\User\User ;
+use App\Domain\User\User;
+use GeoIp2\Database\Reader;
 use DateTime;
 
 class CreateUserAction extends UserAction
@@ -44,6 +45,40 @@ class CreateUserAction extends UserAction
             );
         }
 
+        if ($this->userRepository->findOneBy(array('username' =>  $username))){
+            return $this->twig->render(
+                $this->response, "/user/create_user.twig",
+                array(
+                    "username" => $username,
+                    "firstname" => $firstname,
+                    "lastname" => $lastname,
+                    "mail" => $mail,
+                    "contaminated" => $contaminated,
+                    "password" => null,
+                    "confirmpassword" => null,
+                    "message" => "Username already used",
+                    "formstatus" => "error"
+                )
+            );
+        }
+
+        if ($this->userRepository->findOneBy(array('mail' =>  $mail))){
+            return $this->twig->render(
+                $this->response, "/user/create_user.twig",
+                array(
+                    "username" => $username,
+                    "firstname" => $firstname,
+                    "lastname" => $lastname,
+                    "mail" => $mail,
+                    "contaminated" => $contaminated,
+                    "password" => null,
+                    "confirmpassword" => null,
+                    "message" => "Mail already used",
+                    "formstatus" => "error"
+                )
+            );
+        }
+        
         $password = password_hash($password, PASSWORD_DEFAULT);
 
         $date = new DateTime('now');
-- 
GitLab