Utiliser un élèment d'identification

Par Thepastisboy, il y a 13 ans


J'ai suivi le tuto de création d'un site en quatre jours et je me posais une question.
J'ai crée un élèment d'authentification que j'appelle dans mon footer de cette maniére

<?php echo $this->element('connection'); ?>

sachant que le footer est lui aussi un élèment.
Cependant comment est-il possible de gérer cette authentification sachant qu'il n'est pas lié à un modèle spécifique ?
Pour faire simple, j'aimerais intercepter la validation de ce formulaire dans toutes les pages du site.

6 réponses

zenkiai, il y a 13 ans

Tu n'as pas de Model User qui gère la validation de ton authentification ?

Thepastisboy, il y a 13 ans

Oui j'ai un modèle User, mais je dois donc appeler ce modèle dans tous les autres modèles, il n'y a pas de risque de lourdeur?

zenkiai, il y a 13 ans

Mais lorsque tu fais appel à ton formulaire d'authentification tu crées bien un formulaire qui appel le model User.

<?php echo $this->Form->create('User'); ?>
Thepastisboy, il y a 13 ans

ouaip

<div class="row-fluid" >
    <?php echo $this->Form->create('User'); ?>
    <div class="span12" style="margin-left:10px">
        <br>
        <div class="input-prepend" >    
            <span class="add-on"><i class="icon-user icon-large"></i></span>
                <?php echo $this->Form->input('username', array('label' => false,"placeholder"=>"Login", "id"=>"username", "required", "class" =>"span9", "div" =>false)); ?> 
        </div>  
    </div>

    <div class="span12" style="margin-left:10px">   
        <div class="input-prepend">
            <span class="add-on"><i class="icon-key icon-large"></i></span>
                <?php echo $this->Form->input('password', array('label' => false,"placeholder"=>"Mot de passe", "id"=>"password","required", "class" =>"span9", "div" =>false)); ?>
        </div><br>  
    </div>
    <div style="margin-left:10px">
    <?php echo $this->Form->end("Se connecter"); ?></div>
</div>

ça c'est mon élèment connection.ctp
Le problème c'est que dans mon controleur UsersController, il y a une fonction login(). J'aimerais donc que quand j'appuye sur "Se connecter", la fonction login() soit prise en compte que je sois sur tous les controleurs disponibles vu que l'élèment est dans le footer.

zenkiai, il y a 13 ans

essaye comme ceci en ajoutant le controller et l'action dans le create :

<?php echo $this->Form->create('User', array(
                'url' => array(
                        'controller' => 'users',
                        'action' => 'login')
                        )
                    );
Thepastisboy, il y a 13 ans

rahhhh, merci (quel idiot, je n'y avais pas pensé).
Je te remercie, maintenant il ne me reste plus qu'à mettre les conditions, changer le beforeFilter et c'est bon.
Merci beaucoup