Jump to content

Choisir son groupe à l'inscription (prestashop 1.5)


Recommended Posts

Bonjour,

 

Je souhaite modifier la page d'inscription pour que l'utilisateur puisse choisir un groupe à l'inscription:

 

1/ Pour cela j'ai modifié le fichier authentication.tpl et j'ai ajouté le code suivant:

 

<h3>{l s='Your personal information'}</h3>

		   <p class="radio required">
			<span>{l s='You are'}</span>
			<input type="radio" name="id_group_def" id="id_group2" value="2" {if isset($smarty.post.id_group) && $smarty.post.id_group == 4}checked="checked"{/if} />
			{l s='Professional'} :
			<input checked type="radio" name="id_group_def" id="id_group1" value="1" {if isset($smarty.post.id_group) && $smarty.post.id_group == 3}checked="checked"{/if} />
			{l s='Public'} :
			</p>

 

2/ et dans le fichier controller/front/authcontroller.php

 

/* Preparing customer */
		$customer = new Customer();
		$lastnameAddress = $_POST['lastname'];
		$firstnameAddress = $_POST['firstname'];
		$_POST['lastname'] = $_POST['customer_lastname'];
		$_POST['firstname'] = $_POST['customer_firstname'];
		// recuperer le id groupe envoyé par le template par la méthode POST
	    $groupId = $_POST['id_group_def'];

 

et j'ai ajouté groupid dans la méthode add:

else
						$customer->is_guest = 0;
						// ajouter groupID dans la méthode add
					 if (!$customer->add(true,true,$groupId))
						$this->errors[] = Tools::displayError('An error occurred while creating your account.');

 

3/ et dans le fichier classes/customer.php

 

j'ai modifié la méthode add pour qu'elle prenne en compte groupid comme argument:

 

public function add($autodate = true, $null_values = true,$groupId)
{
	$this->id_shop = ($this->id_shop) ? $this->id_shop : Context::getContext()->shop->id;
	$this->id_shop_group = ($this->id_shop_group) ? $this->id_shop_group : Context::getContext()->shop->id_shop_group;
	$this->birthday = (empty($this->years) ? $this->birthday : (int)$this->years.'-'.(int)$this->months.'-'.(int)$this->days);
	$this->secure_key = md5(uniqid(rand(), true));
	$this->last_passwd_gen = date('Y-m-d H:i:s', strtotime('-'.Configuration::get('PS_PASSWD_TIME_FRONT').'minutes'));

	if ($this->id_default_group == _PS_DEFAULT_CUSTOMER_GROUP_)
		if ($this->is_guest)
			$this->id_default_group = Configuration::get('PS_GUEST_GROUP');
		else
			$this->id_default_group = $groupId;

 

Mais malgré ça, quand je m'identifie, je suis affecté au groupe par défaut même en choisissant un autre groupe lors de l'inscription, et je ne comprend pas pourquoi?

 

Merci d'avance

Edited by airakaz900 (see edit history)

Share this post


Link to post
Share on other sites

1/... vérifie le nombre "checked"

 

 

2/ et dans le fichier controller/front/authcontroller.php

pas d'override ?

 

 

2/ ... $groupId = $_POST['id_group_def'];

Grosse faille de sécurité !!!

 

3/...public function add($autodate = true, $null_values = true,$groupId)

pas de valeur par défaut pour $groupId ?

 

aucune modif dans la fonction processSubmitAccount ?

  • Like 1

Share this post


Link to post
Share on other sites

1/... vérifie le nombre "checked"

 

 

2/ et dans le fichier controller/front/authcontroller.php

pas d'override ?

 

 

2/ ... $groupId = $_POST['id_group_def'];

Grosse faille de sécurité !!!

 

3/...public function add($autodate = true, $null_values = true,$groupId)

pas de valeur par défaut pour $groupId ?

 

aucune modif dans la fonction processSubmitAccount ?

 

Bonjour et Merci pour votre réponse:

 

1/ Je ne pense pas que ça vient de là, car j'ai fait la même chose sur 1.4 et ça a marché sans problème.

 

2/ Non je n'ai pas fait d'override, j'ai attaqué directement le fichier core

 

2/ ah bon :unsure:

 

3/ Pour la fonction add, on prend toujours la valeur de $groupid choisie lors de l'authentification.

 

C'est dans la fonction processSubmitAccount, ou j'ai mis $groupId = $_POST['id_group_def'];

Share this post


Link to post
Share on other sites

  • 3 weeks 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
 Share

×
×
  • Create New...

Important Information

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