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;
$this->checkPermission('users-manage');
$authMethod = config('auth.method');
$roles = $this->userRepo->getAllRoles();
+ $this->setPageTitle(trans('settings.users_add_new'));
return view('users.create', ['authMethod' => $authMethod, 'roles' => $roles]);
}
{
$this->checkPermission('users-manage');
$validationRules = [
- 'name' => ['required'],
- 'email' => ['required', 'email', 'unique:users,email'],
+ 'name' => ['required'],
+ 'email' => ['required', 'email', 'unique:users,email'],
+ 'setting' => ['array'],
];
$authMethod = config('auth.method');
}
$user->refreshSlug();
- $user->save();
- if ($sendInvite) {
- $this->inviteService->sendInvitation($user);
- }
+ DB::transaction(function () use ($user, $sendInvite, $request) {
+ $user->save();
- if ($request->filled('roles')) {
- $roles = $request->get('roles');
- $this->userRepo->setUserRoles($user, $roles);
- }
+ // Save user-specific settings
+ if ($request->filled('setting')) {
+ foreach ($request->get('setting') as $key => $value) {
+ setting()->putUser($user, $key, $value);
+ }
+ }
+
+ if ($sendInvite) {
+ $this->inviteService->sendInvitation($user);
+ }
+
+ if ($request->filled('roles')) {
+ $roles = $request->get('roles');
+ $this->userRepo->setUserRoles($user, $roles);
+ }
- $this->userRepo->downloadAndAssignUserAvatar($user);
+ $this->userRepo->downloadAndAssignUserAvatar($user);
- $this->logActivity(ActivityType::USER_CREATE, $user);
+ $this->logActivity(ActivityType::USER_CREATE, $user);
+ });
return redirect('/settings/users');
}
$user->external_auth_id = $request->get('external_auth_id');
}
- // Save an user-specific settings
+ // Save user-specific settings
if ($request->filled('setting')) {
foreach ($request->get('setting') as $key => $value) {
setting()->putUser($user, $key, $value);