Jump to content

[Résolu] Forcer l'identification client


Recommended Posts

Bonjour,

 

je cherche le moyen d'obliger les clients à s'identifier avant de voir le site (boutique B2B).

 

J'avais réussi à le faire sur mon site, en version 1.4 : le client arrivait sur la page d'authentification directement, puis était redirigé vers l'index.php une fois identifié.

 

Seulement, la mise à jour en 1.5.1 a fait disparaitre cette fonction....et malheureusement, je ne me souviens plus comment j'avais fait ça. :-((

J'ai certainement modifié du code dans le coeur (erreur de débutante !! lol), mais c'était il y a un an, et je ne me souviens plus où.

 

Une bonne âme pour m'aider please ??

 

Merci d'avance.

Edited by sandbzh (see edit history)
Link to comment
Share on other sites

Ca ne marche pas.

Quoique je mette dans mon IndexController, j'obtiens :

Erreur HTTP 500 (Internal Server Error) : Une situation inattendue s'est produite tandis que le serveur tentait de traiter la demande

 

Je ne comprends pas... :blink:

Link to comment
Share on other sites

Bonsoir,

 

Pour avoir un accès privé sur ta boutique il faut modifier le fichier FrontController.php dans le dossier override/classes/controller

 

Dans la méthode init() juste après l'appel au controller parent (ligne 69), il faut ajouter ce code :

 


/* OVERRIDE ACCES PRIVEE */
if (!$this->context->customer->isLogged() && $this->php_self != 'authentication')
Tools::redirect('index.php?controller=authentication?back=my-account');
/* OVERRIDE ACCES PRIVEE */

 

En espérant avoir répondu à ta question.

Cordialement

Franck

Link to comment
Share on other sites

Ca marche !!! :D

Je n'ai toujours pas réussi à le mettre dans override, j'ai du rater un truc. Je l'ai mis directement dans FrontController.php, mais cette fois ci j'ai noté ce que j'ai fait !!!

 

Un grand grand MERCI Franck !!!!

Link to comment
Share on other sites

  • 2 months later...
  • 3 weeks later...

La solution de Prestaspirit fonctionne très bien (encore merci :D )...mais je viens tout de même de repérer un petit souci.

Cela bloque toutes les pages du site si l'on est pas identifié (ce que j'avais demandé !lol), mais du coup, cela bloque aussi la page "mot-de-passe-oublie"... un peu génant tout de même.

J'aurais aussi souhaité que la page "mentions-legales" soit accessible de tous.

Bref, est-il possible de mettre une exception à ce code ?

 

Merci d'avance !!!

Link to comment
Share on other sites

Bonjour à tous !

 

Je viens de trouver en lisant le post la solution à une de mes (nombreuses) questions. Par contre je rejoint "sandbzh" si il y a un moyen de pouvoir laisser les mentions et le mot de passe oublié je suis aussi à l'écoute.

Après comme je débute Prestashop je ne comprend pas le principe de l'override donc j'ai bien ouvert le fichier comme indiqué plus haut mais moi il est quasiment vide... une piste pour m'aider ?

 

Merci ;)

Link to comment
Share on other sites

Je ne sais pas si j'ai tout fait dans les règles de l'art, mais si je peux aider à mon tour (et pour mon site, ça fonctionne).

L'override te permet de modifier les fonctions de Prestashop sans toucher au coeur. Si tu fais une mise à jour, tu ne seras pas obligé de refaire tes modifications. Que les pros me corrigent si je dis des bétises...

 

Copie le code de ton classes/controllers/frontcontroller.php et mets le dans override/classes/controllers/frontcontroller.php, en n'oubliant pas la modif donnée par Prestaspirit, et tout devrait fonctionner...

 

A part que ça bloque toutes les pages. En espérant que quelqu'un trouve une solution pour ça!!

Link to comment
Share on other sites

Bonjour,

 

Pour conditionner l'accès sur d'autres pages il suffit d'ajouter la même condition que j'ai faite pour la page authentification

 

/* OVERRIDE ACCES PRIVEE */
if (!$this->context->customer->isLogged() && $this->php_self != 'authentication' && $this->php_self != 'password')
Tools::redirect('index.php?controller=authentication?back=my-account');
/* OVERRIDE ACCES PRIVEE */

 

cette exemple est pour la page mot de passe oublié, pour savoir quoi mettre comme id en condition il faut afficher le code source de la page en question et récupérer l'id de la balise body.

 

Cordialement

Franck

Link to comment
Share on other sites

  • 2 weeks later...
  • 2 weeks later...

Bonjour j'ai le même problème que upsilon a la différence que moi maintenant quand j'enlève les modifications sur les fichiers j'ai toujours le problème avec l'erreur suivante: Erreur HTTP 500 (Internal Server Error) : Une situation inattendue s'est produite tandis que le serveur tentait de traiter la demande.

S'il vous plait j'ai vraiment besoin d'aide urgent.

Link to comment
Share on other sites

  • 4 months later...

Bonjour,

 

La solution de PrestaShop Apprentice fonctionne très bien,(merci). Cependant j'aimerai que lorsque on clique sur "Consulter la version mobile du site" on arrive sur la page d'authenfication mais en version mobile mais je ne sais pas comment m'y prendre.

 

Merci de votre aide!

Link to comment
Share on other sites

  • 1 month later...

Bonjour,

 

je reviens à nouveau sur ce sujet car j'ai un nouveau problème.

 

J'ai voulu faire la mise à jour vers 1.5.4.1, qui n'a pas correctement fonctionné je crois. Je suis donc repassée à la 1.5.3.1 et depuis j'ai plein de bugs... que j'arrive à résoudre petit à petit.

 

Par contre, mon accès privé ne fonctionne plus, j'arrive directement à ma page d'accueil, sans identification. Je n'ai pourtant rien changé à la solution donnée par Prestaspirit, qui fonctionnait très bien pour moi.

 

Quelqu'un aurait-il une idée pour m'aider ?

Merci d'avance !!

Link to comment
Share on other sites

Petite précision : j'ai modifié directement le fichier coeur FrontController et tout fonctionne.

 

J'ai aussi remarqué que d'autres modifications faites dans l'override ne fonctionnait plus, le problème viendrait donc de là....

 

Si quelqu'un a une idée.... je prends !!! ;)

Link to comment
Share on other sites

  • 1 month later...

Dans le dossier override, il y a un fichier readme qui dit ceci

 

Q: I added an override file but it seems to be ignored by PrestaShop
A: You need to trigger the regeneration of the /cache/class_index.php file. This is done simply by deleting the file. It is the same when manually removing an override: in order to reinstate the default behavior, you must delete the /cache/class_index.php file.
 
Il faut donc supprimer le fichier /cache/class_index.php pour prendre en compte les modifications.
Le fichier supprimé se régénère ensuite.
 
Ca peut aider je pense
Edited by patfrat (see edit history)
Link to comment
Share on other sites

  • 7 months later...

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...