Bonsoir,

J'ai préfixer la classique partie admin sauf que mon système de connexion n'est pas dans ce préfixe et je souhaiterai que l'URL vers lequel le composant Auth me redirige lorsque je ne suis pas connecter ne soit pas préfixer... Les 'prefix' => false et 'admin' => false dans le loadComponent ne fonctionnent pas... Je n'ai plus d'idées :(

Merci d'avance

14 réponses


Regarde dans le book du coté de l'option loginAction tu peux préciser cela pour toute ton application

$this->loadComponent('Auth', [
        'loginAction' => [
            'controller' => 'user',
            'action' => 'login',
            'prefix' => false,
            'admin' => false
        ]
    ]);
Gofast77
Auteur

Rien à faire, ça ne fonctionne pas...

montre moi ton AppController

Gofast77
Auteur
public function initialize()
        {
            parent::initialize();
            $this->loadComponent('Flash');
            $this->loadComponent('RequestHandler');
            $this->loadComponent('Auth', [
                'authError' => __('Vous devez être connecter pour accéder à cette page !'),
                'authorize' => ['Controller'],
                'loginAction' => [
                    'controller' => 'Users',
                    'action'     => 'login',
                    'prefix' => false,
                    'admin' => false
                ]
            ]);
            $this->viewBuilder()->layout('admin');
        }

Le reste et commenté donc n'a pas de poid ;)

Bizarre car tout semble bon

As-tu essayé sans le parent::initialize(); car dans le book il ne l'utilise pas

Bonsoir.
Est-ce que le code que tu nous montre est bien celui de l'AppController qui se situe dans src/Controller/AppController.php ?
Car étant donné que tu mets $this->viewBuilder()->layout('admin'); et donc que tu charges le layout admin, j'ai la nette impression que que c'est plutôt celui qui se situe dans src/Controller/Admin/AppController.php.

Gofast77
Auteur

J'étais effectivement dans l'AppController de l'admin (pas le bon à ce que j'ai compris)... Mais même en enlevant le parent::initialize(); et en mettant 'prefix' => false, 'admin' => false, ç ane marche pas...

J'étais effectivement dans l'AppController de l'admin (pas le bon à ce que j'ai compris)...

La configuration du composant Auth doit être effectuée dans l'AppController qui se situe à la base de l'application et donc dans src/Controller/AppController.php, de plus, il est inutile de faire 'prefix' => false, 'admin' => false, si prefix est défini à false, tous les préfixes seront ignorés, donc un 'prefix' => false est largement suffisant.

Gofast77
Auteur

Merci Lartak pour ta réponse c'est en bonne vois :) J'ai juste une erreur (Call to a member function deny() on boolean) :/

Gofast77
Auteur

Personne ne peut m'aider ? ça me bloque dans l'avancer de mon projet (qui au passage est un gros projet...) :(

Bonjour.

J'ai juste une erreur (Call to a member function deny() on boolean) :/

Il faudrait peut-être nous montrer le code pour lequel t'es retourné cette erreur.
Je suppose que tu as dû mettre $this->Auth->deny quelque part, mais sans en connaître le contexte exact et la syntaxe exacte, nous ne pouvons pas trop t'aider.

Gofast77
Auteur

J'ai mis effectivement un $this->Auth->deny dans un beforeFilter dans src/Controller/admin/AppController.php

Et ça te dérangerait de nous en montrer le code ?
Car au cas où tu ne l'ai pas remarqué, je t'ai demandé de le montrer, si tu ne lis pas entièrement les réponses, ton problème va encore durer longtemps.