From 9607e8d7751f2f78f6e55f4d38c1a35f89c25ab5 Mon Sep 17 00:00:00 2001 From: Antonio Ramirez Date: Sun, 15 Oct 2017 15:46:20 +0200 Subject: [PATCH] Close #68 fix documentation + events raised on User model --- CHANGELOG.md | 1 + docs/events/form-events.md | 2 ++ docs/events/user-events.md | 2 -- src/User/Controller/RegistrationController.php | 4 ++-- src/User/Event/FormEvent.php | 2 ++ src/User/Service/UserRegisterService.php | 7 +++++-- 6 files changed, 12 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 57e45f2..be485ff 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ # CHANGELOG ## 1.0.14 - Work in progress +- Fix #68: Fix user events documentation and events raised from User model (tonydspaniard) - Fix #69: Log level when user can't register should be L_ERROR (tonydspaniard) - Enh #81: Update `AccessRuleFilter` to evaluate `roleParams` (kartik-v) - Enh #56: Added two factor authentication (tonydspaniard) diff --git a/docs/events/form-events.md b/docs/events/form-events.md index b711ec1..1df2988 100644 --- a/docs/events/form-events.md +++ b/docs/events/form-events.md @@ -14,6 +14,8 @@ On Controllers - **RegistrationController** - **FormEvent::EVENT_BEFORE_RESEND**: Occurs before a confirmation message is being sent via email - **FormEvent::EVENT_AFTER_RESEND**: Occurs after a confirmation message is being sent via email + - **FormEvent::EVENT_BEFORE_REGISTER**: Occurs before user registration + - **FormEvent::EVENT_AFTER_REGISTER**: Occurs after user registration - **SecurityController** diff --git a/docs/events/user-events.md b/docs/events/user-events.md index 6e079e8..6a8931f 100644 --- a/docs/events/user-events.md +++ b/docs/events/user-events.md @@ -22,8 +22,6 @@ On Controllers - **RegistrationController** - - **UserEvent::EVENT_BEFORE_REGISTER**: Occurs before user registration - - **UserEvent::EVENT_AFTER_REGISTER**: Occurs after user registration - **UserEvent::EVENT_BEFORE_CONFIRMATION** - **UserEvent::EVENT_AFTER_CONFIRMATION** diff --git a/src/User/Controller/RegistrationController.php b/src/User/Controller/RegistrationController.php index 8e5c22c..53899ef 100644 --- a/src/User/Controller/RegistrationController.php +++ b/src/User/Controller/RegistrationController.php @@ -99,7 +99,7 @@ class RegistrationController extends Controller $this->make(AjaxRequestModelValidator::class, [$form])->validate(); if ($form->load(Yii::$app->request->post()) && $form->validate()) { - $this->trigger(UserEvent::EVENT_BEFORE_REGISTER, $event); + $this->trigger(FormEvent::EVENT_BEFORE_REGISTER, $event); /** @var User $user */ $user = $this->make(User::class, [], $form->attributes); $user->setScenario('register'); @@ -113,7 +113,7 @@ class RegistrationController extends Controller 'Your account has been created and a message with further instructions has been sent to your email' ) ); - $this->trigger(UserEvent::EVENT_AFTER_REGISTER, $event); + $this->trigger(FormEvent::EVENT_AFTER_REGISTER, $event); return $this->render( '/shared/message', diff --git a/src/User/Event/FormEvent.php b/src/User/Event/FormEvent.php index 34d2fd8..ccefc16 100644 --- a/src/User/Event/FormEvent.php +++ b/src/User/Event/FormEvent.php @@ -22,6 +22,8 @@ class FormEvent extends Event const EVENT_AFTER_RESEND = 'afterResend'; const EVENT_BEFORE_LOGIN = 'beforeLogin'; const EVENT_AFTER_LOGIN = 'afterLogin'; + const EVENT_BEFORE_REGISTER = 'beforeRegister'; + const EVENT_AFTER_REGISTER = 'afterRegister'; protected $form; diff --git a/src/User/Service/UserRegisterService.php b/src/User/Service/UserRegisterService.php index 1467f70..1954ac2 100644 --- a/src/User/Service/UserRegisterService.php +++ b/src/User/Service/UserRegisterService.php @@ -16,6 +16,7 @@ use Da\User\Event\UserEvent; use Da\User\Factory\TokenFactory; use Da\User\Helper\SecurityHelper; use Da\User\Model\User; +use Da\User\Traits\ContainerAwareTrait; use Da\User\Traits\ModuleAwareTrait; use Exception; use yii\base\InvalidCallException; @@ -24,6 +25,7 @@ use yii\log\Logger; class UserRegisterService implements ServiceInterface { use ModuleAwareTrait; + use ContainerAwareTrait; protected $model; protected $securityHelper; @@ -54,7 +56,8 @@ class UserRegisterService implements ServiceInterface ? $this->securityHelper->generatePassword(8) : $model->password; - $model->trigger(UserEvent::EVENT_BEFORE_REGISTER); + $userEvent = $this->make(UserEvent::class, [$model]); + $model->trigger(UserEvent::EVENT_BEFORE_REGISTER, $userEvent); if (!$model->save()) { $transaction->rollBack(); @@ -71,7 +74,7 @@ class UserRegisterService implements ServiceInterface } $this->mailService->run(); - $model->trigger(UserEvent::EVENT_AFTER_REGISTER); + $model->trigger(UserEvent::EVENT_AFTER_REGISTER, $userEvent); $transaction->commit();