যদি এই জাতীয় ব্যবহারকারীর 403 ত্রুটির সম্মুখীন হয় তবে আমি একজন বেনাম ব্যবহারকারীকে লগইন ফর্মটিতে পুনর্নির্দেশ করতে চাই।
আমি ইভেন্টের গ্রাহক তৈরি করেছি এবং এটি আমার কোড, তবে আমি বর্তমান পৃষ্ঠায় লুপ নিয়ে এসেছি।
/**
* Redirect anonymous user to login page if he encounters 404 or 403
* response.
*
* @param \Symfony\Component\HttpKernel\Event\GetResponseEvent $response
* The created response object that will be returned.
* @param string $event
* The string representation of the event.
* @param \Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher $event_dispatcher
* Event dispatcher that lazily loads listeners and subscribers from the dependency injection
* container.
*/
public function checkLoginNeeded(GetResponseEvent $response, $event, ContainerAwareEventDispatcher $event_dispatcher) {
$routeMatch = RouteMatch::createFromRequest($response->getRequest());
$route_name = $routeMatch->getRouteName();
$is_anonymous = \Drupal::currentUser()->isAnonymous();
$is_not_login = $route_name != 'user.login';
if ($is_anonymous && $route_name == 'system.403' && $is_not_login) {
$query = $response->getRequest()->query->all();
// $query['destination'] = $routeMatch->getRouteObject()->getPath();
$query['destination'] = \Drupal::url('<current>');
$login_uri = \Drupal::url('user.login', [], ['query' => $query]);
$returnResponse = new RedirectResponse($login_uri, Response::HTTP_FOUND);
$response->setResponse($returnResponse);
}
}
আমি মনে করি এটি এর সাথে সম্পর্কিত যে প্রতিক্রিয়াটির মধ্যে ইতিমধ্যে গন্তব্য (বর্তমান ইউরি) এবং সিস্টেম রয়েছে।