From ebc26ec741acb982583e08d6f00f921875eaea7b Mon Sep 17 00:00:00 2001 From: Diatrex Date: Thu, 17 Sep 2020 18:03:11 +0300 Subject: [PATCH] =?UTF-8?q?#1947=20puan=20mod=C3=BCl=C3=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/Events/UserActivatedByMail.php | 17 +++++++++ .../Http/Controller/RegisterController.php | 38 +++++++++++++++++++ .../Command/HandleAutomaticRegistration.php | 11 ------ .../Command/HandleEmailRegistration.php | 11 ------ .../Command/HandleManualRegistration.php | 11 ------ .../Register2/Register2FormHandler.php | 27 +++++++++---- .../src/ProfileModuleServiceProvider.php | 4 ++ 7 files changed, 79 insertions(+), 40 deletions(-) create mode 100644 addons/default/visiosoft/profile-module/src/Events/UserActivatedByMail.php create mode 100644 addons/default/visiosoft/profile-module/src/Http/Controller/RegisterController.php diff --git a/addons/default/visiosoft/profile-module/src/Events/UserActivatedByMail.php b/addons/default/visiosoft/profile-module/src/Events/UserActivatedByMail.php new file mode 100644 index 000000000..ecfe8b278 --- /dev/null +++ b/addons/default/visiosoft/profile-module/src/Events/UserActivatedByMail.php @@ -0,0 +1,17 @@ +user = $user; + } +} \ No newline at end of file diff --git a/addons/default/visiosoft/profile-module/src/Http/Controller/RegisterController.php b/addons/default/visiosoft/profile-module/src/Http/Controller/RegisterController.php new file mode 100644 index 000000000..9a7b7998d --- /dev/null +++ b/addons/default/visiosoft/profile-module/src/Http/Controller/RegisterController.php @@ -0,0 +1,38 @@ +encrypter = $encrypter; + $this->userRepository = $userRepository; + } + + public function activate() + { + if (!$this->dispatch(new HandleActivateRequest())) { + + $this->messages->error('anomaly.module.users::error.activate_user'); + + return $this->redirect->to('/'); + } + + $user = $this->userRepository->findByEmail($this->encrypter->decrypt(request()->email)); + event(new UserActivatedByMail($user)); + + $this->messages->success('anomaly.module.users::success.activate_user'); + $this->messages->success('anomaly.module.users::message.logged_in'); + + return $this->redirect->to($this->request->get('redirect', '/')); + } +} diff --git a/addons/default/visiosoft/profile-module/src/Profile/Register2/Command/HandleAutomaticRegistration.php b/addons/default/visiosoft/profile-module/src/Profile/Register2/Command/HandleAutomaticRegistration.php index 476f3f10c..0d8e05807 100644 --- a/addons/default/visiosoft/profile-module/src/Profile/Register2/Command/HandleAutomaticRegistration.php +++ b/addons/default/visiosoft/profile-module/src/Profile/Register2/Command/HandleAutomaticRegistration.php @@ -16,19 +16,8 @@ use Anomaly\UsersModule\User\UserAuthenticator; */ class HandleAutomaticRegistration { - - /** - * The form builder. - * - * @var RegisterFormBuilder - */ protected $builder; - /** - * Create a new HandleAutomaticRegistration instance. - * - * @param RegisterFormBuilder $builder - */ public function __construct(Register2FormBuilder $builder) { $this->builder = $builder; diff --git a/addons/default/visiosoft/profile-module/src/Profile/Register2/Command/HandleEmailRegistration.php b/addons/default/visiosoft/profile-module/src/Profile/Register2/Command/HandleEmailRegistration.php index 461c7df9c..7739a544a 100644 --- a/addons/default/visiosoft/profile-module/src/Profile/Register2/Command/HandleEmailRegistration.php +++ b/addons/default/visiosoft/profile-module/src/Profile/Register2/Command/HandleEmailRegistration.php @@ -7,19 +7,8 @@ use Visiosoft\ProfileModule\Profile\Register2\Register2FormBuilder; class HandleEmailRegistration { - - /** - * The form builder. - * - * @var RegisterFormBuilder - */ protected $builder; - /** - * Create a new HandleEmailRegistration instance. - * - * @param RegisterFormBuilder $builder - */ public function __construct(Register2FormBuilder $builder) { $this->builder = $builder; diff --git a/addons/default/visiosoft/profile-module/src/Profile/Register2/Command/HandleManualRegistration.php b/addons/default/visiosoft/profile-module/src/Profile/Register2/Command/HandleManualRegistration.php index 05bee3101..43a64c56e 100644 --- a/addons/default/visiosoft/profile-module/src/Profile/Register2/Command/HandleManualRegistration.php +++ b/addons/default/visiosoft/profile-module/src/Profile/Register2/Command/HandleManualRegistration.php @@ -16,19 +16,8 @@ use Illuminate\Notifications\AnonymousNotifiable; */ class HandleManualRegistration { - - /** - * The form builder. - * - * @var RegisterFormBuilder - */ protected $builder; - /** - * Create a new HandleManualRegistration instance. - * - * @param RegisterFormBuilder $builder - */ public function __construct(Register2FormBuilder $builder) { $this->builder = $builder; diff --git a/addons/default/visiosoft/profile-module/src/Profile/Register2/Register2FormHandler.php b/addons/default/visiosoft/profile-module/src/Profile/Register2/Register2FormHandler.php index 18c85ad96..13313aa75 100644 --- a/addons/default/visiosoft/profile-module/src/Profile/Register2/Register2FormHandler.php +++ b/addons/default/visiosoft/profile-module/src/Profile/Register2/Register2FormHandler.php @@ -4,10 +4,12 @@ use Anomaly\UsersModule\User\Contract\UserInterface; use Anomaly\UsersModule\User\Contract\UserRepositoryInterface; use Anomaly\UsersModule\User\Event\UserHasRegistered; use Anomaly\UsersModule\User\UserActivator; -use Illuminate\Contracts\Config\Repository; use Illuminate\Contracts\Events\Dispatcher; use Illuminate\Foundation\Bus\DispatchesJobs; use Illuminate\Support\Facades\Auth; +use Visiosoft\ProfileModule\Profile\Register2\Command\HandleAutomaticRegistration; +use Visiosoft\ProfileModule\Profile\Register2\Command\HandleEmailRegistration; +use Visiosoft\ProfileModule\Profile\Register2\Command\HandleManualRegistration; /** * Class RegisterFormHandler @@ -24,14 +26,12 @@ class Register2FormHandler /** * Handle the form. * - * @param Repository $config * @param Dispatcher $events * @param UserRepositoryInterface $users * @param Register2FormBuilder $builder * @param UserActivator $activator */ public function handle( - Repository $config, Dispatcher $events, UserRepositoryInterface $users, Register2FormBuilder $builder, @@ -42,8 +42,6 @@ class Register2FormHandler return; } - $profile_parameters = array(); - /* Create Profile in Register */ $domain = setting_value('streams::domain'); $domain = str_replace('https://', '', $domain); @@ -66,11 +64,26 @@ class Register2FormHandler /* @var UserInterface $user */ $user = $register; + $builder->setFormEntry($register); $activator->start($user); - $activator->force($user); + + $mode = config('anomaly.module.users::config.activation_mode', 'automatic'); + + switch ($mode) { + case 'automatic': + dispatch_now(new HandleAutomaticRegistration($builder)); + break; + + case 'manual': + dispatch_now(new HandleManualRegistration($builder)); + break; + + case 'email': + dispatch_now(new HandleEmailRegistration($builder)); + break; + } $events->dispatch(new UserHasRegistered($user)); - Auth::login($user); } } diff --git a/addons/default/visiosoft/profile-module/src/ProfileModuleServiceProvider.php b/addons/default/visiosoft/profile-module/src/ProfileModuleServiceProvider.php index 3a1944cd1..0f14f21ac 100644 --- a/addons/default/visiosoft/profile-module/src/ProfileModuleServiceProvider.php +++ b/addons/default/visiosoft/profile-module/src/ProfileModuleServiceProvider.php @@ -141,6 +141,10 @@ class ProfileModuleServiceProvider extends AddonServiceProvider 'uses' => 'Visiosoft\ProfileModule\Http\Controller\Admin\UsersController@exportUsers' ], + 'users/activate' => [ + 'ttl' => 0, + 'uses' => 'Visiosoft\ProfileModule\Http\Controller\RegisterController@activate', + ], // Cache links 'ajax/get-user-info' => 'Visiosoft\ProfileModule\Http\Controller\CacheController@getUserInfo',