/** * Save new user to database. * * @author Casper Rasmussen <*****@*****.**> * * @param \Nodes\Backend\Models\User\Validation\UserValidator $userValidator * @return \Illuminate\Http\RedirectResponse * @throws \Exception */ public function store(UserValidator $userValidator) { // Check user level if (Gate::denies('backend-admin')) { abort(403); } // Retrieve posted data $data = Request::all(); // Random a password if it's left empty if (empty($data['password'])) { $data['password'] = $data['password_confirmation'] = Str::random(8); } // Validate user if (!$userValidator->with($data)->validate()) { return redirect()->back()->withInput()->with(['error' => $userValidator->errorsBag()]); } try { // Create user $user = $this->userRepository->createUser($data); // Send a email with information if (filter_var($data['send_mail'], FILTER_VALIDATE_BOOLEAN)) { $this->userRepository->sendWelcomeMail($user, $data['password']); } return redirect()->route('nodes.backend.users')->with('success', 'User was successfully created'); } catch (Exception $e) { return redirect()->back()->withInput()->with('error', 'Could not create user'); } }