Bonjour à tous,
je viens de créer une partie administration sur mon site. Pour ce faire, j'ai suivi le tuto présent sur le site de CakePHP.
Tout fonctionne bien, mise à part que maintenant, à chaque fois que je veux afficher le site via sont url de base (www.monsite.com), CakePHP, me renvoi toujours vers www.monsite.com/users/login
Impossible d'accéder à la partie publique autrement que par : www.monsite.com/users

Des idées?

Si je ne suis pas assez clair, dites le moi et je posterai mes sources

Merci d'avance

7 réponses


djtec
Réponse acceptée

As tu autorise l'affichage de toute les vue dans ton appcontroller?

djtec
Réponse acceptée

J'ai trouve il te suffit de mettre:

$this->Auth->deny('add', 'edit');
// ou
$this->Auth->deny(array('add', 'edit'));
kal-el
Auteur

Je l'ai fait au départ avec :

<?php
// Code de AppController
//...
function beforeFilter(){
    $this->Auth->allow('*');
}
//...
?>

et ça marche bien. Mais le problème, c'est que du coup les autres actions du genre add , edit...etc...de la partie users ne sont donc plus sécurisé. Ou peut être qu'il y a un moyen de sécurisé l'accès à ces actions?

Merci

kal-el
Auteur

C'est bon, je viens de résoudre mon problème. Avant dans le controller Users, je faisait ça :

<?php
// UsersController
public function beforeFilter() {
    parent::beforeFilter();
    $this->Auth->allow('login');
}
?>

J'ai simplement retiré la première ligne pour vérouillé les différents actions du controller sans prendre en compte AppController :

<?php
// UsersController
public function beforeFilter() {
    $this->Auth->allow('login');
}
?>

Après dans chaque contrôler tu peux dire à quelle vue tu n'autorise pas l'accès si l'utilisateur n'est pas connecté.

Par contre je sais plus ce qu'il faut mettre exactement mais c'est dans la fonction beforeFilter regarde dans la doc ça doit être mit.

kal-el
Auteur

Merci djtec

kal-el
Auteur

ça marche nickel...Je te remercie encore a+