Bonjour je suis actuellement sur le développement d'un site web et j'ai besoins d'un systeme d'administration. Pour ce système je souhaiterais au chargement de la page récupérer si le préfixe "admin" est présent le rank de l'utilisateur et vérifier s'il est lui même admin. Autrement je le redirigerais. Je l'avais déjà fais sur un autre projet qui est sur un disque dur qui n'est quant à lui pas chez moi (Mais ça on s'en fous c'est un peut ma vie :D) et j'avais utilisé une fonction dans mon appController qui fonctionnais

Merci d'avance, coca

4 réponses


cocadev
Auteur
Réponse acceptée

J'ai finalement retrouvé comment j'avais fais (il y a maintenant quelques jours) :

<u><strong>AppController:</strong></u>

public function beforeFilter() {
        if(isset($this->request->params'prefix']) && $this->request->params'prefix'] == "admin") {
            if($this->Session->read('Auth.User.username') && $this->Session->read('Auth.User.rank') != "admin") {
                return $this->redirect('/');
            }
        }
    }

Bonjour

pour ma part dans ma BDD j'ai un champ ADMIN que j'initialise à 0
et si je veux qu'il soit administrateur je le met à 1

et dans mon AppController :

//Je récupère la donnée qui permet de savoir si l'utilisateur connecté est administrateur
$admin = AuthComponent::user('ADMIN');
// et après j'établi mes règles
public function beforeFilter(){
    //Pour tout le monde
 $this->Auth->allow('index','display', 'view' );
    //Pour Admin
    if ($admin == 1 ){
                $this->Auth->allow('index','display', 'view', 'delete', 'edit' );
    }
}

je ne sais plus vraiment si c'est exactement comme ça mais l'idée est là

cocadev
Auteur

L'idée en elle même est pas mal mais en gros moi je veut gagner du temps en limitant uniquement sur le prefix admin car c'est un assez gros site et donc beaucoup de choses mais merci quand même :D

Bonsoir,

Tu peut essayer ceci mais il te faut un autre layout que celui par défaut

function beforeFilter(){
    if(!isset($this->request->params'prefix']))
    {
        $this->Auth->allow();
    }
    if (isset($this->request->params'prefix']) && $this->request->params'prefix'] == 'admin'){
            $this->layout ='admin';

        }
    }