Bonjour à tous,
Voilà je démarre avec cakephp en venant de ruby on rails au départ.
J'ai un petit souci avec l'accès à des pages protégées.
En fait j'ai créé une route "/admin" qui est protégé par un accès restreint donc automatiquement lorsqu'on essaie d'accéder à monsite.com/admin, on est redirigé vers une page "/login".
Lorsque j'introduis mon login et mot de passe (ils sont bien corrects et existent dans la dabase), je reçois le message "vous n'avez pas accès à cette page". J'ai cherché dans mon code où pourrait se situer le souci de permission mais je ne vois pas? on dirait que la page que j'essaie d'atteindre (page /admin/promos) n'enregistre pas le fait que je viens de me loguer et du coup me renvoyer toujours vers ma page "/login".
Je mets le code ci-dessous en espérant que vous pourrez m'aider
users_controller.php
promos_controller.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 <?php class UsersController extends AppController { var $name = 'Users'; function login(){ $this->layout = 'admin_default'; $this->set('title', 'Administration connexion'); } function logout(){ $this->Session->setFlash("Vous êtes maintenant déconnecté."); $this->redirect($this->Auth->logout()); } } ?>
app_controller.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 <?php class PromosController extends AppController { var $name="Promos"; function index() { $liste_des_promos = $this->Promo->find('all'); $this->set('promos', $liste_des_promos); $this->set('title', 'promotions'); } function admin_index(){ $promosRecents = $this->Promo->find('all'); $this->set('promosRecents', $promosRecents); } } ?>
les routes:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 <?php class AppController extends Controller { var $helpers = array ('Html', 'Text', 'Form'); var $components = array('Auth'); function beforeFilter() { if(isset($this->Auth)) { $this->Auth->userModel = 'User'; $this->Auth->fields = array('username' => 'login', 'password' => 'password'); $this->Auth->userScope = array('User.disabled' => 0); $this->Auth->loginAction = '/users/login'; $this->Auth->loginRedirect = '/admin/promos'; $this->Auth->loginError = "username or password not correct"; $this->Auth->logoutRedirect = '/'; $this->Auth->authError = "You don't have access to this page."; $this->Auth->autoRedirect = true; $this->Auth->authorize = 'controller'; if((empty($this->params['prefix']) || $this->params['prefix'] != 'admin') && $this->action != 'login') { $this->Auth->allow(); } } } function isAuthorized() { return true; } function beforeRender() { if(isset($this->params['prefix']) && $this->params['prefix'] == 'admin') { $this->layout = 'admin_default'; } } } ?>
Router::connect('/admin', array('controller' => 'promos', 'action' => 'index', 'prefix' => 'admin'));
Router::connect('/login', array('controller' => 'users', 'action' => 'login'));
Merci à tous!
Partager