Bonjour,

Après avoir fait le tutoriel ACL , j'ai essayé d'intégrer le système dans mon site !
je souhaiterais savoir pourquoi cela ne m'affiche rien? et lorsque j'enlève beforeFilter dans mon fichier users_controller, j'essaie de me connecter, il n'y a pas de redirection mais cela m'affiche quelque chose. Tandis que lorsque je le met(beforeFilter) page blanche... je m'arrache les cheveux depuis tout à l'heure sans pouvoir trouver...
Désolé mais je début en cakephp et ne suis pas extrêmement à l'aise en php.

FICHIER APPCONTROLLER.php

<?php

Class AppController extends Controller{
var $components = array('Acl','Auth','Session');
var $helpers = array('Html','Form','Session');

function beforeFilter(){
$this->Auth->authorize = 'actions';
$this->Auth->loginAction = array('controller' => 'users', 'action' => 'login');
$this->Auth->logoutRedirect = array('controller' => 'users', 'action' => 'logout');
$this->Auth->loginRedirect = array('controller' => 'users', 'action' => 'index');
$this->Auth->loginError = "Identifiant ou mot de passe incorrects.";
$this->Auth->authError = "Vous n'avez pas accès à cette page.";

if($this->name=="Pages"){
$this->Auth->allow();
}
}
}
?>

fichier users_controller.php

<?php
class UsersController extends AppController {

var $name = 'Users';
var $scaffold;
function beforeFilter() {
parent::beforeFilter();
$this->Auth->allow(array('login','logout'));

}
function login(){}
function logout(){

$this->Auth->logout();
}
}
?>

fichier login.ctp

<?php
$this->set("title_for_layout","SSII Technoclic - Pour un meilleur service informatique - Accueil");
echo '<div style="margin:0 15%;">'.($this->Html->image("slide2.png", array("alt" => "Gestion de parc informatique"))).'</div>';
?>

<style type="text/css">
.auto-style1 {
font-family: Cambria, Cochin, Georgia, Times, "Times New Roman", serif;
font-size: medium;
}
.auto-style2 {
color: #996699;
}
.auto-style3 {
font-family: Cambria, Cochin, Georgia, Times, "Times New Roman", serif;
font-size: medium;
color: #996699;
}
</style>

<div style="height: 18px" > </div>
<div class="bartitle"> Technoclic </div>
<div class="content">
<p><span class="auto-style1">Nous sommes ravis de vous accueillir sur notre
site. </span> </p>
<p><span class="auto-style1">Technoclic est une SSII qui vous offre un large choix de services et de
produits parfaitement adaptés à vos exigences. Nous sommes constamment présents
pour vous épauler et vous conseiller avec compétence et professionnalisme.
</span> </p>
<p class="auto-style1">Nous vous proposons une collaboration dans<span class="auto-style2">
<strong>l'audit</strong></span>,
la<strong><span class="auto-style2"> gestion et la maintenance</span></strong> de vos systèmes
d'informations mais aussi l<strong><span class="auto-style2">'administration de vos
serveurs.</span></strong></p>
<p class="auto-style1">Disponibilité, écoute, réactivité sont les qualités de Technoclic et nous
nous engageons au quotidien à les mettre en oeuvre.</p>
<p class="auto-style3"><strong>Confiez-nous votre parc informatique et faites de
Technoclic votre service informatique !</strong></p>

</div>

2 réponses


k-vinh
Auteur

Merci d'avance pour vôtre aide

Bonsoir,

Je te conseille de mettre tes variables de créations de Auth lors de son instanciation. J'ai déjà eu quelques problèmes lorsque je mettais tout dans le beforeFilter, jamais trop compris pourquoi.

Du genre :

var $components = array('Acl','Auth' => array(
                            'loginAction' => array('controller' => 'users', 'action' => 'login', 'admin' => false),
                            'logoutAction' => array('controller' => 'users', 'action' => 'logout', 'admin' => false),
                                    ...]
                        ),'Session');

pour le logout, remplace le $this->Auth->logout() par $this->redirect($this->Auth->logout()), ça te permettra d'être redirigé automatiquement tout en te déconnectant.

Dans ton fichier login.ctp tu as :

$this->set("title_for_layout","SSII Technoclic - Pour un meilleur service informatique - Accueil");

Déplace ça dans ton controller, action login.

Essaie d'enlever le :

if($this->name=="Pages"){
    $this->Auth->allow();
}

de ton AppController pour voir ce que ça donne. Je ne sais pas ce que fait la method allow() sans paramètre.