/**
  * Funkce pro vytvoření kódu pro změnu hesla a jeho odeslání na mail
  * @param User|int $user
  * @throws \Exception
  * @return UserForgottenPassword
  */
 public function generateUserForgottenPassword($user)
 {
     if (!$user instanceof User) {
         $user = $this->findUser($user);
     }
     try {
         /** @var UserForgottenPassword $userForgottenPassword */
         $userForgottenPassword = $this->userForgottenPasswordsRepository->findBy(['user_id' => $user->userId]);
         if (strtotime('-2DAY') > $userForgottenPassword->generated->getTimestamp()) {
             $userForgottenPassword = new UserForgottenPassword();
             $userForgottenPassword->user = $user;
         }
     } catch (\Exception $e) {
         /*chybu očekáváme...*/
         $userForgottenPassword = new UserForgottenPassword();
         $userForgottenPassword->user = $user;
     }
     $userForgottenPassword->generated = new DateTime();
     if (!($code = $userForgottenPassword->getCode())) {
         $userForgottenPassword->setCode(StringsHelper::randString(10));
     }
     $this->userForgottenPasswordsRepository->persist($userForgottenPassword);
     return $userForgottenPassword;
 }