finishing creating lost password template
This commit is contained in:
@@ -41,6 +41,7 @@
|
|||||||
<forms>
|
<forms>
|
||||||
<form name="thelia.customer.creation" class="Thelia\Form\CustomerCreation"/>
|
<form name="thelia.customer.creation" class="Thelia\Form\CustomerCreation"/>
|
||||||
<form name="thelia.customer.modification" class="Thelia\Form\CustomerModification"/>
|
<form name="thelia.customer.modification" class="Thelia\Form\CustomerModification"/>
|
||||||
|
<form name="thelia.customer.lostpassword" class="Thelia\Form\CustomerLostPasswordForm"/>
|
||||||
|
|
||||||
<form name="thelia.customer.login" class="Thelia\Form\CustomerLogin"/>
|
<form name="thelia.customer.login" class="Thelia\Form\CustomerLogin"/>
|
||||||
<form name="thelia.admin.login" class="Thelia\Form\AdminLogin"/>
|
<form name="thelia.admin.login" class="Thelia\Form\AdminLogin"/>
|
||||||
|
|||||||
@@ -38,11 +38,16 @@
|
|||||||
<default key="_controller">Thelia\Controller\Front\CustomerController::logoutAction</default>
|
<default key="_controller">Thelia\Controller\Front\CustomerController::logoutAction</default>
|
||||||
</route>
|
</route>
|
||||||
|
|
||||||
<route id="customer.password.retrieve.view" path="/password">
|
<route id="customer.password.retrieve.view" path="/password" methods="get">
|
||||||
<default key="_controller">Thelia\Controller\Front\DefaultController::noAction</default>
|
<default key="_controller">Thelia\Controller\Front\DefaultController::noAction</default>
|
||||||
<default key="_view">password</default>
|
<default key="_view">password</default>
|
||||||
</route>
|
</route>
|
||||||
|
|
||||||
|
<route id="customer.password.retrieve.process" path="/password" methods="post">
|
||||||
|
<default key="_controller">Thelia\Controller\Front\CustomerController::newPasswordAction</default>
|
||||||
|
<default key="_view">password</default>
|
||||||
|
</route>
|
||||||
|
|
||||||
<!-- end customer routes -->
|
<!-- end customer routes -->
|
||||||
|
|
||||||
<!-- customer address routes -->
|
<!-- customer address routes -->
|
||||||
|
|||||||
@@ -24,11 +24,13 @@ namespace Thelia\Controller\Front;
|
|||||||
|
|
||||||
use Thelia\Core\Event\CustomerCreateOrUpdateEvent;
|
use Thelia\Core\Event\CustomerCreateOrUpdateEvent;
|
||||||
use Thelia\Core\Event\CustomerLoginEvent;
|
use Thelia\Core\Event\CustomerLoginEvent;
|
||||||
|
use Thelia\Core\Event\LostPasswordEvent;
|
||||||
use Thelia\Core\Security\Authentication\CustomerUsernamePasswordFormAuthenticator;
|
use Thelia\Core\Security\Authentication\CustomerUsernamePasswordFormAuthenticator;
|
||||||
use Thelia\Core\Security\Exception\AuthenticationException;
|
use Thelia\Core\Security\Exception\AuthenticationException;
|
||||||
use Thelia\Core\Security\Exception\UsernameNotFoundException;
|
use Thelia\Core\Security\Exception\UsernameNotFoundException;
|
||||||
use Thelia\Form\CustomerCreation;
|
use Thelia\Form\CustomerCreation;
|
||||||
use Thelia\Form\CustomerLogin;
|
use Thelia\Form\CustomerLogin;
|
||||||
|
use Thelia\Form\CustomerLostPasswordForm;
|
||||||
use Thelia\Form\CustomerModification;
|
use Thelia\Form\CustomerModification;
|
||||||
use Thelia\Form\Exception\FormValidationException;
|
use Thelia\Form\Exception\FormValidationException;
|
||||||
use Thelia\Model\Customer;
|
use Thelia\Model\Customer;
|
||||||
@@ -45,6 +47,41 @@ use Thelia\Core\Security\Exception\WrongPasswordException;
|
|||||||
class CustomerController extends BaseFrontController
|
class CustomerController extends BaseFrontController
|
||||||
{
|
{
|
||||||
use \Thelia\Cart\CartTrait;
|
use \Thelia\Cart\CartTrait;
|
||||||
|
|
||||||
|
public function newPasswordAction()
|
||||||
|
{
|
||||||
|
if (! $this->getSecurityContext()->hasCustomerUser()) {
|
||||||
|
$message = false;
|
||||||
|
|
||||||
|
$passwordLost = new CustomerLostPasswordForm($this->getRequest());
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
$form = $this->validateForm($passwordLost);
|
||||||
|
|
||||||
|
$event = new LostPasswordEvent($form->get("email")->getData());
|
||||||
|
|
||||||
|
$this->dispatch(TheliaEvents::LOST_PASSWORD, $event);
|
||||||
|
|
||||||
|
} catch (FormValidationException $e) {
|
||||||
|
$message = sprintf("Please check your input: %s", $e->getMessage());
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
$message = sprintf("Sorry, an error occured: %s", $e->getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($message !== false) {
|
||||||
|
Tlog::getInstance()->error(sprintf("Error during customer creation process : %s. Exception was %s", $message, $e->getMessage()));
|
||||||
|
|
||||||
|
$passwordLost->setErrorMessage($message);
|
||||||
|
|
||||||
|
$this->getParserContext()
|
||||||
|
->addForm($passwordLost)
|
||||||
|
->setGeneralError($message)
|
||||||
|
;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new customer.
|
* Create a new customer.
|
||||||
* On success, redirect to success_url if exists, otherwise, display the same view again.
|
* On success, redirect to success_url if exists, otherwise, display the same view again.
|
||||||
|
|||||||
@@ -71,6 +71,10 @@ final class TheliaEvents
|
|||||||
*/
|
*/
|
||||||
const CUSTOMER_UPDATEACCOUNT = "action.updateCustomer";
|
const CUSTOMER_UPDATEACCOUNT = "action.updateCustomer";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* sent when a customer need a new password
|
||||||
|
*/
|
||||||
|
const LOST_PASSWORD = "action.lostPassword";
|
||||||
/**
|
/**
|
||||||
* Sent before the logout of the administrator.
|
* Sent before the logout of the administrator.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -14,20 +14,29 @@
|
|||||||
<div class="main">
|
<div class="main">
|
||||||
<article class="col-main" role="main" aria-labelledby="main-label">
|
<article class="col-main" role="main" aria-labelledby="main-label">
|
||||||
<h1 id="main-label" class="page-header">{intl l="Password Forgotten"}</h1>
|
<h1 id="main-label" class="page-header">{intl l="Password Forgotten"}</h1>
|
||||||
|
{form name="thelia.customer.lostpassword"}
|
||||||
|
<form id="form-forgotpassword" action="{url path="/password"}" method="post" role="form">
|
||||||
|
|
||||||
<form id="form-forgotpassword" action="" method="post" role="form">
|
<p>{intl l="Please enter your email address below." {intl l="You will receive a link to reset your password."}</p>
|
||||||
|
{form_field form=$form field="email"}
|
||||||
<p>{intl l="Please enter your email address below. You will receive a link to reset your password."}</p>
|
<div class="form-group group-email {if $error}has-error{elseif !$error && $value != ""}has-success{/if}">
|
||||||
|
<label for="{$label_attr.for}">{$label}</label>
|
||||||
<div class="form-group">
|
<div class="control-input">
|
||||||
<label for="forgot-email">Please enter your email address</label>
|
<input type="email" name="{$name}" value="{$value}" id="{$label_attr.for}" class="form-control" aria-required="true" autofocus required>
|
||||||
<input type="email" name="forgot-email" id="forgot-email" class="form-control" aria-required="true" autofocus aria-required="true" required value="">
|
{if $error}
|
||||||
|
<span class="help-block"><span class="icon-remove"></span> {$message}</span>
|
||||||
|
{elseif !$error && $value != ""}
|
||||||
|
<span class="help-block"><span class="icon-ok"></span> {intl l="You will receive a link to reset your password."}</span>
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
{/form_field}
|
||||||
<div class="group-btn">
|
<div class="group-btn">
|
||||||
<a href="{url path="/"}" class="btn btn-cancel">{intl l="Cancel"}</a>
|
<a href="{url path="/"}" class="btn btn-cancel">{intl l="Cancel"}</a>
|
||||||
<button type="submit" class="btn btn-forgot">{intl l="Send"}</button>
|
<button type="submit" class="btn btn-forgot">{intl l="Send"}</button>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
{/form}
|
||||||
</article>
|
</article>
|
||||||
</div>
|
</div>
|
||||||
{/block}
|
{/block}
|
||||||
|
|||||||
Reference in New Issue
Block a user