C'est fait.... j'ai aucun changement.
Je comprends vraiment pas pourquoi ça ne fonctionne pas sous Linux!!
C'est fait.... j'ai aucun changement.
Je comprends vraiment pas pourquoi ça ne fonctionne pas sous Linux!!
Il faut que tu trouve ou il teste sur les droits.
Moi je dirai que l'application teste sur le rôle est ce qu'il a le droit de voir la page sinon il le redirige vers l'index.
un fonction commeet que la lettre du guest est ecrit en majuscule par exemple.
Code : Sélectionner tout - Visualiser dans une fenêtre à part ->isAllowed('Guest' , 'controller', 'action')
Pour faire des teste et dire que c'est a cause de ça ou pas.
ok je regarde et je vous tiens informé!
merci
j'ai trouvé une classe qui semble indiquer qu'il n'y a pas d'authentification pour le module default:
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124 <?php class Pi_Plugin_Permissions extends Zend_Controller_Plugin_Abstract { private $_auth; private $_acl; private $_noauth = array( 'default' => array('module' => 'default', 'controller' => 'index', 'action' => 'noauth'), 'manager' => array('module' => 'manager', 'controller' => 'auth', 'action' => 'login'), 'candidats' => array('module' => 'candidats', 'controller' => 'auth', 'action' => 'login') ); private $_noacl = array('module' => 'default', 'controller' => 'index', 'action' => 'noacl'); public function __construct($auth, $acl) { $this->_auth = $auth; $this->_acl = $acl; } /* **** Assertion qui ne marche pas !!!! v�rification du compte client et agence directement dans le controller public function dispatchLoopStartup (Zend_Controller_Request_Abstract $request) { $this->_acl->allow("client","manager_clients",'',new Pi_Acl_ClientAssert($request->getParam("cli_id",null))); if (true) { echo "autoris� permission" . $request->getParam("cli_id",null).'<br/>'; } else { echo "pas autoris�"; } } */ public function dispatchLoopStartup(Zend_Controller_Request_Abstract $request) { // $frontController = Zend_Controller_Front::getInstance(); // $var = $frontController->getRouter(); // Zend_Registry::get('Firebug')->log($var->getCurrentRouteName(), Zend_Log::INFO); //Zend_debug::Dump($request); $messageDebug = array(); $role = 'guest'; if ($this->_auth->hasIdentity()) { if(isset($this->_auth->getIdentity()->role)){ $role = $this->_auth->getIdentity()->role; } } //recup de la ressource en cours $controller = $request->controller; $action = $request->action; $module = $request->module; $cli_id = $request->cli_id; if ($module == 'candidats' && $request->controller != 'auth' && $request->controller != 'register') { $resource = 'candidats_area'; } elseif ($module != 'default') { $resource = $module . '_' . $controller; } else { $resource = $controller; } $messageDebug[] = "Real resource : " . $resource; //test de la ressource if (!$this->_acl->has($resource)) { $resource = null; } $messageDebug[] = 'Module : ' . $module; $messageDebug[] = 'controller : ' . $controller; $messageDebug[] = 'action : ' . $action; $messageDebug[] = 'resource : ' . $resource; $messageDebug[] = 'role : ' . $role; $messageDebug[] = 'isModule ' . $request->_isModule; $messageDebug[] = "autorise : " . (($this->_acl->isAllowed($role, $resource, $action)) ? 'oui' : 'non' ); $messageDebug[] = "cli_id : " . $cli_id ; if (!$this->_acl->isAllowed($role, $resource, $action)) { if (!$this->_auth->hasIdentity() && $request->module == 'manager' && $request->controller != 'auth') { $module = $this->_noauth['manager']['module']; $controller = $this->_noauth['manager']['controller']; $action = $this->_noauth['manager']['action']; //}elseif (!$this->_auth->hasIdentity() && $resource == 'candidats_area' && ($request->controller != 'auth' || $request->controller != 'register')) { }elseif ($resource == 'candidats_area' && ($request->controller != 'auth' || $request->controller != 'register')) { $module = $this->_noauth['candidats']['module']; $controller = $this->_noauth['candidats']['controller']; $action = $this->_noauth['candidats']['action']; }elseif (!$this->_acl->isAllowed($role, $resource, $action) && Zend_Controller_Front::getInstance()->getDispatcher()->isDispatchable($request) ) { // permet de savoir si une page existe ou pas $module = $this->_noacl['module']; $controller = $this->_noacl['controller']; $action = $this->_noacl['action']; } } $messageDebug[] = "Redirige vers :" . $module .'/'. $controller .'/'. $action; $request->setModuleName($module); $request->setControllerName($controller); $request->setActionName($action); $url = $this->_request->getPathInfo(); $request->setParam('redirectUrl',$url); if($this->_acl->isAllowed($role, 'display_debug_msg')){ //Zend_Registry::get('Firebug')->log($messageDebug, Zend_Log::INFO); } } }
Vider la fonction dispatchLoopStartup pour voir s'il va te faire la redirection sinon on verra le code de la classe.
Ok quand je la met en commentaire, il ne se passe rien.
Par contre j'ai une autre classe, si je commente la fonction preDispatch, mon site ne s'affiche pas.
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70 <?php class Pi_Plugin_Layout extends Zend_Controller_Plugin_Abstract { private $_auth; private $_acl; private $_role; private $view; public function __construct($auth, $acl) { $this->_auth = $auth; $this->_acl = $acl; //$this->view = Zend_Layout::getMvcInstance()->getView(); //$this->view->addScriptPath("./application/modules/manager/views/layout"); //$this->view->addScriptPath("./application/modules/manager/views/scripts"); } public function preDispatch(Zend_Controller_Request_Abstract $request) { $layout = Zend_Layout::getMvcInstance(); //Zend_Layout::getMvcInstance()->setLayout($request->getModuleName()); $this->_role = 'guest'; if ($this->_auth->hasIdentity()) { if(isset($this->_auth->getIdentity()->role)){ $this->_role = $this->_auth->getIdentity()->role; } } /* Affichage d'une zone de debug quand le site est en développement if($this->_acl->isAllowed($this->_role, 'display_dev_tool')){ $layout->after_body_start = '<div id="beta_menu" class="valign">'. '</div>'; } */ // Menu à gauche pour le manager if($request->getModuleName() == 'manager'){ if ($this->_auth->hasIdentity()) { $role = $this->_auth->getIdentity()->role; } else { $role = 'guest'; } // echo $request->getModuleName(); switch($role) { case 'admin': $layout->left = "admin"; break; case 'agence': $layout->left = "agence"; break; case 'client': $layout->left = "client"; break; } } /* // bouton pour le menu de debug en bas de toute les pages if($this->_acl->isAllowed($this->_role, 'display_beta_menu')){ $layout->before_body_end = '<div id="beta_menu" class="valign">'. '<a href="'.SITE_ABS_URL.'index/report"><img src="'.SITE_ABS_URL.'/public/skin/default/images/icon_bug.gif" /> Beta Menu</a>'. '</div>'; } */ } }
Commente les ligne du 93 -> 110 de la calss "Pi_Plugin_Permissions"
fais un echo avant la ligne 93et
Code : Sélectionner tout - Visualiser dans une fenêtre à part echo $module .'--'. $controller . '--' $action.'<br/>';
aprés 110
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 echo $module .'--'. $controller . '--' $action; exit:
J'ai une page blanche... rien ne s'affiche
Après correction, voilà ce qui 'affiche :
default - index - index
default - index - index
Est ce que tu la testé sur la page d'accueil si oui essai d'aller à la page de rechercher par url
J'ai ce résultat sur la page de recherche: http://91.216.19.189/portailinterim.com/index/recherche
default - herche - index
default - herche - index
bizarre non???
Ce "herche" est trop bizare, c'est le "rec" du "recherche" qui a disparu.
met le
apré la ligne 67 pour voir la valeur initial ce qu'il va donné par default il doit afficherecho $module .'--'. $controller . '--' $action;
exit:
default - index - recherche.
PS
Votre boite n'accepte plus les message privé tu dois la vidé.
Alors j'ai fait le test et j'ai toujours la même chose:
quand je mets dans mon url : http://91.216.19.189/portailinterim.com/index/recherche
Code : Sélectionner tout - Visualiser dans une fenêtre à part default--herche--index
par contre quand je mets ça: http://91.216.19.189/portailinterim.com/Index/recherche
j'ai ce résultat:
je suis sur que c'est une histoire de casse dans un fichier mais je ne sais pas quoi faire
Code : Sélectionner tout - Visualiser dans une fenêtre à part default--Index--recherche
PS: ma boîte est vidée
Partager