[CakePHP2] isAuthorized

Fermé
Dodo7 - Modifié par baladur13 le 15/09/2016 à 09:19
 Dodo7 - 16 sept. 2016 à 12:19
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 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 566
Modifié par ThEBiShOp le 16/09/2016 à 11:55
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
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