CakePHP-Fr.Org

Forum francophone du Framework CakePHP

Vous n'êtes pas identifié.

#1 20-08-2014 14:48:06

navet
Chouquette
Date d'inscription: 20-08-2014
Messages: 3

Problème redirection backoffice par user non autorisé

Bonjour,

j'ai mis en place un système de backoffice sur mon site à l'aide de login et de prefix /admin
J'arrive m'y connecter correctement avec un user ayant pour role "admin" avec un system d'autorisation
(authorize controller , isAuthorized...)

mais lorsque j'essaie de m'y connecter avec un user ayant pour role "non admin", il me redirige vers
localhost/nom projet/nom projet (un doublon d'url)

Je trouve ça bizarre, et je ne trouve pas d'ou cela peut provenir,
si quelqu'un a une idée, merci de votre aide !
Bonne journée !

Hors ligne

 

#2 21-08-2014 10:01:59

spout
Cooker
Date d'inscription: 18-12-2010
Messages: 1899

Re: Problème redirection backoffice par user non autorisé

On px voir le code en question qui fait la redirection ?
Par hasard: URL relative ?

Hors ligne

 

#3 21-08-2014 10:16:15

navet
Chouquette
Date d'inscription: 20-08-2014
Messages: 3

Re: Problème redirection backoffice par user non autorisé

Justement je n'ai pas de code de redirection à proprement parler, cela se fait tout seul, c'est pour cela que je ne pige pas. Mais du coup j'ai fais une redirection^^

Hors ligne

 

#4 21-08-2014 10:18:57

navet
Chouquette
Date d'inscription: 20-08-2014
Messages: 3

Re: Problème redirection backoffice par user non autorisé

Du coup vla le code : dans AppController

class AppController extends Controller {

    public $helpers = array('Session');
    public $components = array('Session', 'Cookie',
        'Auth' => array(
            'authenticate' => array(
                'Form' => array(
                    'scope' => array('User.active' => 1)
                )
            )
        )
    );
    public $uses = array('Category');


    function beforeFilter(){
        parent::beforeFilter();

        $this->Auth->loginAction = array('controller' => 'users', 'action' => 'login', 'admin' => false);
        $this->Auth->authorize = array('Controller');

        if(!isset($this->request->params['prefix'])){
            $this->Auth->allow();
        }       
    }   

    function beforeRender(){
        $categories = $this->Category->find("all");
        $this->set(compact("categories"));
    }

    function isAuthorized($user){
        if(!isset($this->request->params['prefix'])){
            return true;
        }
        $roles = array(
            'admin' => 10,
            'user' => 5);
        if(isset($roles[$this->request->params['prefix']])){
            $lvlAction = $roles[$this->request->params['prefix']];
            $lvlUser = $roles[$user['role']];
            if ($lvlUser >= $lvlAction){
                return true;
            }else{
                $this->redirect('/');
                return false;
            }
        }
        $this->redirect('/');
        return false;
    }

J'ai ajouté 2X $this->redirect('/'); pour corriger mon problème.

Dernière modification par navet (21-08-2014 10:19:15)

Hors ligne

 

#5 21-08-2014 10:27:52

spout
Cooker
Date d'inscription: 18-12-2010
Messages: 1899

Re: Problème redirection backoffice par user non autorisé

le isAuthorized n'est pas censé faire un redirect, il retourne juste true ou false.
http://book.cakephp.org/2.0/en/core-lib … rauthorize

Il redirige vers http://book.cakephp.org/2.0/en/core-lib … edRedirect
Qui est par défaut le referer.

Hors ligne

 

Pied de page des forums

Propuls� par FluxBB
Traduction par FluxBB.fr