Enhancements to Mailer exception handling fixes #79

This commit is contained in:
Kartik Visweswaran
2017-10-18 18:15:15 +05:30
parent 18ea0c664a
commit 3feae01a17
35 changed files with 302 additions and 38 deletions

View File

@ -1,6 +1,8 @@
# CHANGELOG # CHANGELOG
## 1.0.14 - Work in progress ## 1.0.14 - Work in progress
- Enh #79: Enhancements to Mailer exception handling and events (kartik-v)
- Fix #85: External links should open in a new tab|window (eseperio) - Fix #85: External links should open in a new tab|window (eseperio)
- Enh #23: Provide administrator with an option to reset user password (tonydspaniard) - Enh #23: Provide administrator with an option to reset user password (tonydspaniard)
- Enh #55: Provide google recaptcha mechanism (tonydspaniard) - Enh #55: Provide google recaptcha mechanism (tonydspaniard)

View File

@ -138,8 +138,9 @@ class AdminController extends Controller
if ($this->make(UserCreateService::class, [$user, $mailService])->run()) { if ($this->make(UserCreateService::class, [$user, $mailService])->run()) {
Yii::$app->getSession()->setFlash('success', Yii::t('usuario', 'User has been created')); Yii::$app->getSession()->setFlash('success', Yii::t('usuario', 'User has been created'));
$this->trigger(UserEvent::EVENT_AFTER_CREATE, $event); $this->trigger(UserEvent::EVENT_AFTER_CREATE, $event);
return $this->redirect(['update', 'id' => $user->id]); return $this->redirect(['update', 'id' => $user->id]);
} else {
Yii::$app->session->setFlash( 'danger', Yii::t('usuario', 'User account could not be created.'));
} }
} }

View File

@ -114,7 +114,6 @@ class RegistrationController extends Controller
) )
); );
$this->trigger(FormEvent::EVENT_AFTER_REGISTER, $event); $this->trigger(FormEvent::EVENT_AFTER_REGISTER, $event);
return $this->render( return $this->render(
'/shared/message', '/shared/message',
[ [
@ -122,16 +121,11 @@ class RegistrationController extends Controller
'module' => $this->module, 'module' => $this->module,
] ]
); );
} else {
Yii::$app->session->setFlash( 'danger', Yii::t('usuario', 'User could not be registered.'));
} }
} }
return $this->render('register', ['model' => $form, 'module' => $this->module]);
return $this->render(
'register',
[
'model' => $form,
'module' => $this->module,
]
);
} }
public function actionConnect($code) public function actionConnect($code)

View File

@ -0,0 +1,67 @@
<?php
/*
* This file is part of the 2amigos/yii2-usuario project.
*
* (c) 2amigOS! <http://2amigos.us/>
*
* For the full copyright and license information, please view
* the LICENSE file that was distributed with this source code.
*/
namespace Da\User\Event;
use Da\User\Model\User;
use Da\User\Service\MailService;
use yii\base\Event;
/**
* Mailer event to trap and handle mail exceptions for user model actions
*
* @author Kartik Visweswaran <kartikv2@gmail.com>
*/
class MailEvent extends Event
{
const TYPE_WELCOME = 'welcome';
const TYPE_RECOVERY = 'recovery';
const TYPE_CONFIRM = 'confirm';
const TYPE_RECONFIRM = 'reconfirm';
const EVENT_BEFORE_SEND_MAIL = 'beforeSendMail';
const EVENT_AFTER_SEND_MAIL = 'afterSendMail';
protected $type;
protected $user;
protected $mailService;
protected $exception;
public function __construct($type, User $user, MailService $mailService, $exception, $config = [])
{
$this->type = $type;
$this->user = $user;
$this->mailService = $mailService;
$this->exception = $exception;
parent::__construct($config);
}
public function getType()
{
return $this->type;
}
public function getUser()
{
return $this->user;
}
public function getMailService()
{
return $this->mailService;
}
public function getException()
{
return $this->mailService;
}
}

View File

@ -11,12 +11,19 @@
namespace Da\User\Factory; namespace Da\User\Factory;
use Da\User\Event\MailEvent;
use Da\User\Model\Token; use Da\User\Model\Token;
use Da\User\Model\User; use Da\User\Model\User;
use Da\User\Module; use Da\User\Module;
use Da\User\Service\MailService; use Da\User\Service\MailService;
use Yii; use Yii;
/**
* Class MailFactory
*
* @package Da\User\Factory
* @modified 2017-10-18 by Kartik Visweswaran <kartikv2@gmail.com>
*/
class MailFactory class MailFactory
{ {
/** /**
@ -39,7 +46,7 @@ class MailFactory
'showPassword' => $showPassword, 'showPassword' => $showPassword,
]; ];
return static::makeMailerService($from, $to, $subject, 'welcome', $params); return static::makeMailerService(MailEvent::TYPE_WELCOME, $from, $to, $subject, 'welcome', $params);
} }
/** /**
@ -60,7 +67,7 @@ class MailFactory
'token' => $token, 'token' => $token,
]; ];
return static::makeMailerService($from, $to, $subject, 'recovery', $params); return static::makeMailerService(MailEvent::TYPE_RECOVERY, $from, $to, $subject, 'recovery', $params);
} }
/** /**
@ -81,7 +88,7 @@ class MailFactory
'token' => $token, 'token' => $token,
]; ];
return static::makeMailerService($from, $to, $subject, 'recovery', $params); return static::makeMailerService(MailEvent::TYPE_CONFIRM, $from, $to, $subject, 'recovery', $params);
} }
/** /**
@ -105,12 +112,13 @@ class MailFactory
'token' => $token, 'token' => $token,
]; ];
return static::makeMailerService($from, $to, $subject, 'recovery', $params); return static::makeMailerService(MailEvent::TYPE_RECONFIRM, $from, $to, $subject, 'recovery', $params);
} }
/** /**
* Builds a MailerService. * Builds a MailerService.
* *
* @param string $type
* @param string $from * @param string $from
* @param string $to * @param string $to
* @param string $subject * @param string $subject
@ -119,8 +127,12 @@ class MailFactory
* *
* @return MailService * @return MailService
*/ */
public static function makeMailerService($from, $to, $subject, $view, array $params = []) public static function makeMailerService($type, $from, $to, $subject, $view, $params = [])
{ {
return Yii::$container->get(MailService::class, [$from, $to, $subject, $view, $params, Yii::$app->getMailer()]); /** @noinspection PhpIncompatibleReturnTypeInspection */
return Yii::$container->get(
MailService::class,
[$type, $from, $to, $subject, $view, $params, Yii::$app->getMailer()]
);
} }
} }

