sandbox / passwordrecovery
Password recovery Nette extension.
Installs: 537
Dependents: 1
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 0
Type:project
Requires
- php: >= 5.4.0
README
Requirements
Sandbox/PasswordRecovery requires PHP 5.4.0 or higher.
Installation
The best way to install Sandbox/PasswordRecovery is using Composer:
$ composer require sandbox/passwordrecovery
Configuration
Then you have to register extension in config.neon.
extensions: passwordRecovery: Sandbox\PasswordRecovery\DI\PasswordRecoveryExtension
and configuration section in config.neon (version 1.0.x):
passwordRecovery: sender: "sandbox@domain.net" subject: "Obnova hesla" submitButton: "Obnovit heslo" validatorMessage: "Prosím vložte validní heslo." errorMessage: "Nové heslo se nepodařilo odeslat. Zkuste to prosím znovu." smtp: [127.0.0.1, info@domain.tld, password]
and configuration section in config.neon (version 1.1.x):
passwordRecovery: passwordRecovery: sender: "sandbox@domain.net" subject: "Obnova hesla" submitButton: "Obnovit heslo" validatorMessage: "Prosím vložte validní heslo." equalPasswordMessage: "Hesla se musí shodovat." emptyPasswordMessage: "Heslo musí obsahovat alespoň %d znaků" minimalPasswordLength: 6 expirationTime: 45 #minute, max 59 errorMessage: "Odkaz pro obnovu hesla se nepodařilo odeslat. Zkuste to prosím znovu." smtp: [127.0.0.1, info@domain.tld, password]
Next, you need to register a service that implements an interface IUserModel. Example is sandbox project: https://github.com/ViPErCZ/sandbox
Usage
Sample using in Presenter (version 1.0.x):
use Nette\Application\UI\Form; use Sandbox\PasswordRecovery\PasswordRecovery; /** * Class PassRestorePresenter * @package App */ class PassRestorePresenter { /** @var PasswordRecovery */ protected $passwordRecovery; /** * @param PasswordRecovery $passwordRecovery */ public function injectPasswordRecovery(PasswordRecovery $passwordRecovery) { $this->passwordRecovery = $passwordRecovery; } /** * @return \Nette\Application\UI\Form */ protected function createComponentRecoveryForm() { $form = $this->passwordRecovery->createForm(); $form->onSuccess[] = function(Form $form) { $this->flashMessage('Heslo bylo odesláno na Váš email ' . $form->getValues()['email'] . "."); $this->redrawControl('recoveryForm'); }; $form->onError[] = function() { $this->redrawControl('recoveryForm'); }; return $form; } }
or version 1.1.x
/** * @return \Nette\Application\UI\Form */ protected function createComponentRecovery() { $control = $this->passwordRecovery->createDialog(); $control->getResetForm()->onSuccess[] = function(Form $form) { $this->flashMessage('Odkaz pro obnovu hesla byl odeslán na Váš email ' . $form->getValues()['email'] . "."); $this->redrawControl('recoveryForm'); }; $control->getResetForm()->onError[] = function() { $this->redrawControl('recoveryForm'); }; $control->getNewPasswordForm()->onSuccess[] = function() { $this->flashMessage('Heslo bylo úspěšně nastaveno. Pokračujte na přihlašovací obrazovku.'); $this->redrawControl('recoveryForm'); }; $control->getNewPasswordForm()->onError[] = function() { $this->redrawControl('recoveryForm'); }; return $control; }
and template (version 1.0.x)
{snippet recoveryForm} <div n:foreach="$flashes as $flash" class="alert alert-success">{$flash->message}</div> {if count($flashes) == 0} {form recoveryForm role => "form"} {if $form->hasErrors()} <div n:foreach="$form->errors as $error" class="alert alert-danger">{$error}</div> {/if} <div class="row form-group"> <div class="col-xs-12"> {label email /} {input email class => "form-control", placeholder => "Email..."} </div> </div> <div class="row form-group col-lg-10"> {input recover class => "btn btn-success"} </div> {/form} {/if} {/snippet}
and template in version 1.1.x has default template (using twitter bootstrap class)
{snippet recoveryForm} <div n:foreach="$flashes as $flash" class="alert alert-success">{$flash->message}</div> {if count($flashes) == 0} {control recovery} {/if} {/snippet}
Extension using Nette\Localization\ITranslator and all configurated strings are translated.
Homepage https://packagist.org/packages/vipercz/sandbox and repository https://github.com/ViPErCZ/passwordRecovery.