You are here

protected function RouteSubscriber::alterRoutes in Open Social 10.3.x

Same name in this branch
  1. 10.3.x modules/custom/social_language/src/Routing/RouteSubscriber.php \Drupal\social_language\Routing\RouteSubscriber::alterRoutes()
  2. 10.3.x modules/custom/social_ajax_comments/src/Routing/RouteSubscriber.php \Drupal\social_ajax_comments\Routing\RouteSubscriber::alterRoutes()
  3. 10.3.x modules/social_features/social_private_message/src/Routing/RouteSubscriber.php \Drupal\social_private_message\Routing\RouteSubscriber::alterRoutes()
  4. 10.3.x modules/social_features/social_content_block/src/Routing/RouteSubscriber.php \Drupal\social_content_block\Routing\RouteSubscriber::alterRoutes()
  5. 10.3.x modules/social_features/social_post/src/Routing/RouteSubscriber.php \Drupal\social_post\Routing\RouteSubscriber::alterRoutes()
  6. 10.3.x modules/social_features/social_group/src/Routing/RouteSubscriber.php \Drupal\social_group\Routing\RouteSubscriber::alterRoutes()
  7. 10.3.x modules/social_features/social_topic/src/Routing/RouteSubscriber.php \Drupal\social_topic\Routing\RouteSubscriber::alterRoutes()
  8. 10.3.x modules/social_features/social_user/src/Routing/RouteSubscriber.php \Drupal\social_user\Routing\RouteSubscriber::alterRoutes()
  9. 10.3.x modules/social_features/social_event/src/Routing/RouteSubscriber.php \Drupal\social_event\Routing\RouteSubscriber::alterRoutes()
  10. 10.3.x modules/social_features/social_content_report/src/Routing/RouteSubscriber.php \Drupal\social_content_report\Routing\RouteSubscriber::alterRoutes()
  11. 10.3.x modules/social_features/social_core/src/Routing/RouteSubscriber.php \Drupal\social_core\Routing\RouteSubscriber::alterRoutes()
  12. 10.3.x modules/social_features/social_comment/src/Routing/RouteSubscriber.php \Drupal\social_comment\Routing\RouteSubscriber::alterRoutes()
  13. 10.3.x modules/social_features/social_post/modules/social_post_album/src/Routing/RouteSubscriber.php \Drupal\social_post_album\Routing\RouteSubscriber::alterRoutes()
  14. 10.3.x modules/social_features/social_group/modules/social_group_default_route/src/RouteSubscriber/RouteSubscriber.php \Drupal\social_group_default_route\RouteSubscriber\RouteSubscriber::alterRoutes()
  15. 10.3.x modules/social_features/social_group/modules/social_group_invite/src/Routing/RouteSubscriber.php \Drupal\social_group_invite\Routing\RouteSubscriber::alterRoutes()
  16. 10.3.x modules/social_features/social_event/modules/social_event_managers/src/EventSubscriber/RouteSubscriber.php \Drupal\social_event_managers\EventSubscriber\RouteSubscriber::alterRoutes()
  17. 10.3.x modules/social_features/social_event/modules/social_event_invite/src/Routing/RouteSubscriber.php \Drupal\social_event_invite\Routing\RouteSubscriber::alterRoutes()
Same name and namespace in other branches
  1. 8.9 modules/custom/social_language/src/Routing/RouteSubscriber.php \Drupal\social_language\Routing\RouteSubscriber::alterRoutes()
  2. 8 modules/custom/social_language/src/Routing/RouteSubscriber.php \Drupal\social_language\Routing\RouteSubscriber::alterRoutes()
  3. 8.2 modules/custom/social_language/src/Routing/RouteSubscriber.php \Drupal\social_language\Routing\RouteSubscriber::alterRoutes()
  4. 8.3 modules/custom/social_language/src/Routing/RouteSubscriber.php \Drupal\social_language\Routing\RouteSubscriber::alterRoutes()
  5. 8.4 modules/custom/social_language/src/Routing/RouteSubscriber.php \Drupal\social_language\Routing\RouteSubscriber::alterRoutes()
  6. 8.5 modules/custom/social_language/src/Routing/RouteSubscriber.php \Drupal\social_language\Routing\RouteSubscriber::alterRoutes()
  7. 8.6 modules/custom/social_language/src/Routing/RouteSubscriber.php \Drupal\social_language\Routing\RouteSubscriber::alterRoutes()
  8. 8.7 modules/custom/social_language/src/Routing/RouteSubscriber.php \Drupal\social_language\Routing\RouteSubscriber::alterRoutes()
  9. 8.8 modules/custom/social_language/src/Routing/RouteSubscriber.php \Drupal\social_language\Routing\RouteSubscriber::alterRoutes()
  10. 10.0.x modules/custom/social_language/src/Routing/RouteSubscriber.php \Drupal\social_language\Routing\RouteSubscriber::alterRoutes()
  11. 10.1.x modules/custom/social_language/src/Routing/RouteSubscriber.php \Drupal\social_language\Routing\RouteSubscriber::alterRoutes()
  12. 10.2.x modules/custom/social_language/src/Routing/RouteSubscriber.php \Drupal\social_language\Routing\RouteSubscriber::alterRoutes()

Alters existing routes for a specific collection.

Parameters

\Symfony\Component\Routing\RouteCollection $collection: The route collection for adding routes.

Overrides RouteSubscriberBase::alterRoutes

File

modules/custom/social_language/src/Routing/RouteSubscriber.php, line 20

Class

RouteSubscriber
Class RouteSubscriber.

Namespace

Drupal\social_language\Routing

Code

protected function alterRoutes(RouteCollection $collection) {

  // Set custom permissions for account email & site information & menu items
  // translation pages.
  $routes = [
    'translate system information' => [
      'config_translation.item.add.system.site_information_settings',
      'config_translation.item.delete.system.site_information_settings',
      'config_translation.item.edit.system.site_information_settings',
      'config_translation.item.overview.system.site_information_settings',
    ],
    'translate account settings' => [
      'config_translation.item.add.entity.user.admin_form',
      'config_translation.item.delete.entity.user.admin_form',
      'config_translation.item.edit.entity.user.admin_form',
      'config_translation.item.overview.entity.user.admin_form',
    ],
    'translate menu_link_content' => [
      'entity.menu_link_content.content_translation_add',
      'entity.menu_link_content.content_translation_delete',
      'entity.menu_link_content.content_translation_edit',
      'entity.menu_link_content.content_translation_overview',
    ],
  ];

  // Loop through routes that need alteration.
  foreach ($routes as $permission => $route_strings) {
    foreach ($route_strings as $route_string) {
      if ($route = $collection
        ->get($route_string)) {
        $route
          ->setRequirements([
          '_social_language_access' => $permission,
        ]);
      }
    }
  }

  // Restrict access to translations if user can't edit the original content.
  // @todo: make there restrictions more general (for custom entities, blocks, etc)
  $entity_types = [
    'node',
    'group',
  ];
  foreach ($entity_types as $entity_type_id) {
    $routes = [
      "entity.{$entity_type_id}.content_translation_overview",
      "entity.{$entity_type_id}.content_translation_add",
      "entity.{$entity_type_id}.content_translation_edit",
      "entity.{$entity_type_id}.content_translation_delete",
    ];
    foreach ($routes as $name) {
      if ($route = $collection
        ->get($name)) {
        $route
          ->setRequirement('_entity_access', "{$entity_type_id}.update");
      }
    }
  }
}