o365-2.0.3/modules/o365_sso_user/src/EventSubscriber/UserLoginEventSubscriber.php

modules/o365_sso_user/src/EventSubscriber/UserLoginEventSubscriber.php
<?php

namespace Drupal\o365_sso_user\EventSubscriber;

use Drupal\externalauth\Event\ExternalAuthEvents;
use Drupal\externalauth\Event\ExternalAuthLoginEvent;
use Drupal\o365_sso_user\SsoUserSync;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;

/**
 * The event subscriber for SSO logins.
 *
 * @package Drupal\o365_sso\EventSubscriber
 */
class UserLoginEventSubscriber implements EventSubscriberInterface {

  /**
   * The SSO user sync service.
   *
   * @var \Drupal\o365_sso_user\SsoUserSync
   */
  protected $ssoUserSync;

  /**
   * UserLoginEventSubscriber constructor.
   *
   * @param \Drupal\o365_sso_user\SsoUserSync $ssoUserSync
   *   The SSO User sync service.
   */
  public function __construct(SsoUserSync $ssoUserSync) {
    $this->ssoUserSync = $ssoUserSync;
  }

  /**
   * {@inheritdoc}
   */
  public static function getSubscribedEvents(): array {
    $events[ExternalAuthEvents::LOGIN][] = ['updateUserData'];
    return $events;
  }

  /**
   * Update a users data with data from the Graph API.
   *
   * @param \Drupal\externalauth\Event\ExternalAuthLoginEvent $event
   *   The ExternalAuthLoginEvent event containing the user.
   */
  public function updateUserData(ExternalAuthLoginEvent $event) {
    if ($event->getProvider() === 'o365_sso') {
      $this->ssoUserSync->syncUserData($event->getAccount());
    }
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc