class RedirectSubscriber in Open Social 10.2.x
Same name in this branch
- 10.2.x modules/social_features/social_search/src/EventSubscriber/RedirectSubscriber.php \Drupal\social_search\EventSubscriber\RedirectSubscriber
- 10.2.x modules/social_features/social_group/src/EventSubscriber/RedirectSubscriber.php \Drupal\social_group\EventSubscriber\RedirectSubscriber
- 10.2.x modules/social_features/social_user/src/EventSubscriber/RedirectSubscriber.php \Drupal\social_user\EventSubscriber\RedirectSubscriber
- 10.2.x modules/social_features/social_group/modules/social_group_quickjoin/src/EventSubscriber/RedirectSubscriber.php \Drupal\social_group_quickjoin\EventSubscriber\RedirectSubscriber
- 10.2.x modules/social_features/social_group/modules/social_group_default_route/src/EventSubscriber/RedirectSubscriber.php \Drupal\social_group_default_route\EventSubscriber\RedirectSubscriber
- 10.2.x modules/social_features/social_group/modules/social_group_flexible_group/src/EventSubscriber/RedirectSubscriber.php \Drupal\social_group_flexible_group\EventSubscriber\RedirectSubscriber
Same name and namespace in other branches
- 8.9 modules/social_features/social_group/src/EventSubscriber/RedirectSubscriber.php \Drupal\social_group\EventSubscriber\RedirectSubscriber
- 8 modules/social_features/social_group/src/EventSubscriber/RedirectSubscriber.php \Drupal\social_group\EventSubscriber\RedirectSubscriber
- 8.2 modules/social_features/social_group/src/EventSubscriber/RedirectSubscriber.php \Drupal\social_group\EventSubscriber\RedirectSubscriber
- 8.3 modules/social_features/social_group/src/EventSubscriber/RedirectSubscriber.php \Drupal\social_group\EventSubscriber\RedirectSubscriber
- 8.4 modules/social_features/social_group/src/EventSubscriber/RedirectSubscriber.php \Drupal\social_group\EventSubscriber\RedirectSubscriber
- 8.5 modules/social_features/social_group/src/EventSubscriber/RedirectSubscriber.php \Drupal\social_group\EventSubscriber\RedirectSubscriber
- 8.6 modules/social_features/social_group/src/EventSubscriber/RedirectSubscriber.php \Drupal\social_group\EventSubscriber\RedirectSubscriber
- 8.7 modules/social_features/social_group/src/EventSubscriber/RedirectSubscriber.php \Drupal\social_group\EventSubscriber\RedirectSubscriber
- 8.8 modules/social_features/social_group/src/EventSubscriber/RedirectSubscriber.php \Drupal\social_group\EventSubscriber\RedirectSubscriber
- 10.3.x modules/social_features/social_group/src/EventSubscriber/RedirectSubscriber.php \Drupal\social_group\EventSubscriber\RedirectSubscriber
- 10.0.x modules/social_features/social_group/src/EventSubscriber/RedirectSubscriber.php \Drupal\social_group\EventSubscriber\RedirectSubscriber
- 10.1.x modules/social_features/social_group/src/EventSubscriber/RedirectSubscriber.php \Drupal\social_group\EventSubscriber\RedirectSubscriber
Class RedirectSubscriber.
@package Drupal\social_group\EventSubscriber
Hierarchy
- class \Drupal\social_group\EventSubscriber\RedirectSubscriber implements \Symfony\Component\EventDispatcher\EventSubscriberInterface
Expanded class hierarchy of RedirectSubscriber
1 string reference to 'RedirectSubscriber'
- social_group.services.yml in modules/
social_features/ social_group/ social_group.services.yml - modules/social_features/social_group/social_group.services.yml
1 service uses RedirectSubscriber
- social_group.redirect_subscriber in modules/
social_features/ social_group/ social_group.services.yml - Drupal\social_group\EventSubscriber\RedirectSubscriber
File
- modules/
social_features/ social_group/ src/ EventSubscriber/ RedirectSubscriber.php, line 16
Namespace
Drupal\social_group\EventSubscriberView source
class RedirectSubscriber implements EventSubscriberInterface {
/**
* Get the request events.
*
* @return mixed
* Returns request events.
*/
public static function getSubscribedEvents() {
$events[KernelEvents::REQUEST][] = [
'checkForRedirection',
];
return $events;
}
/**
* This method is called when the KernelEvents::REQUEST event is dispatched.
*
* @param \Symfony\Component\HttpKernel\Event\GetResponseEvent $event
* The event.
*/
public function checkForRedirection(GetResponseEvent $event) {
// Check if there is a group object on the current route.
$group = _social_group_get_current_group();
// Get the current route name for the checks being performed below.
$routeMatch = \Drupal::routeMatch()
->getRouteName();
// Redirect the group content collection index to the group canonical URL.
if ($routeMatch === 'entity.group_content.collection') {
$event
->setResponse(new RedirectResponse(Url::fromRoute('entity.group.canonical', [
'group' => $group
->id(),
])
->toString()));
}
// Get the current user.
$user = \Drupal::currentUser();
// The array of forbidden routes.
$routes = [
'entity.group.canonical',
'entity.group.join',
'view.group_events.page_group_events',
'view.group_topics.page_group_topics',
];
// If a group is set, and the type is closed_group.
if ($group && $group
->getGroupType()
->id() == 'closed_group') {
if ($user
->id() != 1) {
if ($user
->hasPermission('manage all groups')) {
return;
}
elseif (!$group
->getMember($user) && in_array($routeMatch, $routes)) {
$event
->setResponse(new RedirectResponse(Url::fromRoute('view.group_information.page_group_about', [
'group' => $group
->id(),
])
->toString()));
}
}
}
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
RedirectSubscriber:: |
public | function | This method is called when the KernelEvents::REQUEST event is dispatched. | |
RedirectSubscriber:: |
public static | function | Get the request events. |