/**
  * {@inheritdoc}
  */
 public function checkApprovalByUser(User $user)
 {
     if (!$this->lookupKeyInRedisDatabase($user->getActivationKey())) {
         // the associated model will be loaded through lazy loading (doctrine sends a call to the db using a proxy for the model).
         // this is because the model representing parts of the approval process must be hydrated through
         // doctrine's complex hydration algorithm. In case of issues with redis, this data can be used
         // as backup, but the hydration of one-to-one relations is slow, so redis will be used by default.
         return !$user->getPendingActivation()->isActivationExpired();
     }
     return true;
 }