Inheritance: extends Flarum\Database\AbstractModel
Example #1
0
 private function collectGarbage()
 {
     if ($this->hitsLottery()) {
         AccessToken::whereRaw('last_activity <= ? - lifetime', [time()])->delete();
         $earliestToKeep = date('Y-m-d H:i:s', time() - 24 * 60 * 60);
         EmailToken::where('created_at', '<=', $earliestToKeep)->delete();
         PasswordToken::where('created_at', '<=', $earliestToKeep)->delete();
         AuthToken::where('created_at', '<=', $earliestToKeep)->delete();
     }
 }
Example #2
0
 /**
  * @param ConfirmEmail $command
  * @return \Flarum\Core\User
  */
 public function handle(ConfirmEmail $command)
 {
     /** @var EmailToken $token */
     $token = EmailToken::validOrFail($command->token);
     $user = $token->user;
     $user->changeEmail($token->email);
     if (!$user->is_activated) {
         $user->activate();
     }
     $user->save();
     $this->dispatchEventsFor($user);
     $token->delete();
     return $user;
 }
 /**
  * {@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();
 }
 /**
  * @param User $user
  * @param string $email
  * @return EmailToken
  */
 protected function generateToken(User $user, $email)
 {
     $token = EmailToken::generate($email, $user->id);
     $token->save();
     return $token;
 }