Hello :)

J'aurais voulu savoir comment faire pour vérifier les droits sur une action d'un controller dans une vue.
J'ai vu qu'il existait la fonction check, j'ai donc testé, ca marche ... encore qu'il faut connaitre la clé étrangère ... mais ca marche.

$this->Acl->check(array('model' => 'User', 'foreign_key' => $this->Session->Read('Auth.User.id')), 'add');

Le problème c'est qu'on ne peut pas le faire dans une vue :/

Auriez vous une astuce ?

Merci

See you :)

2 réponses


Boobha
Auteur

Enfaite non ca ne marche pas, ca me renvoi des droits bizarres.
Need help :)
Merci

Boobha
Auteur

J'ai trouvé ca (http://forum.cakephp-fr.org/viewtopic.php?id=1142) :
Dans app_controller :

function checkAuth($controller, $action){
        return ($this->Acl->check(array('model' => 'User', 'foreign_key' => $this->Auth->user('id')), $controller.'/'.$action, "*"))?true:false;
    }

Dans le controller on passe la valeur du checkAuth :

$this->set('perm_add_user', $this->checkAuth('Users', 'add') );

Dans la vue :

if( $perm_add_user ){ echo $this->Html->link(__('adduser', true),array('controller'=>'users','action'=>'add')); }

Voila espérant que ca peut en aider certains, après y a peut-être mieux :)