From fbad4cf8400afdc69c26014933571049ef330b0b Mon Sep 17 00:00:00 2001 From: Moreau Elise <moreau.elise13@gmail.com> Date: Sun, 25 Oct 2020 18:13:44 +0100 Subject: [PATCH] add contaminated info --- app/routes.php | 1 + .../Actions/User/CreateUserAction.php | 4 +- .../Actions/User/ModifyUserAction.php | 5 +- src/Domain/Group/Group.php | 11 +++ src/Domain/User/User.php | 90 ++++++++++--------- templates/user/create_user.twig | 5 ++ templates/user/modify_user.twig | 5 ++ 7 files changed, 78 insertions(+), 43 deletions(-) diff --git a/app/routes.php b/app/routes.php index 17b3964..d555329 100644 --- a/app/routes.php +++ b/app/routes.php @@ -151,6 +151,7 @@ return function (App $app) { $app->group( '/api', function (Group $group) { $group->get('/users', ListUsersJson::class); + $group->get('/{id}/userscontaminated', UsersToJson::class); } ); }; diff --git a/src/Application/Actions/User/CreateUserAction.php b/src/Application/Actions/User/CreateUserAction.php index 6bb6f6a..0f727ac 100755 --- a/src/Application/Actions/User/CreateUserAction.php +++ b/src/Application/Actions/User/CreateUserAction.php @@ -24,6 +24,7 @@ class CreateUserAction extends UserAction $mail = $this->checkvalue($parsedRequestBody['mail']); $password = $this->checkvalue($parsedRequestBody['password']); $confirmPassword = $this->checkvalue($parsedRequestBody['confirmpassword']); + $contaminated = isset($parsedRequestBody['contaminated']) ? true : false; if ($password != $confirmPassword) { return $this->twig->render( @@ -33,6 +34,7 @@ class CreateUserAction extends UserAction "firstname" => $firstname, "lastname" => $lastname, "mail" => $mail, + "contaminated" => $contaminated, "password" => null, "confirmpassword" => null, "password_message" => "Passwords don't match", @@ -46,7 +48,7 @@ class CreateUserAction extends UserAction $date = new DateTime('now'); - $user = new User(null, $username, $firstname, $lastname, $mail, $password, $date); + $user = new User(null, $username, $firstname, $lastname, $mail, $password, $date, $contaminated); $this->em->persist($user); $this->em->flush(); diff --git a/src/Application/Actions/User/ModifyUserAction.php b/src/Application/Actions/User/ModifyUserAction.php index 13bc56f..7623616 100644 --- a/src/Application/Actions/User/ModifyUserAction.php +++ b/src/Application/Actions/User/ModifyUserAction.php @@ -24,6 +24,8 @@ class ModifyUserAction extends UserAction $mail = $this->checkvalue($parsedRequestBody['mail']); $password = $this->checkvalue($parsedRequestBody['password']); $confirmPassword = $this->checkvalue($parsedRequestBody['confirmpassword']); + $confirmPassword = $this->checkvalue($parsedRequestBody['confirmpassword']); + $contaminated = isset($parsedRequestBody['contaminated']) ? true : false; if ($password != $confirmPassword) { return $this->twig->render( @@ -33,6 +35,7 @@ class ModifyUserAction extends UserAction "firstname" => $firstname, "lastname" => $lastname, "mail" => $mail, + "contaminated" => $contaminated, "password" => null, "confirmpassword" => null, "password_message" => "Passwords don't match", @@ -51,7 +54,7 @@ class ModifyUserAction extends UserAction $user_db->setFirstname($firstname); $user_db->setLastname($lastname); $user_db->setMail($mail); - + $user_db->setContaminated($contaminated); $this->em->persist($user_db); $this->em->flush(); diff --git a/src/Domain/Group/Group.php b/src/Domain/Group/Group.php index cb0f4c3..bd664a5 100755 --- a/src/Domain/Group/Group.php +++ b/src/Domain/Group/Group.php @@ -98,7 +98,18 @@ class Group implements JsonSerializable } } return false; + } + + public function getContaminatedUsers(): array + { + $contaminated = []; + for ($i = 0; $i < count($this->users); $i += 1){ + if ($this->users[i]->getContaminated == 1) { + array_push($contaminated, $this->users[i]); + } + } + return $contaminated; } /** diff --git a/src/Domain/User/User.php b/src/Domain/User/User.php index 18bdb17..b0632e2 100755 --- a/src/Domain/User/User.php +++ b/src/Domain/User/User.php @@ -84,6 +84,39 @@ class User implements JsonSerializable */ private $location; + /** + * @param int|null $id + * @param string $username + * @param string $firstName + * @param string $lastName + * @param string $mail + * @param string $password + * @param date $joinDate + */ + + public function __construct( + ?int $id, + string $username, + string $firstName, + string $lastName, + string $mail, + string $password, + DateTime $joinDate, + bool $contaminated + ) { + $this->id = $id; + $this->username = strtolower($username); + $this->firstName = ucfirst($firstName); + $this->lastName = ucfirst($lastName); + $this->password = $password; + $this->mail = strtolower($mail); + $this->contaminated = $contaminated; + $this->joinDate = $joinDate; + $this->groups = new \Doctrine\Common\Collections\ArrayCollection(); + $this->admins = new \Doctrine\Common\Collections\ArrayCollection(); + + } + /** * @return int|null */ @@ -179,7 +212,10 @@ class User implements JsonSerializable */ public function isCurrentUser(): bool { - return $_SESSION['userId'] == $this->id; + if (isset($_SESSION['userId'])){ + return $_SESSION['userId'] == $this->id; + } + return false; } /** @@ -195,7 +231,7 @@ class User implements JsonSerializable */ public function setFirstname($firstName) { - $this->$firstName = $firstName; + $this->firstName = $firstName; } /** @@ -203,7 +239,7 @@ class User implements JsonSerializable */ public function setLastname($lastName) { - $this->$lastName = $lastName; + $this->lastName = $lastName; } /** @@ -211,7 +247,7 @@ class User implements JsonSerializable */ public function setMail($mail) { - $this->$mail = $mail; + $this->mail = $mail; } /** @@ -230,6 +266,14 @@ class User implements JsonSerializable { $this->location = $location; } + + /** + * Set property + */ + public function setContaminated($contaminated) + { + $this->contaminated = $contaminated; + } public function addGroup(Group $group){ $this->groups->add($group); @@ -270,40 +314,4 @@ class User implements JsonSerializable 'join_date' => $this->getJoinDateString() ]; } - - - - - /** - * @param int|null $id - * @param string $username - * @param string $firstName - * @param string $lastName - * @param string $mail - * @param string $password - * @param date $joinDate - */ - - public function __construct( - ?int $id, - string $username, - string $firstName, - string $lastName, - string $mail, - string $password, - DateTime $joinDate - ) { - $this->id = $id; - $this->username = strtolower($username); - $this->firstName = ucfirst($firstName); - $this->lastName = ucfirst($lastName); - $this->password = $password; - $this->mail = strtolower($mail); - $this->contaminated = false; - $this->joinDate = $joinDate; - $this->groups = new \Doctrine\Common\Collections\ArrayCollection(); - $this->admins = new \Doctrine\Common\Collections\ArrayCollection(); - - } - -} +} \ No newline at end of file diff --git a/templates/user/create_user.twig b/templates/user/create_user.twig index aabc7e0..be9ec9a 100644 --- a/templates/user/create_user.twig +++ b/templates/user/create_user.twig @@ -40,6 +40,11 @@ </ul> </div> {% endif %} + <div class="field"> + <input type="checkbox" name="contaminated"> + <label for="contaminated">Contaminated</label> + </input> + </div> </div> <input type="submit" class="ui submit button"> </form> diff --git a/templates/user/modify_user.twig b/templates/user/modify_user.twig index 14b8070..f6b3ac6 100644 --- a/templates/user/modify_user.twig +++ b/templates/user/modify_user.twig @@ -41,6 +41,11 @@ </div> {% endif %} </div> + <div class="field"> + <input type="checkbox" name="contaminated" id="contaminated"> + <label for="contaminated">Contaminated</label> + </input> + </div> <input type="submit" class="ui submit button"> </form> </div> -- GitLab