You are here

function social_magic_login_tokens in Open Social 8.9

Same name and namespace in other branches
  1. 8.5 modules/custom/social_magic_login/social_magic_login.module \social_magic_login_tokens()
  2. 8.6 modules/custom/social_magic_login/social_magic_login.module \social_magic_login_tokens()
  3. 8.7 modules/custom/social_magic_login/social_magic_login.module \social_magic_login_tokens()
  4. 8.8 modules/custom/social_magic_login/social_magic_login.module \social_magic_login_tokens()
  5. 10.3.x modules/custom/social_magic_login/social_magic_login.module \social_magic_login_tokens()
  6. 10.0.x modules/custom/social_magic_login/social_magic_login.module \social_magic_login_tokens()
  7. 10.1.x modules/custom/social_magic_login/social_magic_login.module \social_magic_login_tokens()
  8. 10.2.x modules/custom/social_magic_login/social_magic_login.module \social_magic_login_tokens()

Implements hook_tokens().

Throws

\Drupal\Core\Entity\EntityMalformedException

File

modules/custom/social_magic_login/social_magic_login.module, line 40
The Social Magic Login module.

Code

function social_magic_login_tokens($type, $tokens, array $data, array $options, BubbleableMetadata $bubbleable_metadata) {
  $url_options = [
    'absolute' => TRUE,
  ];
  $replacements = [];
  if ($type === 'auto-login' && !empty($data['user'])) {

    /** @var \Drupal\user\UserInterface $account */
    $account = $data['user'];
    foreach ($tokens as $token => $original) {

      // This is the default variation on the chained tokens handled below.
      if ('group-destination' === $token) {

        /** @var \Drupal\group\Entity\GroupInterface $group */
        $group =& $data['group'];
        $destination = $group
          ->toUrl('canonical', [
          'absolute' => FALSE,
        ])
          ->toString();
        $url = social_magic_login_url_create($account, $destination, $url_options);
        $replacements[$original] = $url
          ->toString();
      }
    }
  }
  return $replacements;
}