Jump to content
Daaaaad

CategoryController et authentification

Recommended Posts

Bonjour à tous,

Je viens de découvrir un truc sympa : La possibilité de définir au niveau du contrôleur s'il faut être authentifié ou non pour y accéder 👍

class CategoryController extends CategoryControllerCore
{
	public $auth = true;

Cependant, je n'ai pas trouvé comment faire pour rediriger ensuite le visiteur vers la catégorie qu'il a tenté de visualiser, une fois connecté :

class CategoryController extends CategoryControllerCore
{
	public $auth = true;
	public $authRedirection = 'category';

Je spécifie bien le $authRedirection mais il ne connait pas l'ID de la catégorie 😔

Une idée quelqu'un ?

Merci 😀

Share this post


Link to post
Share on other sites

Dans la suite de vos découvertes recherchez ce qui concerne le paramètre back^^

Share this post


Link to post
Share on other sites

Merci @Eolia, je le connais bien ce paramètre 😉 Il est effectivement utilisé par le mécanisme d'authentification... si je tente d'accéder à une des catégories de mon site sans être connecté (avec le $auth = true et le $authRedirection = 'category' en place) je suis bien redirigé vers l'authentification avec le paramètre "back" présent

https://www.[monsite].com/connexion?back=category

Petit hic : CategoryController nécessite l'id_category et il n'est pas défini... donc je me retrouve avec une erreur 404 😔

As-tu déjà fait ce genre de choses ?

Share this post


Link to post
Share on other sites

le back doit être assigné lors de la redirection (controller=category&id_category=ton_id)

Share this post


Link to post
Share on other sites

Bonjour,

Sinon tu peux surcharger la fonction init du controller et rajouter la ligne suivante après la définition de $this->category et la vérification que la catégorie est bien chargée.
 

public function init()
    {
        $id_category = (int) Tools::getValue('id_category');
        $this->category = new Category(
            $id_category,
            $this->context->language->id
        );

        if (!Validate::isLoadedObject($this->category) || !$this->category->active) {
            Tools::redirect('index.php?controller=404');
        }

       //Redirection
        $this->authRedirection = $this->context->link->getCategoryLink($this->category);

        parent::init();
   //... Suite du code
}

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More