session()->has('errors')) { $errors = $request->session()->get('errors')->getBag('default')->getMessages(); } $inertiaProvider = new InertiaProvider('UserManagement/Registration', ['errors' => $errors, 'appName' => app('tenant')->name]); return $inertiaProvider->render(); } public function doRegistration(Request $request) : JsonResponse { $user = $this->users->findByUsername($request->get('email')); if ($user !== null) { return response()->json([ 'status' => 'error', 'message' => 'Dieser Account existiert bereits.' ]); } $email = EmailAddress::fromString($request->get('email')); $userRoleMain = UserRole::USER_ROLE_USER; $userRoleLocalGroup = UserRole::USER_ROLE_USER; $localGroup = app('tenant')->slug === 'lv' ? $request->get('localGroup') : app('tenant')->slug; $registrationRequest = new UserRegistrationRequest( $request->get('firstname'), $request->get('lastname'), $request->get('nickname'), $email, $userRoleMain, $userRoleLocalGroup, $localGroup ); $registrationCommand = new UserRegistrationCommand($registrationRequest); $result = $registrationCommand->execute(); if (!$result->success) { return response()->json([ 'status' => 'error', 'message' => 'Beim Erstellen des Accounts ist ein Fehler aufgetreten.' ]); } return response()->json([ 'status' => 'success', 'message' => 'Registrierung erfolgreich! Bitte prüfe nun dein E-Mail-Postfach' ]); } }