bonjour,
je ne vois pas ou configurer la redirection admin.
Je suis en local et je fais localhost/monapp/admin et ca me redirige sur http://monapp.com/monapp/user/login
merci d'avance
Dans le controller Users, il est plusieurs fois fait appel au composant Auth :
AuthComponent::user('id')
AuthComponent::user('role')
etc ...
À partir du moment où le composant Auth est utilisé, si un système d'autorisation n'est pas défini explicitement, il bloque quasiment tous les accès et comme le modèle par défaut est User et l'action login, il renvoit sur l'action login du controller Users.
Le composant Auth est également appelé dans le modèle Category.
Sur Cake 2 ? 3 ?
Bonjour, eh bien dans ton AppController tu doit avoir une ligne du style pour Cake 3
'loginAction' => [
'controller' => 'Users',
'action' => 'login',
'prefix'=> false
],
Ou sur Cake 2
public $components = array(
'Session',
'Auth' => array(
'loginRedirect' => array('controller' => 'users', 'action' => 'login'),
'logoutRedirect' => array('controller' => 'pages', 'action' => 'display', 'home')
)
);
Au passage la doc
non il n'y a pas de component Auth dans AppController , ni nulle part d'ailleurs. C'est ca qui est mysterieux
mais non il fonctionne. c'est ca le probleme, et je ne sais pas comment ca fonctionne.
cependant en erreur
#3 {main}
2015-03-23 01:32:08 Error: [MissingControllerException] Controller class AdminController could not be found.
Exception Attributes: array (
'class' => 'AdminController',
'plugin' => NULL,
)
Request URL: /labo/admin
Stack Trace:
#0 /Users/sylvain/Sites/labo/app/webroot/index.php(118): Dispatcher->dispatch(Object(CakeRequest), Object(CakeResponse))
voila ma route
$admin = 'admin';
Router::connect('/', array('controller' => 'home', 'action' => 'index'));
Router::connect('/admin', array('controller' => 'Drashboard', 'action' => 'index', 'admin' => true));
Router::connect('/default', array('controller' => 'pages', 'action' => 'display', 'home'));
Router::connect('/', array('controller' => 'home', 'action' => 'index'));
/**
* ...and connect the rest of 'Pages' controller's URLs.
*/
Router::connect('/item/*', array('controller' => 'item', 'action' => 'index'));
Au passage cest pas plutot Dashboard au lieu de Drashboard ? et la je ne sais pas du tout mais pourquoi tu as $admin ?
je reprends du code et je ne comprend pas tout, mais bon c'est juste que le precedent dev, il est a mal othographié le drashboard, mais comme il a bien mis partout ca marche.
Le probleme aujourdhui c'est que je ne comprends pas comment il fonctionne admin
Bonjour.
L'erreur retournée est plutôt simple à comprendre pourtant :
Controller class AdminController could not be found
CakePHP te dit que le controller admin n'est pas trouvé.
Il ne te faut pas oublier d'activer le prefixe admin dans le fichier core.php.
Configure::write('Routing.prefixes', ['admin']);
J'ai régardé le core et le prefix admin semble etre bien present.
Ce qui me semble, c'est qu'il a shunter le system de cakephp et mis en place son systeme.
non mais normalement vu ces routes il devrait acceder a DashboardController
Sauf que si l'erreur qui lui est retournée est que CakePHP cherche le controller admin mais ne le trouve pas, c'est qu'il y a un problème.
non il n'y a pas de component Auth dans AppController , ni nulle part d'ailleurs. C'est ca qui est mysterieux
Ba crée le alors ^^
mais non il fonctionne. c'est ca le probleme, et je ne sais pas comment ca fonctionne.
Tu dis qu'il n'y a le component Auth nulle part alors que juste après tu dis qu'il fonctionne bien ?
Il faudrait savoir et si CakePHP renvois sur l'action de connexion par défaut, c'est forcément que le composant Auth est utilisé quelque part et que l'application est configuré pour l'utiliser, regardes bien si quelque part tu as un $this->Auth... (un $this->Auth->allow par exemple) ou une fonction isAuthorized dans un controller.
De toute manière, comme ça nous ne pouvons pas trop t'aider, si tu as repris l'application de quelqu'un d'autre, que tu l'as sous les yeux mais que tu ne trouves pas d'où ça peut venir, ce sera plus difficile pour nous.
Pourquoi tu ne demandes pas des précisions à la personne à qui tu as pris la suite ?
Bon si j'ai bien compris
la route ci présente
Router::connect('/admin', array('controller' => 'Drashboard', 'action' => 'index', 'admin' => true));
dit que si je tape /admin je serais redirigé vers Dashboard index
hors le controller dashboard est vide
class DrashboardController extends AppController {
public function admin_index(){
}
}
Question que je me pose, comment devine t'il que je dois me loggue et a surtout a quel moment il me redirige vers /users/login ?