/** * Reset a user's password * * @param string $email * @param string $password * @param string $code * @return User; */ public function reset($email, $password, $code) { if ($this->check($email, $code)) { $user = $this->findUserByEmail(Email::fromNative($email)); $password = $this->hasher->hash(new Password($password)); $user->resetPassword($password); $this->users->update($user); $this->reminders->deleteReminderByCode(ReminderCode::fromNative($code)); return $user; } throw new InvalidValueException("{$code} is not a valid reminder code"); }
/** * Delete existing Reminders for Email * * @param Email $email * @return void */ public function deleteExistingRemindersForEmail(Email $email) { $query = $this->em->createQuery('DELETE Cribbb\\Domain\\Model\\Identity\\Reminder r WHERE r.email = :email'); $query->setParameters(['email' => $email->toString()]); $query->execute(); }
/** @test */ public function should_return_as_string() { $email = new Email('*****@*****.**'); $this->assertEquals('*****@*****.**', $email->toString()); $this->assertEquals('*****@*****.**', (string) $email); }
/** * Set the User's email address * * @param Email $email * @return void */ private function setEmail(Email $email) { $this->email = $email->toString(); }
/** * Find a user by their email address * * @param Email $email * @return User */ public function userOfEmail(Email $email) { return $this->em->getRepository($this->class)->findOneBy(['email' => $email->toString()]); }