Bonjour/Bonsoir et bonne année à vous ! :)

Je vous présente la situation, j'aimerai dans ma vue tester si l'utilisateur connecté possède un certain rang minimum pour effectuer une certaine action. Dans l'ordre : Admin, modo, rédacteur, etc... donc s'il est modo, il peut éditer les commentaires (idem pour les admins), mais je ne sais pas trop comment m'y prendre directement depuis la vue :(

Ma vue (ou du moins la partie intéréssante) :

<?php if(AuthComponent::user('status') >= 'modo'){

Dans mon AppController (ça peut servir...):

$status = array(
    'admin' => 100,
    'modo' => 80,
    'writer' => 60,
    'staff' => 40,
    'user' => 20
);

Si vous avez une idée sur comment m'y prendre, merci d'avance et bonne journée :)

1 réponse


Dans l'AppController.php tu peux faire ceci

$utilisateur = $this->Auth->user(); // tu rempli de la variable $utilisateur
$this->set('utilisateur',$utilisateur); // Envoi de la variable $utilisateur vers view
et dans ta vue tu peux tester en faisant debug($utilisateur) ca devrait te montrer tout ce que tu as mis dans ta table users pour l'utilisateur connecté
donc dans ton cas tu peux mettre $niveau=$utilisateur'status']; puis faire tes tests sur cette valeur
En principe le besoin (si je ne dit pas de bêtises) de ce que tu recherches sera juste pour l'affichage (ou non) d'un menu ou des boutons/liens d'éditions suppression etc! selon son niveau ... et non pas la gestion des accès vu que Auth le fait deja.

Le soucis que j'ai eu (au cas ou ca arrive) c'est que le debug de $user = $this->Auth->user(); ne me rend rien!
je me suis dit que $user étant une nom commun aurait pu être utilisé ailleurs, sans cherché pourquoi j'ai juste changé en $utilisateur