View File

@ -20,6 +20,7 @@ class MailService implements ServiceInterface
{ {
protected $viewPath = '@Da/User/resources/views/mail'; protected $viewPath = '@Da/User/resources/views/mail';
protected $type;
protected $from; protected $from;
protected $to; protected $to;
protected $subject; protected $subject;
@ -30,15 +31,17 @@ class MailService implements ServiceInterface
/** /**
* MailService constructor. * MailService constructor.
* *
* @param string $from * @param string $type the mailer type
* @param string $to * @param string $from from email account
* @param string $subject * @param string $to to email account
* @param string $view * @param string $subject the email subject
* @param array $params * @param string $view the view to render mail
* @param BaseMailer|MailerInterface $mailer * @param array $params view parameters
* @param BaseMailer|MailerInterface $mailer mailer interface
*/ */
public function __construct($from, $to, $subject, $view, array $params, MailerInterface $mailer) public function __construct($type, $from, $to, $subject, $view, array $params, MailerInterface $mailer)
{ {
$this->type = $type;
$this->from = $from; $this->from = $from;
$this->to = $to; $this->to = $to;
$this->subject = $subject; $this->subject = $subject;
@ -62,6 +65,15 @@ class MailService implements ServiceInterface
return $this; return $this;
} }
/**
* gets mailer type
* @return string
*/
public function getType()
{
return $this->type;
}
/** /**
* @return bool * @return bool
*/ */

View File

@ -16,12 +16,15 @@ use Da\User\Factory\TokenFactory;
use Da\User\Model\Token; use Da\User\Model\Token;
use Da\User\Model\User; use Da\User\Model\User;
use Da\User\Query\UserQuery; use Da\User\Query\UserQuery;
use Da\User\Traits\MailAwareTrait;
use Exception; use Exception;
use Yii; use Yii;
use yii\log\Logger; use yii\log\Logger;
class PasswordRecoveryService implements ServiceInterface class PasswordRecoveryService implements ServiceInterface
{ {
use MailAwareTrait;
protected $query; protected $query;
protected $email; protected $email;
@ -51,7 +54,7 @@ class PasswordRecoveryService implements ServiceInterface
$this->mailService->setViewParam('user', $user); $this->mailService->setViewParam('user', $user);
$this->mailService->setViewParam('token', $token); $this->mailService->setViewParam('token', $token);
if (!$this->mailService->run()) { if (!$this->sendMail($user)) {
return false; return false;
} }

View File

@ -14,10 +14,13 @@ namespace Da\User\Service;
use Da\User\Contracts\ServiceInterface; use Da\User\Contracts\ServiceInterface;
use Da\User\Factory\TokenFactory; use Da\User\Factory\TokenFactory;
use Da\User\Model\User; use Da\User\Model\User;
use Da\User\Traits\MailAwareTrait;
use yii\log\Logger; use yii\log\Logger;
class ResendConfirmationService implements ServiceInterface class ResendConfirmationService implements ServiceInterface
{ {
use MailAwareTrait;
protected $model; protected $model;
protected $mailService; protected $mailService;
protected $logger; protected $logger;
@ -34,8 +37,7 @@ class ResendConfirmationService implements ServiceInterface
if ($this->model && !$this->model->getIsConfirmed()) { if ($this->model && !$this->model->getIsConfirmed()) {
$token = TokenFactory::makeConfirmationToken($this->model->id); $token = TokenFactory::makeConfirmationToken($this->model->id);
$this->mailService->setViewParam('token', $token); $this->mailService->setViewParam('token', $token);
return $this->sendMail($this->model);
return $this->mailService->run();
} }
return false; return false;

View File

@ -15,12 +15,16 @@ use Da\User\Contracts\ServiceInterface;
use Da\User\Event\UserEvent; use Da\User\Event\UserEvent;
use Da\User\Helper\SecurityHelper; use Da\User\Helper\SecurityHelper;
use Da\User\Model\User; use Da\User\Model\User;
use Da\User\Traits\MailAwareTrait;
use Exception; use Exception;
use Yii;
use yii\base\InvalidCallException; use yii\base\InvalidCallException;
use yii\log\Logger; use yii\log\Logger;
class UserCreateService implements ServiceInterface class UserCreateService implements ServiceInterface
{ {
use MailAwareTrait;
protected $model; protected $model;
protected $securityHelper; protected $securityHelper;
protected $mailService; protected $mailService;
@ -57,15 +61,23 @@ class UserCreateService implements ServiceInterface
if (!$model->save()) { if (!$model->save()) {
$transaction->rollBack(); $transaction->rollBack();
return false; return false;
} }
$model->trigger(UserEvent::EVENT_AFTER_CREATE); $model->trigger(UserEvent::EVENT_AFTER_CREATE);
if (!$this->sendMail($model)) {
$this->mailService->run(); Yii::$app->session->setFlash(
'warning',
Yii::t(
'usuario',
'Error sending welcome message to "{email}". Please try again later.',
['email' => $model->email]
)
);
$transaction->rollBack();
return false;
}
$transaction->commit(); $transaction->commit();
return true; return true;
} catch (Exception $e) { } catch (Exception $e) {
$transaction->rollBack(); $transaction->rollBack();

View File

@ -16,16 +16,17 @@ use Da\User\Event\UserEvent;
use Da\User\Factory\TokenFactory; use Da\User\Factory\TokenFactory;
use Da\User\Helper\SecurityHelper; use Da\User\Helper\SecurityHelper;
use Da\User\Model\User; use Da\User\Model\User;
use Da\User\Traits\ContainerAwareTrait; use Da\User\Traits\MailAwareTrait;
use Da\User\Traits\ModuleAwareTrait; use Da\User\Traits\ModuleAwareTrait;
use Exception; use Exception;
use yii\base\InvalidCallException; use yii\base\InvalidCallException;
use yii\log\Logger; use yii\log\Logger;
use Yii;
class UserRegisterService implements ServiceInterface class UserRegisterService implements ServiceInterface
{ {
use ModuleAwareTrait; use ModuleAwareTrait;
use ContainerAwareTrait; use MailAwareTrait;
protected $model; protected $model;
protected $securityHelper; protected $securityHelper;
@ -61,7 +62,6 @@ class UserRegisterService implements ServiceInterface
if (!$model->save()) { if (!$model->save()) {
$transaction->rollBack(); $transaction->rollBack();
return false; return false;
} }
@ -72,8 +72,18 @@ class UserRegisterService implements ServiceInterface
if (isset($token)) { if (isset($token)) {
$this->mailService->setViewParam('token', $token); $this->mailService->setViewParam('token', $token);
} }
$this->mailService->run(); if (!$this->sendMail($model)) {
Yii::$app->session->setFlash(
'warning',
Yii::t(
'usuario',
'Error sending registration message to "{email}". Please try again later.',
['email' => $model->email]
)
);
$transaction->rollBack();
return false;
}
$model->trigger(UserEvent::EVENT_AFTER_REGISTER, $event); $model->trigger(UserEvent::EVENT_AFTER_REGISTER, $event);
$transaction->commit(); $transaction->commit();

View File

@ -0,0 +1,53 @@
<?php
/*
* This file is part of the 2amigos/yii2-usuario project.
*
* (c) 2amigOS! <http://2amigos.us/>
*
* For the full copyright and license information, please view
* the LICENSE file that was distributed with this source code.
*/
namespace Da\User\Traits;
use Da\QrCode\Exception\InvalidConfigException;
use Da\User\Event\MailEvent;
use Da\User\Model\User;
use Da\User\Service\MailService;
use Exception;
use yii\log\Logger;
/**
* @property MailService $mailService
* @property Logger $logger
* @author Kartik Visweswaran <kartikv2@gmail.com>
*/
trait MailAwareTrait
{
use ContainerAwareTrait;
/**
* Sends a mailer
*
* @param User $user
*
* @return bool
*/
protected function sendMail(User $user)
{
$type = $this->mailService->getType();
$event = $this->make(MailEvent::class, [$type, $user, $this->mailService, null]);
$user->trigger(MailEvent::EVENT_BEFORE_SEND_MAIL, $event);
try {
$this->mailService->run();
} catch (Exception $e) {
$event = $this->make(MailEvent::class, [$type, $user, $this->mailService, $e]);
$this->logger->log($e->getMessage(), Logger::LEVEL_ERROR);
$user->trigger(MailEvent::EVENT_AFTER_SEND_MAIL, $event);
return false;
}
$user->trigger(MailEvent::EVENT_AFTER_SEND_MAIL, $event);
return true;
}
}

View File

@ -94,6 +94,8 @@ return [
'Error occurred while changing password' => '', 'Error occurred while changing password' => '',
'Error occurred while confirming user' => '', 'Error occurred while confirming user' => '',
'Error occurred while deleting user' => '', 'Error occurred while deleting user' => '',
'Error sending registration message to "{email}". Please try again later.' => '',
'Error sending welcome message to "{email}". Please try again later.' => '',
'Finish' => '', 'Finish' => '',
'Forgot password?' => '', 'Forgot password?' => '',
'Gravatar email' => '', 'Gravatar email' => '',
@ -207,7 +209,9 @@ return [
'Update rule' => '', 'Update rule' => '',
'Update user account' => '', 'Update user account' => '',
'Updated at' => '', 'Updated at' => '',
'User account could not be created.' => '',
'User block status has been updated.' => '', 'User block status has been updated.' => '',
'User could not be registered.' => '',
'User has been confirmed' => '', 'User has been confirmed' => '',
'User has been created' => '', 'User has been created' => '',
'User has been deleted' => '', 'User has been deleted' => '',

View File

@ -94,6 +94,8 @@ return [
'Error occurred while changing password' => '', 'Error occurred while changing password' => '',
'Error occurred while confirming user' => '', 'Error occurred while confirming user' => '',
'Error occurred while deleting user' => '', 'Error occurred while deleting user' => '',
'Error sending registration message to "{email}". Please try again later.' => '',
'Error sending welcome message to "{email}". Please try again later.' => '',
'Finish' => '', 'Finish' => '',
'Forgot password?' => '', 'Forgot password?' => '',
'Gravatar email' => '', 'Gravatar email' => '',
@ -207,7 +209,9 @@ return [
'Update rule' => '', 'Update rule' => '',
'Update user account' => '', 'Update user account' => '',
'Updated at' => '', 'Updated at' => '',
'User account could not be created.' => '',
'User block status has been updated.' => '', 'User block status has been updated.' => '',
'User could not be registered.' => '',
'User has been confirmed' => '', 'User has been confirmed' => '',
'User has been created' => '', 'User has been created' => '',
'User has been deleted' => '', 'User has been deleted' => '',

View File

@ -94,6 +94,8 @@ return [
'Error occurred while changing password' => '', 'Error occurred while changing password' => '',
'Error occurred while confirming user' => '', 'Error occurred while confirming user' => '',
'Error occurred while deleting user' => '', 'Error occurred while deleting user' => '',
'Error sending registration message to "{email}". Please try again later.' => '',
'Error sending welcome message to "{email}". Please try again later.' => '',
'Finish' => '', 'Finish' => '',
'Forgot password?' => '', 'Forgot password?' => '',
'Gravatar email' => '', 'Gravatar email' => '',
@ -207,7 +209,9 @@ return [
'Update rule' => '', 'Update rule' => '',
'Update user account' => '', 'Update user account' => '',
'Updated at' => '', 'Updated at' => '',
'User account could not be created.' => '',
'User block status has been updated.' => '', 'User block status has been updated.' => '',
'User could not be registered.' => '',
'User has been confirmed' => '', 'User has been confirmed' => '',
'User has been created' => '', 'User has been created' => '',
'User has been deleted' => '', 'User has been deleted' => '',

View File

@ -35,6 +35,8 @@ return [
'Disable Two-Factor Auth' => '', 'Disable Two-Factor Auth' => '',
'Enable' => '', 'Enable' => '',
'Enable Two-factor auth' => '', 'Enable Two-factor auth' => '',
'Error sending registration message to "{email}". Please try again later.' => '',
'Error sending welcome message to "{email}". Please try again later.' => '',
'Impersonate this user' => '', 'Impersonate this user' => '',
'Invalid two-factor code' => '', 'Invalid two-factor code' => '',
'Last login' => '', 'Last login' => '',
@ -67,6 +69,8 @@ return [
'Unable to update authorization rule.' => '', 'Unable to update authorization rule.' => '',
'Update rule' => '', 'Update rule' => '',
'Updated at' => '', 'Updated at' => '',
'User account could not be created.' => '',
'User could not be registered.' => '',
'User not found.' => '', 'User not found.' => '',
'Verification failed. Please, enter new code.' => '', 'Verification failed. Please, enter new code.' => '',
'We couldn\'t re-send the mail to confirm your address. Please, verify is the correct email or if it has been confirmed already.' => '', 'We couldn\'t re-send the mail to confirm your address. Please, verify is the correct email or if it has been confirmed already.' => '',

View File

@ -17,9 +17,10 @@
* NOTE: this file must be saved in UTF-8 encoding. * NOTE: this file must be saved in UTF-8 encoding.
*/ */
return [ return [
'Are you sure you wish to send a password recovery email to this user?' => 'Estás seguro de querer enviar un email de recuperación de contraseña a este usuario?', 'Error sending registration message to "{email}". Please try again later.' => '',
'Send password recovery email' => 'Enviar email de recuperación de contraseña', 'Error sending welcome message to "{email}". Please try again later.' => '',
'Unable to send recovery message to the user' => 'Ha sido imposible enviar el email de recuperación de contraseña', 'User account could not be created.' => '',
'User could not be registered.' => '',
'(not set)' => '(sin establecer)', '(not set)' => '(sin establecer)',
'A confirmation message has been sent to your new email address' => 'Se ha enviado un mensaje de confirmación a tu nueva dirección de correo electrónico', 'A confirmation message has been sent to your new email address' => 'Se ha enviado un mensaje de confirmación a tu nueva dirección de correo electrónico',
'A message has been sent to your email address. It contains a confirmation link that you must click to complete registration.' => 'Un mensaje ha sido enviado a tu dirección de correo electrónico. Contiene un vínculo de confirmación que tienes que seguir para completar el registro.', 'A message has been sent to your email address. It contains a confirmation link that you must click to complete registration.' => 'Un mensaje ha sido enviado a tu dirección de correo electrónico. Contiene un vínculo de confirmación que tienes que seguir para completar el registro.',
@ -38,6 +39,7 @@ return [
'Are you sure you want to delete this user?' => '¿Estas seguro de querer eliminar este usuario?', 'Are you sure you want to delete this user?' => '¿Estas seguro de querer eliminar este usuario?',
'Are you sure you want to switch to this user for the rest of this Session?' => 'Estás seguro que quieres intercambiarte por este usuario para el resto de esta sesión?', 'Are you sure you want to switch to this user for the rest of this Session?' => 'Estás seguro que quieres intercambiarte por este usuario para el resto de esta sesión?',
'Are you sure you want to unblock this user?' => '¿Estas seguro de querer desbloquear este usuario?', 'Are you sure you want to unblock this user?' => '¿Estas seguro de querer desbloquear este usuario?',
'Are you sure you wish to send a password recovery email to this user?' => 'Estás seguro de querer enviar un email de recuperación de contraseña a este usuario?',
'Are you sure? Deleted user can not be restored' => '¿Estas seguro? Los usuarios eliminados no se pueden restaurar', 'Are you sure? Deleted user can not be restored' => '¿Estas seguro? Los usuarios eliminados no se pueden restaurar',
'Are you sure? There is no going back' => '¿Estás seguro? No se podrá volver atrás', 'Are you sure? There is no going back' => '¿Estás seguro? No se podrá volver atrás',
'Assignments' => 'Asignaciones', 'Assignments' => 'Asignaciones',
@ -164,6 +166,7 @@ return [
'Rules' => 'Reglas', 'Rules' => 'Reglas',
'Save' => 'Guardar', 'Save' => 'Guardar',
'Scan the QrCode with Google Authenticator App, then insert its temporary code on the box and submit.' => 'Escanee el QrCode con la aplicación Google Authenticator, luego inserte su código temporal en el campo de texto y envíe.', 'Scan the QrCode with Google Authenticator App, then insert its temporary code on the box and submit.' => 'Escanee el QrCode con la aplicación Google Authenticator, luego inserte su código temporal en el campo de texto y envíe.',
'Send password recovery email' => 'Enviar email de recuperación de contraseña',
'Sign in' => 'Iniciar sesión', 'Sign in' => 'Iniciar sesión',
'Sign up' => 'Registrarse', 'Sign up' => 'Registrarse',
'Something went wrong' => 'Algo salió mal', 'Something went wrong' => 'Algo salió mal',
@ -195,6 +198,7 @@ return [
'Unable to disable two-factor authorization.' => 'Ha sido imposible inhabilitar al autenticación de dos factores.', 'Unable to disable two-factor authorization.' => 'Ha sido imposible inhabilitar al autenticación de dos factores.',
'Unable to remove authorization item.' => 'No se ha podido eliminar el elemento de autorización.', 'Unable to remove authorization item.' => 'No se ha podido eliminar el elemento de autorización.',
'Unable to send confirmation link' => 'No se ha podido enviar el enlace de confirmación', 'Unable to send confirmation link' => 'No se ha podido enviar el enlace de confirmación',
'Unable to send recovery message to the user' => 'Ha sido imposible enviar el email de recuperación de contraseña',
'Unable to update authorization item.' => 'No se ha podido actualizar el elemento de autorización.', 'Unable to update authorization item.' => 'No se ha podido actualizar el elemento de autorización.',
'Unable to update authorization rule.' => 'Ha sido imposible actualizar la regla de autencicación.', 'Unable to update authorization rule.' => 'Ha sido imposible actualizar la regla de autencicación.',
'Unable to update block status.' => 'No se ha podido actualizar el estado de bloqueo.', 'Unable to update block status.' => 'No se ha podido actualizar el estado de bloqueo.',

View File

@ -94,6 +94,8 @@ return [
'Error occurred while changing password' => '', 'Error occurred while changing password' => '',
'Error occurred while confirming user' => '', 'Error occurred while confirming user' => '',
'Error occurred while deleting user' => '', 'Error occurred while deleting user' => '',
'Error sending registration message to "{email}". Please try again later.' => '',
'Error sending welcome message to "{email}". Please try again later.' => '',
'Finish' => '', 'Finish' => '',
'Forgot password?' => '', 'Forgot password?' => '',
'Gravatar email' => '', 'Gravatar email' => '',
@ -207,7 +209,9 @@ return [
'Update rule' => '', 'Update rule' => '',
'Update user account' => '', 'Update user account' => '',
'Updated at' => '', 'Updated at' => '',
'User account could not be created.' => '',
'User block status has been updated.' => '', 'User block status has been updated.' => '',
'User could not be registered.' => '',
'User has been confirmed' => '', 'User has been confirmed' => '',
'User has been created' => '', 'User has been created' => '',
'User has been deleted' => '', 'User has been deleted' => '',

View File

@ -94,6 +94,8 @@ return [
'Error occurred while changing password' => '', 'Error occurred while changing password' => '',
'Error occurred while confirming user' => '', 'Error occurred while confirming user' => '',
'Error occurred while deleting user' => '', 'Error occurred while deleting user' => '',
'Error sending registration message to "{email}". Please try again later.' => '',
'Error sending welcome message to "{email}". Please try again later.' => '',
'Finish' => '', 'Finish' => '',
'Forgot password?' => '', 'Forgot password?' => '',
'Gravatar email' => '', 'Gravatar email' => '',
@ -207,7 +209,9 @@ return [
'Update rule' => '', 'Update rule' => '',
'Update user account' => '', 'Update user account' => '',
'Updated at' => '', 'Updated at' => '',
'User account could not be created.' => '',
'User block status has been updated.' => '', 'User block status has been updated.' => '',
'User could not be registered.' => '',
'User has been confirmed' => '', 'User has been confirmed' => '',
'User has been created' => '', 'User has been created' => '',
'User has been deleted' => '', 'User has been deleted' => '',

View File

@ -94,6 +94,8 @@ return [
'Error occurred while changing password' => '', 'Error occurred while changing password' => '',
'Error occurred while confirming user' => '', 'Error occurred while confirming user' => '',
'Error occurred while deleting user' => '', 'Error occurred while deleting user' => '',
'Error sending registration message to "{email}". Please try again later.' => '',
'Error sending welcome message to "{email}". Please try again later.' => '',
'Finish' => '', 'Finish' => '',
'Forgot password?' => '', 'Forgot password?' => '',
'Gravatar email' => '', 'Gravatar email' => '',
@ -207,7 +209,9 @@ return [
'Update rule' => '', 'Update rule' => '',
'Update user account' => '', 'Update user account' => '',
'Updated at' => '', 'Updated at' => '',
'User account could not be created.' => '',
'User block status has been updated.' => '', 'User block status has been updated.' => '',
'User could not be registered.' => '',
'User has been confirmed' => '', 'User has been confirmed' => '',
'User has been created' => '', 'User has been created' => '',
'User has been deleted' => '', 'User has been deleted' => '',

View File

@ -94,6 +94,8 @@ return [
'Error occurred while changing password' => '', 'Error occurred while changing password' => '',
'Error occurred while confirming user' => '', 'Error occurred while confirming user' => '',
'Error occurred while deleting user' => '', 'Error occurred while deleting user' => '',
'Error sending registration message to "{email}". Please try again later.' => '',
'Error sending welcome message to "{email}". Please try again later.' => '',
'Finish' => '', 'Finish' => '',
'Forgot password?' => '', 'Forgot password?' => '',
'Gravatar email' => '', 'Gravatar email' => '',
@ -207,7 +209,9 @@ return [
'Update rule' => '', 'Update rule' => '',
'Update user account' => '', 'Update user account' => '',
'Updated at' => '', 'Updated at' => '',
'User account could not be created.' => '',
'User block status has been updated.' => '', 'User block status has been updated.' => '',
'User could not be registered.' => '',
'User has been confirmed' => '', 'User has been confirmed' => '',
'User has been created' => '', 'User has been created' => '',
'User has been deleted' => '', 'User has been deleted' => '',

View File

@ -27,6 +27,8 @@ return [
'Disable Two-Factor Auth' => '', 'Disable Two-Factor Auth' => '',
'Enable' => '', 'Enable' => '',
'Enable Two-factor auth' => '', 'Enable Two-factor auth' => '',
'Error sending registration message to "{email}". Please try again later.' => '',
'Error sending welcome message to "{email}". Please try again later.' => '',
'Invalid two-factor code' => '', 'Invalid two-factor code' => '',
'Last login' => '', 'Last login' => '',
'Never' => '', 'Never' => '',
@ -47,6 +49,8 @@ return [
'Two-factor code' => '', 'Two-factor code' => '',
'Unable to disable two-factor authorization.' => '', 'Unable to disable two-factor authorization.' => '',
'Unable to send recovery message to the user' => '', 'Unable to send recovery message to the user' => '',
'User account could not be created.' => '',
'User could not be registered.' => '',
'User not found.' => '', 'User not found.' => '',
'Verification failed. Please, enter new code.' => '', 'Verification failed. Please, enter new code.' => '',
'We couldn\'t re-send the mail to confirm your address. Please, verify is the correct email or if it has been confirmed already.' => '', 'We couldn\'t re-send the mail to confirm your address. Please, verify is the correct email or if it has been confirmed already.' => '',

View File

@ -27,6 +27,8 @@ return [
'Disable Two-Factor Auth' => '', 'Disable Two-Factor Auth' => '',
'Enable' => '', 'Enable' => '',
'Enable Two-factor auth' => '', 'Enable Two-factor auth' => '',
'Error sending registration message to "{email}". Please try again later.' => '',
'Error sending welcome message to "{email}". Please try again later.' => '',
'Invalid two-factor code' => '', 'Invalid two-factor code' => '',
'Last login' => '', 'Last login' => '',
'Never' => '', 'Never' => '',
@ -47,6 +49,8 @@ return [
'Two-factor code' => '', 'Two-factor code' => '',
'Unable to disable two-factor authorization.' => '', 'Unable to disable two-factor authorization.' => '',
'Unable to send recovery message to the user' => '', 'Unable to send recovery message to the user' => '',
'User account could not be created.' => '',
'User could not be registered.' => '',
'User not found.' => '', 'User not found.' => '',
'Verification failed. Please, enter new code.' => '', 'Verification failed. Please, enter new code.' => '',
'We couldn\'t re-send the mail to confirm your address. Please, verify is the correct email or if it has been confirmed already.' => '', 'We couldn\'t re-send the mail to confirm your address. Please, verify is the correct email or if it has been confirmed already.' => '',

View File

@ -94,6 +94,8 @@ return [
'Error occurred while changing password' => '', 'Error occurred while changing password' => '',
'Error occurred while confirming user' => '', 'Error occurred while confirming user' => '',
'Error occurred while deleting user' => '', 'Error occurred while deleting user' => '',
'Error sending registration message to "{email}". Please try again later.' => '',
'Error sending welcome message to "{email}". Please try again later.' => '',
'Finish' => '', 'Finish' => '',
'Forgot password?' => '', 'Forgot password?' => '',
'Gravatar email' => '', 'Gravatar email' => '',
@ -207,7 +209,9 @@ return [
'Update rule' => '', 'Update rule' => '',
'Update user account' => '', 'Update user account' => '',
'Updated at' => '', 'Updated at' => '',
'User account could not be created.' => '',
'User block status has been updated.' => '', 'User block status has been updated.' => '',
'User could not be registered.' => '',
'User has been confirmed' => '', 'User has been confirmed' => '',
'User has been created' => '', 'User has been created' => '',
'User has been deleted' => '', 'User has been deleted' => '',

View File

@ -94,6 +94,8 @@ return [
'Error occurred while changing password' => '', 'Error occurred while changing password' => '',
'Error occurred while confirming user' => '', 'Error occurred while confirming user' => '',
'Error occurred while deleting user' => '', 'Error occurred while deleting user' => '',
'Error sending registration message to "{email}". Please try again later.' => '',
'Error sending welcome message to "{email}". Please try again later.' => '',
'Finish' => '', 'Finish' => '',
'Forgot password?' => '', 'Forgot password?' => '',
'Gravatar email' => '', 'Gravatar email' => '',
@ -207,7 +209,9 @@ return [
'Update rule' => '', 'Update rule' => '',
'Update user account' => '', 'Update user account' => '',
'Updated at' => '', 'Updated at' => '',
'User account could not be created.' => '',
'User block status has been updated.' => '', 'User block status has been updated.' => '',
'User could not be registered.' => '',
'User has been confirmed' => '', 'User has been confirmed' => '',
'User has been created' => '', 'User has been created' => '',
'User has been deleted' => '', 'User has been deleted' => '',

View File

@ -94,6 +94,8 @@ return [
'Error occurred while changing password' => '', 'Error occurred while changing password' => '',
'Error occurred while confirming user' => '', 'Error occurred while confirming user' => '',
'Error occurred while deleting user' => '', 'Error occurred while deleting user' => '',
'Error sending registration message to "{email}". Please try again later.' => '',
'Error sending welcome message to "{email}". Please try again later.' => '',
'Finish' => '', 'Finish' => '',
'Forgot password?' => '', 'Forgot password?' => '',
'Gravatar email' => '', 'Gravatar email' => '',
@ -207,7 +209,9 @@ return [
'Update rule' => '', 'Update rule' => '',
'Update user account' => '', 'Update user account' => '',
'Updated at' => '', 'Updated at' => '',
'User account could not be created.' => '',
'User block status has been updated.' => '', 'User block status has been updated.' => '',
'User could not be registered.' => '',
'User has been confirmed' => '', 'User has been confirmed' => '',
'User has been created' => '', 'User has been created' => '',
'User has been deleted' => '', 'User has been deleted' => '',

View File

@ -19,6 +19,8 @@
return [ return [
'Are you sure you wish to send a password recovery email to this user?' => '', 'Are you sure you wish to send a password recovery email to this user?' => '',
'Cannot assign role "{0}" as the AuthManager is not configured on your console application.' => '', 'Cannot assign role "{0}" as the AuthManager is not configured on your console application.' => '',
'Error sending registration message to "{email}". Please try again later.' => '',
'Error sending welcome message to "{email}". Please try again later.' => '',
'Required "key" cannot be empty.' => '', 'Required "key" cannot be empty.' => '',
'Required "secret" cannot be empty.' => '', 'Required "secret" cannot be empty.' => '',
'Role "{0}" not found. Creating it.' => '', 'Role "{0}" not found. Creating it.' => '',
@ -26,6 +28,8 @@ return [
'The "recaptcha" component must be configured.' => '', 'The "recaptcha" component must be configured.' => '',
'The verification code is incorrect.' => '', 'The verification code is incorrect.' => '',
'Unable to send recovery message to the user' => '', 'Unable to send recovery message to the user' => '',
'User account could not be created.' => '',
'User could not be registered.' => '',
'{0} cannot be blank.' => '', '{0} cannot be blank.' => '',
'(not set)' => '(nie podano)', '(not set)' => '(nie podano)',
'A confirmation message has been sent to your new email address' => 'Potwierdzenie zostało wysłane na Twój nowy adres email', 'A confirmation message has been sent to your new email address' => 'Potwierdzenie zostało wysłane na Twój nowy adres email',

View File

@ -94,6 +94,8 @@ return [
'Error occurred while changing password' => '', 'Error occurred while changing password' => '',
'Error occurred while confirming user' => '', 'Error occurred while confirming user' => '',
'Error occurred while deleting user' => '', 'Error occurred while deleting user' => '',
'Error sending registration message to "{email}". Please try again later.' => '',
'Error sending welcome message to "{email}". Please try again later.' => '',
'Finish' => '', 'Finish' => '',
'Forgot password?' => '', 'Forgot password?' => '',
'Gravatar email' => '', 'Gravatar email' => '',
@ -207,7 +209,9 @@ return [
'Update rule' => '', 'Update rule' => '',
'Update user account' => '', 'Update user account' => '',
'Updated at' => '', 'Updated at' => '',
'User account could not be created.' => '',
'User block status has been updated.' => '', 'User block status has been updated.' => '',
'User could not be registered.' => '',
'User has been confirmed' => '', 'User has been confirmed' => '',
'User has been created' => '', 'User has been created' => '',
'User has been deleted' => '', 'User has been deleted' => '',

View File

@ -94,6 +94,8 @@ return [
'Error occurred while changing password' => '', 'Error occurred while changing password' => '',
'Error occurred while confirming user' => '', 'Error occurred while confirming user' => '',
'Error occurred while deleting user' => '', 'Error occurred while deleting user' => '',
'Error sending registration message to "{email}". Please try again later.' => '',
'Error sending welcome message to "{email}". Please try again later.' => '',
'Finish' => '', 'Finish' => '',
'Forgot password?' => '', 'Forgot password?' => '',
'Gravatar email' => '', 'Gravatar email' => '',
@ -207,7 +209,9 @@ return [
'Update rule' => '', 'Update rule' => '',
'Update user account' => '', 'Update user account' => '',
'Updated at' => '', 'Updated at' => '',
'User account could not be created.' => '',
'User block status has been updated.' => '', 'User block status has been updated.' => '',
'User could not be registered.' => '',
'User has been confirmed' => '', 'User has been confirmed' => '',
'User has been created' => '', 'User has been created' => '',
'User has been deleted' => '', 'User has been deleted' => '',

View File

@ -27,6 +27,8 @@ return [
'Disable Two-Factor Auth' => '', 'Disable Two-Factor Auth' => '',
'Enable' => '', 'Enable' => '',
'Enable Two-factor auth' => '', 'Enable Two-factor auth' => '',
'Error sending registration message to "{email}". Please try again later.' => '',
'Error sending welcome message to "{email}". Please try again later.' => '',
'Invalid two-factor code' => '', 'Invalid two-factor code' => '',
'Last login' => '', 'Last login' => '',
'Never' => '', 'Never' => '',
@ -47,6 +49,8 @@ return [
'Two-factor code' => '', 'Two-factor code' => '',
'Unable to disable two-factor authorization.' => '', 'Unable to disable two-factor authorization.' => '',
'Unable to send recovery message to the user' => '', 'Unable to send recovery message to the user' => '',
'User account could not be created.' => '',
'User could not be registered.' => '',
'User not found.' => '', 'User not found.' => '',
'Verification failed. Please, enter new code.' => '', 'Verification failed. Please, enter new code.' => '',
'We couldn\'t re-send the mail to confirm your address. Please, verify is the correct email or if it has been confirmed already.' => '', 'We couldn\'t re-send the mail to confirm your address. Please, verify is the correct email or if it has been confirmed already.' => '',

View File

@ -27,6 +27,8 @@ return [
'Disable Two-Factor Auth' => '', 'Disable Two-Factor Auth' => '',
'Enable' => '', 'Enable' => '',
'Enable Two-factor auth' => '', 'Enable Two-factor auth' => '',
'Error sending registration message to "{email}". Please try again later.' => '',
'Error sending welcome message to "{email}". Please try again later.' => '',
'Invalid two-factor code' => '', 'Invalid two-factor code' => '',
'Last login' => '', 'Last login' => '',
'Never' => '', 'Never' => '',
@ -47,6 +49,8 @@ return [
'Two-factor code' => '', 'Two-factor code' => '',
'Unable to disable two-factor authorization.' => '', 'Unable to disable two-factor authorization.' => '',
'Unable to send recovery message to the user' => '', 'Unable to send recovery message to the user' => '',
'User account could not be created.' => '',
'User could not be registered.' => '',
'User not found.' => '', 'User not found.' => '',
'Verification failed. Please, enter new code.' => '', 'Verification failed. Please, enter new code.' => '',
'We couldn\'t re-send the mail to confirm your address. Please, verify is the correct email or if it has been confirmed already.' => '', 'We couldn\'t re-send the mail to confirm your address. Please, verify is the correct email or if it has been confirmed already.' => '',

View File

@ -94,6 +94,8 @@ return [
'Error occurred while changing password' => '', 'Error occurred while changing password' => '',
'Error occurred while confirming user' => '', 'Error occurred while confirming user' => '',
'Error occurred while deleting user' => '', 'Error occurred while deleting user' => '',
'Error sending registration message to "{email}". Please try again later.' => '',
'Error sending welcome message to "{email}". Please try again later.' => '',
'Finish' => '', 'Finish' => '',
'Forgot password?' => '', 'Forgot password?' => '',
'Gravatar email' => '', 'Gravatar email' => '',
@ -207,7 +209,9 @@ return [
'Update rule' => '', 'Update rule' => '',
'Update user account' => '', 'Update user account' => '',
'Updated at' => '', 'Updated at' => '',
'User account could not be created.' => '',
'User block status has been updated.' => '', 'User block status has been updated.' => '',
'User could not be registered.' => '',
'User has been confirmed' => '', 'User has been confirmed' => '',
'User has been created' => '', 'User has been created' => '',
'User has been deleted' => '', 'User has been deleted' => '',

View File

@ -94,6 +94,8 @@ return [
'Error occurred while changing password' => '', 'Error occurred while changing password' => '',
'Error occurred while confirming user' => '', 'Error occurred while confirming user' => '',
'Error occurred while deleting user' => '', 'Error occurred while deleting user' => '',
'Error sending registration message to "{email}". Please try again later.' => '',
'Error sending welcome message to "{email}". Please try again later.' => '',
'Finish' => '', 'Finish' => '',
'Forgot password?' => '', 'Forgot password?' => '',
'Gravatar email' => '', 'Gravatar email' => '',
@ -207,7 +209,9 @@ return [
'Update rule' => '', 'Update rule' => '',
'Update user account' => '', 'Update user account' => '',
'Updated at' => '', 'Updated at' => '',
'User account could not be created.' => '',
'User block status has been updated.' => '', 'User block status has been updated.' => '',
'User could not be registered.' => '',
'User has been confirmed' => '', 'User has been confirmed' => '',
'User has been created' => '', 'User has been created' => '',
'User has been deleted' => '', 'User has been deleted' => '',

View File

@ -94,6 +94,8 @@ return [
'Error occurred while changing password' => '', 'Error occurred while changing password' => '',
'Error occurred while confirming user' => '', 'Error occurred while confirming user' => '',
'Error occurred while deleting user' => '', 'Error occurred while deleting user' => '',
'Error sending registration message to "{email}". Please try again later.' => '',
'Error sending welcome message to "{email}". Please try again later.' => '',
'Finish' => '', 'Finish' => '',
'Forgot password?' => '', 'Forgot password?' => '',
'Gravatar email' => '', 'Gravatar email' => '',
@ -207,7 +209,9 @@ return [
'Update rule' => '', 'Update rule' => '',
'Update user account' => '', 'Update user account' => '',
'Updated at' => '', 'Updated at' => '',
'User account could not be created.' => '',
'User block status has been updated.' => '', 'User block status has been updated.' => '',
'User could not be registered.' => '',
'User has been confirmed' => '', 'User has been confirmed' => '',
'User has been created' => '', 'User has been created' => '',
'User has been deleted' => '', 'User has been deleted' => '',

View File

@ -94,6 +94,8 @@ return [
'Error occurred while changing password' => '', 'Error occurred while changing password' => '',
'Error occurred while confirming user' => '', 'Error occurred while confirming user' => '',
'Error occurred while deleting user' => '', 'Error occurred while deleting user' => '',
'Error sending registration message to "{email}". Please try again later.' => '',
'Error sending welcome message to "{email}". Please try again later.' => '',
'Finish' => '', 'Finish' => '',
'Forgot password?' => '', 'Forgot password?' => '',
'Gravatar email' => '', 'Gravatar email' => '',
@ -207,7 +209,9 @@ return [
'Update rule' => '', 'Update rule' => '',
'Update user account' => '', 'Update user account' => '',
'Updated at' => '', 'Updated at' => '',
'User account could not be created.' => '',
'User block status has been updated.' => '', 'User block status has been updated.' => '',
'User could not be registered.' => '',
'User has been confirmed' => '', 'User has been confirmed' => '',
'User has been created' => '', 'User has been created' => '',
'User has been deleted' => '', 'User has been deleted' => '',

View File

@ -94,6 +94,8 @@ return [
'Error occurred while changing password' => '', 'Error occurred while changing password' => '',
'Error occurred while confirming user' => '', 'Error occurred while confirming user' => '',
'Error occurred while deleting user' => '', 'Error occurred while deleting user' => '',
'Error sending registration message to "{email}". Please try again later.' => '',
'Error sending welcome message to "{email}". Please try again later.' => '',
'Finish' => '', 'Finish' => '',
'Forgot password?' => '', 'Forgot password?' => '',
'Gravatar email' => '', 'Gravatar email' => '',
@ -207,7 +209,9 @@ return [
'Update rule' => '', 'Update rule' => '',
'Update user account' => '', 'Update user account' => '',
'Updated at' => '', 'Updated at' => '',
'User account could not be created.' => '',
'User block status has been updated.' => '', 'User block status has been updated.' => '',
'User could not be registered.' => '',
'User has been confirmed' => '', 'User has been confirmed' => '',
'User has been created' => '', 'User has been created' => '',
'User has been deleted' => '', 'User has been deleted' => '',