/**
  * Update a room right
  *
  * @param      Client  $client          The client to update the room right to
  * @param      string  $roomRightName   The room right name
  * @param      bool    $value           The new room right value
  *
  * @return     bool    True if the room right has been updated, false otherwise
  */
 public function updateRoomRight(Client $client, string $roomRightName, bool $value) : bool
 {
     $roomRight = $client->getUser()->getRoomRight()->getEntityById($this->room->id);
     // Create the room right if it does not exist and add it to the user room right collection
     if ($roomRight === null) {
         $roomRight = new RoomRight();
         $roomRight->idRoom = $this->room->id;
         $roomRight->idUser = $client->getUser()->id;
         $client->getUser()->getRoomRight()->add($roomRight);
     }
     $roomRightEntityManager = new RoomRightEntityManager($roomRight);
     return $roomRightEntityManager->update($roomRightName, $value);
 }
 /**
  * Save the current user collection
  *
  * @return     bool  True if the user collection has been saved, false otherwise
  */
 public function saveUserCollection() : bool
 {
     $userEntityManager = new UserEntityManager();
     $userRightEntityManager = new UserRightEntityManager();
     $roomRightEntityManager = new RoomRightEntityManager();
     $success = $userEntityManager->saveCollection($this->userCollection);
     if ($success) {
         foreach ($this->userCollection as $user) {
             if ($success && $user->getRight() !== null) {
                 $success = $userRightEntityManager->saveEntity($user->getRight());
             }
             if ($success && $user->getRoomRight() !== null) {
                 $success = $roomRightEntityManager->saveCollection($user->getRoomRight());
             }
         }
     }
     return $success;
 }