You are here

public function TwitterAuthController::userRegisterCallback in Open Social 8.4

Same name and namespace in other branches
  1. 8.9 modules/custom/social_auth_twitter/src/Controller/TwitterAuthController.php \Drupal\social_auth_twitter\Controller\TwitterAuthController::userRegisterCallback()
  2. 8 modules/custom/social_auth_twitter/src/Controller/TwitterAuthController.php \Drupal\social_auth_twitter\Controller\TwitterAuthController::userRegisterCallback()
  3. 8.2 modules/custom/social_auth_twitter/src/Controller/TwitterAuthController.php \Drupal\social_auth_twitter\Controller\TwitterAuthController::userRegisterCallback()
  4. 8.3 modules/custom/social_auth_twitter/src/Controller/TwitterAuthController.php \Drupal\social_auth_twitter\Controller\TwitterAuthController::userRegisterCallback()
  5. 8.5 modules/custom/social_auth_twitter/src/Controller/TwitterAuthController.php \Drupal\social_auth_twitter\Controller\TwitterAuthController::userRegisterCallback()
  6. 8.6 modules/custom/social_auth_twitter/src/Controller/TwitterAuthController.php \Drupal\social_auth_twitter\Controller\TwitterAuthController::userRegisterCallback()
  7. 8.7 modules/custom/social_auth_twitter/src/Controller/TwitterAuthController.php \Drupal\social_auth_twitter\Controller\TwitterAuthController::userRegisterCallback()
  8. 8.8 modules/custom/social_auth_twitter/src/Controller/TwitterAuthController.php \Drupal\social_auth_twitter\Controller\TwitterAuthController::userRegisterCallback()

Registers the new account after redirect from Twitter.

Return value

\Symfony\Component\HttpFoundation\RedirectResponse Returns a RedirectResponse.

1 string reference to 'TwitterAuthController::userRegisterCallback'
social_auth_twitter.routing.yml in modules/custom/social_auth_twitter/social_auth_twitter.routing.yml
modules/custom/social_auth_twitter/social_auth_twitter.routing.yml

File

modules/custom/social_auth_twitter/src/Controller/TwitterAuthController.php, line 166

Class

TwitterAuthController
Manages requests to Twitter API.

Namespace

Drupal\social_auth_twitter\Controller

Code

public function userRegisterCallback() {
  $sdk = $this
    ->getSdk('register');
  if ($sdk instanceof RedirectResponse) {
    return $sdk;
  }
  $this->authManager
    ->setSdk($sdk);
  $profile = $this
    ->getProfile('register');
  if ($profile instanceof RedirectResponse) {
    return $profile;
  }

  // Check whether user account exists. If account already exists,
  // authorize the user and redirect him to the account page.
  $account = $this
    ->entityTypeManager()
    ->getStorage('user')
    ->loadByProperties([
    'twitter_id' => $profile->id,
  ]);
  if ($account) {
    $account = current($account);
    if (!$account
      ->get('status')->value) {
      drupal_set_message($this
        ->t('You already have account on this site, but your account is blocked. Contact the site administrator.'), 'error');
      return $this
        ->redirect('user.register');
    }
    user_login_finalize($account);
    return $this
      ->redirect('entity.user.canonical', [
      'user' => $account
        ->id(),
    ]);
  }

  // Save email and name to storage to use for auto fill the registration
  // form.
  $data_handler = $this->networkManager
    ->createInstance('social_auth_twitter')
    ->getDataHandler();
  $data_handler
    ->set('access_token', $this->accessToken);
  $data_handler
    ->set('mail', NULL);
  $data_handler
    ->set('name', $this->authManager
    ->getUsername());
  drupal_set_message($this
    ->t('You are now connected with @network, please continue registration', [
    '@network' => $this
      ->t('Twitter'),
  ]));
  return $this
    ->redirect('user.register', [
    'provider' => 'twitter',
  ]);
}