> For the complete documentation index, see [llms.txt](https://akyos.gitbook.io/book/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://akyos.gitbook.io/book/prestashop/modules/exemples/redirection-si-pas-connecte.md).

# Redirection si pas connecté

### :book: Description

Ce module permet de bloquer l'accès aux produits / catégories aux utilisateurs non connectés.

L'avantage de le faire en module, et non pas dans le thème ou avec un override, c'est que cela permet de le désactiver à tout moment.

### :file\_folder: Module complet :&#x20;

{% file src="/files/6segWEIfw6vmnUYzb3ij" %}

### Explications

J'ai choisi de me greffer sur le hook actionFrontControllerSetMedia.&#x20;

Normalement, ce hook sert à charger des assets sur le Front Office, en particulier des fichiers CSS et JavaScript. Mais comme il est appelé sur **TOUTES** les pages, je l'ai utilisé pour faire mo système de redirection.

```php
  public function hookActionFrontControllerSetMedia()
    {
        $context = Context::getContext();
        
        // If the client is logged in, do not redirect
        if ($context->customer->isLogged()) {
            return;
        }

        // If the client is on one of these pages, do not redirect
        $allowedControllers = [
            'authentication',
            'password',
            'contact',
            'index',
            'cms',
            '404'
        ];

        if (in_array($context->controller->php_self, $allowedControllers)) {
            return;
        }

        // Else redirect the client to the authentication page with the current URL as the back parameter
        // Tools::redirect($context->link->getPageLink('authentication'));
        $currentUrl = Tools::getCurrentUrl();
        $authUrl = $context->link->getPageLink('authentication', null, null, ['back' => rawurlencode($currentUrl)]);
        
        Tools::redirect($authUrl);
    }
```
