Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
novicell/dds / src / Routing / UtilitiesRouteSubscriber.php
Size: Mime:
<?php


namespace Drupal\dds\Routing;


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

class UtilitiesRouteSubscriber extends RouteSubscriberBase {

  /**
   * Alters existing routes for a specific collection.
   *
   * @param \Symfony\Component\Routing\RouteCollection $collection
   *   The route collection for adding routes.
   */
  protected function alterRoutes(RouteCollection $collection) {
    $config = \Drupal::config('dds.utilities');

    $enabled = [];
    // Because drupal also saves values of unchecked checkboxes, we need to
    // filter those out.
    if (!empty($config->get('enabled'))) {
      foreach ($config->get('enabled') as $key => $value) {
        if ($value === $key) {
          $enabled[] = $key;
        }
      }
    }

    $routes = [];

    // Add nofollow/noindex route.
    if (in_array('nofollow_noindex', $enabled)) {
      $routes['dds.utilities.nofollow_form'] = new Route(
        '/admin/config/dds/utilities/nofollow',
        [
          '_title' => 'No-follow / No-index',
          '_form' => '\Drupal\dds\Form\NoFollowForm'
        ],
        [
          '_permission' => 'administer nofollow settings'
        ]
      );
    }

    // Add Anti-autodiscover route.
    if (in_array('anti_autodiscover', $enabled)) {
      // Autodiscover
      $routes['dds.utilities.anti_autodiscover'] = new Route(
        '/autodiscover/autodiscover.xml',
        [
          '_controller' => 'Drupal\dds\Controller\AntiAutodiscoverController::autodiscover'
        ],
        [
          '_permission' => 'access content'
        ]
      );
      $routes['dds.utilities.anti_autodiscover2'] = new Route(
        '/autodiscover/autodiscover.svc',
        [
          '_controller' => 'Drupal\dds\Controller\AntiAutodiscoverController::autodiscover'
        ],
        [
          '_permission' => 'access content'
        ]
      );
      // Active Sync
      $routes['dds.utilities.anti_activesync'] = new Route(
        '/Microsoft-Server-ActiveSync',
        [
          '_controller' => 'Drupal\dds\Controller\AntiAutodiscoverController::autodiscover'
        ],
        [
          '_permission' => 'access content'
        ]
      );
      // Thunderbird
      $routes['dds.utilities.anti_thunderbird'] = new Route(
        '/.well-known/autoconfig/mail/config-v1.1.xml',
        [
          '_controller' => 'Drupal\dds\Controller\AntiAutodiscoverController::autodiscover'
        ],
        [
          '_permission' => 'access content'
        ]
      );
    }

    foreach ($routes as $key => $route) {
      $collection->add($key, $route);
    }
  }
}