diff --git a/CHANGELOG.md b/CHANGELOG.md index 1f56dd1..549ae3d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ - Enh: Changed `View::render()` calls in views to use absolute paths (ajmedway) - Fix #169: Fix bug in ReCaptchaComponent (BuTaMuH) - Fix #168: Fix spelling in russian language (EvgenyOrekhov) + - Fix #195: UserCreateService: check if we're from web before setting flash message (maxxer) ## 1.1.4 - February 19, 2018 - Enh: Check enableEmailConfirmation on registration (faenir) diff --git a/src/User/Service/UserCreateService.php b/src/User/Service/UserCreateService.php index 3705b33..2800460 100644 --- a/src/User/Service/UserCreateService.php +++ b/src/User/Service/UserCreateService.php @@ -16,6 +16,7 @@ use Da\User\Event\UserEvent; use Da\User\Helper\SecurityHelper; use Da\User\Model\User; use Da\User\Traits\MailAwareTrait; +use Da\User\Traits\ModuleAwareTrait; use Exception; use Yii; use yii\base\InvalidCallException; @@ -23,6 +24,7 @@ use yii\base\InvalidCallException; class UserCreateService implements ServiceInterface { use MailAwareTrait; + use ModuleAwareTrait; protected $model; protected $securityHelper; @@ -67,14 +69,22 @@ class UserCreateService implements ServiceInterface $model->trigger(UserEvent::EVENT_AFTER_CREATE, $event); if (!$this->sendMail($model)) { - Yii::$app->session->setFlash( - 'warning', - Yii::t( - 'usuario', - 'Error sending welcome message to "{email}". Please try again later.', - ['email' => $model->email] - ) + $error_msg = Yii::t( + 'usuario', + 'Error sending welcome message to "{email}". Please try again later.', + ['email' => $model->email] ); + // from web display a flash message (if enabled) + if($this->getModule()->enableFlashMessages == TRUE && is_a(Yii::$app, yii\web\Application::class)) { + Yii::$app->session->setFlash( + 'warning', + $error_msg + ); + } + // if we're from console add an error to the model in order to return an error message + if(is_a(Yii::$app, yii\console\Application::class)) { + $model->addError("username", $error_msg); + } $transaction->rollBack(); return false; }