/** * Handle the form. * * @param SettingRepositoryInterface $settings * @param RegisterFormBuilder $builder * @param UserActivator $activator * @throws \Exception */ public function handle(SettingRepositoryInterface $settings, RegisterFormBuilder $builder, UserActivator $activator) { if (!$builder->canSave()) { return; } $builder->saveForm(); // Save the new user. /* @var UserInterface $user */ $user = $builder->getFormEntry(); $activator->start($user); $mode = $settings->value('anomaly.module.users::activation_mode', 'manual'); if ($mode === 'automatic') { $this->dispatch(new HandleAutomaticRegistration($builder)); } elseif ($mode === 'manual') { $this->dispatch(new HandleManualRegistration($builder)); } elseif ($mode === 'email') { $this->dispatch(new HandleEmailRegistration($builder)); } }