social_auth_vipps-8.x-2.1/src/EventSubscriber/CallbackEventSubscriber.php

src/EventSubscriber/CallbackEventSubscriber.php
<?php

namespace Drupal\social_auth_vipps\EventSubscriber;

use Drupal\Core\Messenger\MessengerInterface;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpKernel\Event\RequestEvent;
use Symfony\Component\HttpKernel\KernelEvents;
use Drupal\Core\Url;
use Symfony\Component\HttpFoundation\RequestStack;

/**
 * Class Callback Event Subscriber.
 *
 * @package Drupal\social_auth_vipps\EventSubscriber
 */
class CallbackEventSubscriber implements EventSubscriberInterface {

  /**
   * Request stack.
   *
   * @var \Symfony\Component\HttpFoundation\Request|null
   */
  private $request;

  /**
   * Drupal messenger.
   *
   * @var \Drupal\Core\Messenger\MessengerInterface
   */
  private $messenger;

  /**
   * CallbackEventSubscriber constructor.
   *
   * @param \Symfony\Component\HttpFoundation\RequestStack $requestStack
   *   Request stack.
   * @param \Drupal\Core\Messenger\MessengerInterface $messenger
   *   Drupal messenger.
   */
  public function __construct(RequestStack $requestStack, MessengerInterface $messenger) {
    $this->request = $requestStack->getCurrentRequest();
    $this->messenger = $messenger;
  }

  /**
   * Check possible errors.
   *
   * @param \Symfony\Component\HttpKernel\Event\RequestEvent $event
   *   Response event.
   */
  public function checkForErrors(RequestEvent $event) {
    if (!empty($this->request->get('error'))) {
      $this->messenger->addError($this->request->get('error_description'));

      $response = new RedirectResponse((new Url('user.login'))->toString(), 301);
      $event->setResponse($response);
    }
  }

  /**
   * {@inheritdoc}
   */
  public static function getSubscribedEvents() {
    return [
      KernelEvents::REQUEST => ['checkForErrors', 30],
    ];
  }

}

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

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