degov-8.x-2.0/modules/degov_users_roles/src/Routing/RouteSubscriber.php

modules/degov_users_roles/src/Routing/RouteSubscriber.php
<?php

namespace Drupal\degov_users_roles\Routing;

use Drupal\Core\Routing\RouteSubscriberBase;
use Drupal\Core\Routing\RoutingEvents;
use Symfony\Component\Routing\RouteCollection;

/**
 * Class RouteSubscriber
 *
 * @package Drupal\degov_users_roles\Routing
 */
class RouteSubscriber extends RouteSubscriberBase {

  /**
   * Alters existing routes for a specific collection.
   * Adds requirement so the Access Check could be applied.
   *
   * @param \Symfony\Component\Routing\RouteCollection $collection
   *   The route collection for adding routes.
   */
  protected function alterRoutes(RouteCollection $collection) {
    // Find the route we want to alter
    $route = $collection->get('entity.user.edit_form');
    $requirements = $route->getRequirements();
    $requirements['_degov_role_access'] = 'TRUE';
    $route->addRequirements($requirements);
    // Re-add the collection to override the existing route.
    $collection->add('entity.user.edit_form', $route);

    $route = $collection->get('role_delegation.edit_form');
    $requirements = $route->getRequirements();
    $requirements['_degov_role_access'] = 'TRUE';
    $route->addRequirements($requirements);
    // Re-add the collection to override the existing route.
    $collection->add('role_delegation.edit_form', $route);
  }

  /**
   * @return mixed
   */
  public static function getSubscribedEvents() {
    $events[RoutingEvents::ALTER] = 'onAlterRoutes';
    return $events;
  }
}

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

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