Jump to content

Recommended Posts

Bonjour je travaille actuellement sur une partie login avec de l'ajax

 

Je sait que de base authentification passe par le fichier AuthController.php

 

cepandant les fonctions qui sont dedant ne me convienne pas complétement.

 

Mon ami qui est plutôt bon en php me dit d'override la fonction

 

 

Comment je peut faire?

 

 

http://doc.prestasho...fault+behaviors

 

edit j'ai teste cette manipulation :

  • /override/controllers/front/ProductController.php
  • /modules/my_module/override/controllers/front/ProductController.php

avec AuthController.php

 

Mais rien n'y fait doit-je reinstaller le module?

 

edit j'ai déjà poste sur un autre forum dans Adapter Prestashop>Devloppement mais dans le doute d'etre au bon endroit je poste ici

Edited by Lion-Soul (see edit history)
Link to comment
Share on other sites

Oui après chaque modification dans ton module concernant cette override, tu doit réinstaller ton module pour que les modification soit prise en compte.

 

Car pendant l’installation du module, il fait un merge de ce que tu as dans le répertoire override de ton module pour le mettre dans le répertoire override à la racine.

 

Loïc.

Link to comment
Share on other sites

Merci de ta réponse mais malheureusement pour moi je n'ai toujours pas de résultat

je te poste ma fonction overide

<?php
class AuthController extends AuthControllerCore
{
protected function processSubmitLogin()
{
	   Hook::exec('actionBeforeAuthentication');
 $passwd = trim(Tools::getValue('passwd'));
 $email = trim(Tools::getValue('email'));
 if (empty($email))
  $this->errors[] = Tools::displayError('E-mail address required');
 elseif (!Validate::isEmail($email))
  $this->errors[] = Tools::displayError('Invalid e-mail address');
 elseif (empty($passwd))
  $this->errors[] = Tools::displayError('Password is required');
 elseif (!Validate::isPasswd($passwd))
  $this->errors[] = Tools::displayError('Invalid password');
 else
 {
  $customer = new Customer();
  $authentication = $customer->getByEmail(trim($email), trim($passwd));
  if (!$authentication || !$customer->id)
  {
// Handle brute force attacks
sleep(1);
$this->errors[] = Tools::displayError('Authentication failed');
  }
  else
  {
$this->context->cookie->id_compare = isset($this->context->cookie->id_compare) ? $this->context->cookie->id_compare: CompareProduct::getIdCompareByIdCustomer($customer->id);
$this->context->cookie->id_customer = (int)($customer->id);
$this->context->cookie->customer_lastname = $customer->lastname;
$this->context->cookie->customer_firstname = $customer->firstname;
$this->context->cookie->logged = 1;
$customer->logged = 1;
$this->context->cookie->is_guest = $customer->isGuest();
$this->context->cookie->passwd = $customer->passwd;
$this->context->cookie->email = $customer->email;

// Add customer to the context
$this->context->customer = $customer;

if (Configuration::get('PS_CART_FOLLOWING') && (empty($this->context->cookie->id_cart) || Cart::getNbProducts($this->context->cookie->id_cart) == 0))
 $this->context->cookie->id_cart = (int)Cart::lastNoneOrderedCart($this->context->customer->id);

// Update cart address
$this->context->cart->id = $this->context->cookie->id_cart;
$this->context->cart->setDeliveryOption(null);
$this->context->cart->id_address_delivery = Address::getFirstCustomerAddressId((int)($customer->id));

$this->context->cart->id_address_invoice = Address::getFirstCustomerAddressId((int)($customer->id));
$this->context->cart->secure_key = $customer->secure_key;
$this->context->cart->update();
$this->context->cart->autosetProductAddress();
Hook::exec('actionAuthentication');
// Login information have changed, so we check if the cart rules still apply
CartRule::autoRemoveFromCart($this->context);
CartRule::autoAddToCart($this->context);
if (!$this->ajax)
{
 if ($back = Tools::getValue('back'))
  Tools::redirect(html_entity_decode($back));
 Tools::redirect('index.php?controller=my-account');
}
  }
 }
 if ($this->ajax)
 {
  $return = array(
'hasError' => !empty($this->errors),
'errors' => $this->errors,
'token' => Tools::getToken(false),
							'lastname'=>$customer->lastname,
							'firstname'=>$customer->firstname
  );
  die(Tools::jsonEncode($return));
 }
 else
  $this->context->smarty->assign('authentification_error', $this->errors);
}
}

 

Tout ça posé dans le chemin /modules/mon_module/override/controllers/front/

 

Ca serai le premier overide que je ferai je galere un peu y a t'il une erreure

Edited by Lion-Soul (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...