getFlash();
$user = $loginTokenRepo->authenticate($token);
if (!$user instanceof Entity\User) {
$flash->addMessage(
sprintf(
'%s',
__('Invalid token specified.'),
),
Flash::ERROR
);
return $response->withRedirect($request->getRouter()->named('account:login'));
}
if ($request->isPost()) {
$newPassword = $request->getParsedBodyParam('password');
$user->setNewPassword($newPassword);
$em->persist($user);
$em->flush();
$request->getAuth()->setUser($user);
$loginTokenRepo->revokeForUser($user);
$flash->addMessage(
sprintf(
'%s
%s',
__('Logged in using account recovery token'),
__('Your password has been updated.')
),
Flash::SUCCESS
);
return $response->withRedirect($request->getRouter()->named('dashboard'));
}
return $request->getView()->renderToResponse($response, 'frontend/account/recover');
}
}