[CakePHP2] isAuthorized

Dodo7 -  
 Dodo7 -
Bonjour,

Depuis plusieurs jours, j'essaye d'utiliser la méthode "isAuthorized" de CakePHP, mais rien n'y fait, je n'ai aucun changement à l'écran. j'ai même tenter de copier/coller le code visible sur la doc de CakePhp.

Je souhaite utiliser cette méthode pour automatiser certaines opération plutôt que de la répéter sur toute les pages...

AppController
class AppController extends Controller {
    public $components = array(
        'Session','Flash','Cookie',
        'Auth' => array(
            'logoutRedirect' => array('controller' => 'home', 'action' => 'index'),
            'authorize'      => array('Controller'),
            'authenticate'   => array(
                'Form'  => array(
                    'fields' => array('username' => 'email'),
                    'passwordHasher'    => array(
                        'className' => 'Custom'
                    )
                )
            )
        )
    );
 
    public function isAuthorized($user = null) {
        // Chacun des utilisateur enregistré peut accéder aux fonctions publiques
        if (empty($this->request->params['admin'])) {
            return true;
        }
}


j'ai également essayer d'y mettre un debug($user) suivi d'un die() mais rien...

Une idée de comment mettre en place cette fonctionnalité ?

Merci !
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.

1 réponse

ThEBiShOp Messages postés 8411 Date d'inscription   Statut Contributeur Dernière intervention   1 566
 
Salut,

mes souvenirs de cake sont assez éloignés, mais il me semble que tu dois définir ton beforefilter pour dire si telle ou telle action doit être accessible ou non


    public function beforeFilter() {
        parent::beforeFilter();
        $this->Auth->allow('add', 'logout');
    }


tu as le ->allow qui liste tes actions autorisées (tu peux utiliser '*' je crois) ou tu peux utiliser le contraire ->deny qui va lister tes actions interdites.

Est-ce que tu as bien ajouté ton beforefilter au niveau de ton controller ?
0
Dodo7
 
Bonjour,

Oui j'ai bien le beforeFilter, par contre, je ne sait pas pourquoi ni comment mais isAuthorize viens de fonctionner, juste en ajoutant un deny ...

Je te remercie quand même d'avoir répondu !
0