public function RedirectSubscriber::checkForRedirection in Open Social 10.0.x
Same name in this branch
- 10.0.x modules/social_features/social_group/src/EventSubscriber/RedirectSubscriber.php \Drupal\social_group\EventSubscriber\RedirectSubscriber::checkForRedirection()
- 10.0.x modules/social_features/social_group/modules/social_group_flexible_group/src/EventSubscriber/RedirectSubscriber.php \Drupal\social_group_flexible_group\EventSubscriber\RedirectSubscriber::checkForRedirection()
Same name and namespace in other branches
- 8.9 modules/social_features/social_group/modules/social_group_flexible_group/src/EventSubscriber/RedirectSubscriber.php \Drupal\social_group_flexible_group\EventSubscriber\RedirectSubscriber::checkForRedirection()
- 8.6 modules/social_features/social_group/modules/social_group_flexible_group/src/EventSubscriber/RedirectSubscriber.php \Drupal\social_group_flexible_group\EventSubscriber\RedirectSubscriber::checkForRedirection()
- 8.7 modules/social_features/social_group/modules/social_group_flexible_group/src/EventSubscriber/RedirectSubscriber.php \Drupal\social_group_flexible_group\EventSubscriber\RedirectSubscriber::checkForRedirection()
- 8.8 modules/social_features/social_group/modules/social_group_flexible_group/src/EventSubscriber/RedirectSubscriber.php \Drupal\social_group_flexible_group\EventSubscriber\RedirectSubscriber::checkForRedirection()
- 10.3.x modules/social_features/social_group/modules/social_group_flexible_group/src/EventSubscriber/RedirectSubscriber.php \Drupal\social_group_flexible_group\EventSubscriber\RedirectSubscriber::checkForRedirection()
- 10.1.x modules/social_features/social_group/modules/social_group_flexible_group/src/EventSubscriber/RedirectSubscriber.php \Drupal\social_group_flexible_group\EventSubscriber\RedirectSubscriber::checkForRedirection()
- 10.2.x modules/social_features/social_group/modules/social_group_flexible_group/src/EventSubscriber/RedirectSubscriber.php \Drupal\social_group_flexible_group\EventSubscriber\RedirectSubscriber::checkForRedirection()
This method is called when the KernelEvents::REQUEST event is dispatched.
Parameters
\Symfony\Component\HttpKernel\Event\GetResponseEvent $event: The event.
File
- modules/
social_features/ social_group/ modules/ social_group_flexible_group/ src/ EventSubscriber/ RedirectSubscriber.php, line 68
Class
- RedirectSubscriber
- Class RedirectSubscriber.
Namespace
Drupal\social_group_flexible_group\EventSubscriberCode
public function checkForRedirection(GetResponseEvent $event) {
// Check if there is a group object on the current route.
if (!($group = _social_group_get_current_group())) {
return;
}
// If a group type is flexible group.
if ($group
->bundle() !== 'flexible_group') {
return;
}
// If the user can manage groups or the user is a member.
if ($this->currentUser
->hasPermission('manage all groups') || $group
->getMember($this->currentUser)) {
return;
}
// Get the current route name for the checks being performed below.
$route_name = $this->routeMatch
->getRouteName();
// The array of forbidden routes.
$routes = [
'entity.group.canonical',
'view.group_events.page_group_events',
'view.group_topics.page_group_topics',
'social_group.stream',
];
// If "Allowed join method" is not set to "Join directly" in this group.
if ($route_name === 'entity.group.join' && !social_group_flexible_group_can_join_directly($group)) {
$this
->doRedirect($event, $group);
}
elseif (in_array($route_name, $routes) && !social_group_flexible_group_community_enabled($group) && !social_group_flexible_group_public_enabled($group)) {
$this
->doRedirect($event, $group);
}
}