Jump to content

Interdire les inscriptions/Création de compte


Recommended Posts

Salut à tous,
j'ai un client qui veut créer un PrestaShop  pour ces partenaires uniquement. il me demande la possibilité de créer ses compte partenaire lui même via le back-office.

Mais interdire la création de compte par le visiteur classique.

Y a t'il une option dans ce sens sur PrestaShop ou éventuellement un module....

Merci d'avance de votre aide.
Cdt @+

Link to comment
Share on other sites

Désactivez la fonction d'enregistrement dans le controleur front AuthController.php

        if (Tools::getValue('create_account')) {
            $this->create_account = true;
        }

a remplacer par

        if (Tools::getValue('create_account')) {
            $this->create_account = false;
        }

et éditer la fonction postProcess()

    /**
     * Start forms process
     * @see FrontController::postProcess()
     */
    public function postProcess()
    {
        if (Tools::isSubmit('SubmitCreate')) {
            $this->errors[] = Tools::displayError('Account creation is disabled.');
        }

        if (Tools::isSubmit('submitAccount') || Tools::isSubmit('submitGuestAccount')) {
            $this->errors[] = Tools::displayError('Account creation is disabled.');
        }
        if (count($this->errors)) {
            if ($this->ajax) {
                $return = array(
                    'hasError' => !empty($this->errors),
                    'errors' => $this->errors,
                    'isSaved' => false,
                    'id_customer' => 0
                );
                $this->ajaxDie(Tools::jsonEncode($return));
            }
            $this->context->smarty->assign('account_error', $this->errors);
        }
        if (Tools::isSubmit('SubmitLogin')) {
            $this->processSubmitLogin();
        }
    }

 

Link to comment
Share on other sites

Bonjour, 

Techniquement si on ne laisse pas la possibilité de créer un compte,mais juste de se connecter c'est possible. il suffit d'avoir juste un bouton connexion

image.png.22ddb804ba7f58cceed38db3e8e621e7.png

et de supprimer "pas de compte ? Créez en un "

image.png.98c8c5bc1994b5768ec923e0239ab90f.png 

CDT 

Jérémy 

Link to comment
Share on other sites

Ben non car ça n'empêche pas d'envoyer un formulaire en post qui sera géré par le contrôleur.

Cacher un lien n'empêche pas d'y accéder car https://www.votre_site/index.php?controller=authentication renverra bien le formulaire d'inscription et d'autre part vous n'empêchez pas la création de compte lors du processus de commande^^

Link to comment
Share on other sites

7 minutes ago, Eolia said:

Ben non car ça n'empêche pas d'envoyer un formulaire en post qui sera géré par le contrôleur.

Cacher un lien n'empêche pas d'y accéder car https://www.votre_site/index.php?controller=authentication renverra bien le formulaire d'inscription et d'autre part vous n'empêchez pas la création de compte lors du processus de commande^^

Certes c'est vrai, vous avez raison. 

Après dans mon optique je me disais que pour trouver le lien si les clients en question n'y connaissent rien, c'est une tache compliquée. Cependant ma "solution" est vrai qu'elle n'est pas correct après réflexion :(  

Link to comment
Share on other sites

Il y a 2 heures, Eolia a dit :

Désactivez la fonction d'enregistrement dans le controleur front AuthController.php

        if (Tools::getValue('create_account')) {
            $this->create_account = true;
        }

a remplacer par

        if (Tools::getValue('create_account')) {
            $this->create_account = false;
        }

et éditer la fonction postProcess()

    /**
     * Start forms process
     * @see FrontController::postProcess()
     */
    public function postProcess()
    {
        if (Tools::isSubmit('SubmitCreate')) {
            $this->errors[] = Tools::displayError('Account creation is disabled.');
        }

        if (Tools::isSubmit('submitAccount') || Tools::isSubmit('submitGuestAccount')) {
            $this->errors[] = Tools::displayError('Account creation is disabled.');
        }
        if (count($this->errors)) {
            if ($this->ajax) {
                $return = array(
                    'hasError' => !empty($this->errors),
                    'errors' => $this->errors,
                    'isSaved' => false,
                    'id_customer' => 0
                );
                $this->ajaxDie(Tools::jsonEncode($return));
            }
            $this->context->smarty->assign('account_error', $this->errors);
        }
        if (Tools::isSubmit('SubmitLogin')) {
            $this->processSubmitLogin();
        }
    }

 

Merci Eolia,

Par contre je n'ai pas le code que tu mentionnes dans AuthController.php . version presta 1.7.7.5.
Et ou se trouve la fonction postProcess(), que dois je faire dedans...

Merci de ton aide.

Cdt

Edited by spawns
erreur (see edit history)
Link to comment
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...