/**
* {@inheritdoc}
*/
public function handle(ServerRequestInterface $request)
{
$id = array_get($request->getQueryParams(), 'id');
$actor = $request->getAttribute('actor');
$this->assertRegistered($actor);
if ($actor->id != $id || $actor->is_activated) {
throw new PermissionDeniedException();
}
$token = EmailToken::generate($actor->email, $actor->id);
$token->save();
$data = ['{username}' => $actor->username, '{url}' => $this->url->toRoute('confirmEmail', ['token' => $token->id]), '{forum}' => $this->settings->get('forum_title')];
$body = $this->translator->trans('core.email.activate_account.body', $data);
$this->mailer->raw($body, function (Message $message) use($actor, $data) {
$message->to($actor->email);
$message->subject('[' . $data['{forum}'] . '] ' . $this->translator->trans('core.email.activate_account.subject'));
});
return new EmptyResponse();
}