X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/be517de7dc49dcf0524588f6b971e9ea9d5cd118..refs/pull/236/head:/app/Http/Controllers/UserController.php diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index 053d9ebd5..18ef1a671 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -3,6 +3,7 @@ namespace BookStack\Http\Controllers; use BookStack\Activity; +use Exception; use Illuminate\Http\Request; use Illuminate\Http\Response; @@ -56,7 +57,7 @@ class UserController extends Controller { $this->checkPermission('users-manage'); $authMethod = config('auth.method'); - $roles = $this->userRepo->getAssignableRoles(); + $roles = $this->userRepo->getAllRoles(); return view('users/create', ['authMethod' => $authMethod, 'roles' => $roles]); } @@ -100,9 +101,14 @@ class UserController extends Controller // Get avatar from gravatar and save if (!config('services.disable_services')) { - $avatar = \Images::saveUserGravatar($user); - $user->avatar()->associate($avatar); - $user->save(); + try { + $avatar = \Images::saveUserGravatar($user); + $user->avatar()->associate($avatar); + $user->save(); + } catch (Exception $e) { + \Log::error('Failed to save user gravatar image'); + } + } return redirect('/settings/users'); @@ -120,12 +126,13 @@ class UserController extends Controller return $this->currentUser->id == $id; }); - $authMethod = config('auth.method'); - $user = $this->user->findOrFail($id); + + $authMethod = ($user->system_name) ? 'system' : config('auth.method'); + $activeSocialDrivers = $socialAuthService->getActiveDrivers(); $this->setPageTitle('User Profile'); - $roles = $this->userRepo->getAssignableRoles(); + $roles = $this->userRepo->getAllRoles(); return view('users/edit', ['user' => $user, 'activeSocialDrivers' => $activeSocialDrivers, 'authMethod' => $authMethod, 'roles' => $roles]); } @@ -180,7 +187,7 @@ class UserController extends Controller /** * Show the user delete page. - * @param $id + * @param int $id * @return \Illuminate\View\View */ public function delete($id) @@ -213,6 +220,11 @@ class UserController extends Controller return redirect($user->getEditUrl()); } + if ($user->system_name === 'public') { + session()->flash('error', 'You cannot delete the guest user'); + return redirect($user->getEditUrl()); + } + $this->userRepo->destroy($user); session()->flash('success', 'User successfully removed');