X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/2aace1670478b8f2c25cbd95bb4edba004e8ccbb..refs/pull/3179/head:/app/Http/Controllers/UserController.php diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index a78f921f2..4085e151c 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -12,6 +12,7 @@ use BookStack\Exceptions\UserUpdateException; use BookStack\Uploads\ImageRepo; use Exception; use Illuminate\Http\Request; +use Illuminate\Support\Facades\DB; use Illuminate\Support\Str; use Illuminate\Validation\Rules\Password; use Illuminate\Validation\ValidationException; @@ -99,20 +100,23 @@ class UserController extends Controller } $user->refreshSlug(); - $user->save(); - - if ($sendInvite) { - $this->inviteService->sendInvitation($user); - } - if ($request->filled('roles')) { - $roles = $request->get('roles'); - $this->userRepo->setUserRoles($user, $roles); - } + DB::transaction(function () use ($user, $sendInvite, $request) { + $user->save(); - $this->userRepo->downloadAndAssignUserAvatar($user); + if ($sendInvite) { + $this->inviteService->sendInvitation($user); + } - $this->logActivity(ActivityType::USER_CREATE, $user); + if ($request->filled('roles')) { + $roles = $request->get('roles'); + $this->userRepo->setUserRoles($user, $roles); + } + + $this->userRepo->downloadAndAssignUserAvatar($user); + + $this->logActivity(ActivityType::USER_CREATE, $user); + }); return redirect('/settings/users'); }