diff --git a/controllers/front/GuestTrackingController.php b/controllers/front/GuestTrackingController.php index ab05a2876..e7017e12f 100644 --- a/controllers/front/GuestTrackingController.php +++ b/controllers/front/GuestTrackingController.php @@ -92,10 +92,11 @@ class GuestTrackingControllerCore extends FrontController $customer = new Customer((int)$order->id_customer); if (!Validate::isLoadedObject($customer)) { $this->errors[] = Tools::displayError('Invalid customer'); - } elseif (!Tools::getValue('password')) { + } elseif (!Tools::getValue('password') + || !Validate::isPasswd(Tools::getValue('password') + )) { $this->errors[] = Tools::displayError('Invalid password.'); } elseif (!$customer->transformToCustomer($this->context->language->id, Tools::getValue('password'))) { - // @todo clarify error message $this->errors[] = Tools::displayError('An error occurred while transforming a guest into a registered customer.'); } else { $this->context->smarty->assign('transformSuccess', true); diff --git a/controllers/front/OrderOpcController.php b/controllers/front/OrderOpcController.php index 465c6a7ca..2cd2a223c 100644 --- a/controllers/front/OrderOpcController.php +++ b/controllers/front/OrderOpcController.php @@ -173,7 +173,9 @@ class OrderOpcControllerCore extends ParentOrderController if (!count($this->errors)) { $customer = new Customer($this->context->customer->id); - if ($customer->transformToCustomer($this->context->language->id, $passwd)) { + if (!$customer->isGuest()) { + $this->errors[] = Tools::displayError('This account is already registered as a customer.'); + } else if ($customer->transformToCustomer($this->context->language->id, $passwd)) { $this->context->updateCustomer($customer); } else { $this->errors[] = Tools::displayError('An error occurred while transforming your account into a registered customer.');