diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index c3f08a2f8..46b6bf22e 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -4,7 +4,7 @@ namespace BookStack\Http\Controllers; use Illuminate\Http\Request; -use Illuminate\Support\Facades\Hash; +use Illuminate\Http\Response; use BookStack\Http\Requests; use BookStack\Repos\UserRepo; use BookStack\Services\SocialAuthService; @@ -30,7 +30,6 @@ class UserController extends Controller /** * Display a listing of the users. - * * @return Response */ public function index() @@ -42,7 +41,6 @@ class UserController extends Controller /** * Show the form for creating a new user. - * * @return Response */ public function create() @@ -53,7 +51,6 @@ class UserController extends Controller /** * Store a newly created user in storage. - * * @param Request $request * @return Response */ @@ -73,13 +70,20 @@ class UserController extends Controller $user->save(); $user->attachRoleId($request->get('role')); + + // Get avatar from gravatar and save + if (!env('DISABLE_EXTERNAL_SERVICES', false)) { + $avatar = \Images::saveUserGravatar($user); + $user->avatar()->associate($avatar); + $user->save(); + } + return redirect('/users'); } /** * Show the form for editing the specified user. - * * @param int $id * @param SocialAuthService $socialAuthService * @return Response @@ -98,7 +102,6 @@ class UserController extends Controller /** * Update the specified user in storage. - * * @param Request $request * @param int $id * @return Response @@ -148,7 +151,6 @@ class UserController extends Controller /** * Remove the specified user from storage. - * * @param int $id * @return Response */ @@ -158,11 +160,13 @@ class UserController extends Controller return $this->currentUser->id == $id; }); $user = $this->userRepo->getById($id); + // Delete social accounts - if($this->userRepo->isOnlyAdmin($user)) { + if ($this->userRepo->isOnlyAdmin($user)) { session()->flash('error', 'You cannot delete the only admin'); return redirect($user->getEditUrl()); } + $user->socialAccounts()->delete(); $user->delete(); return redirect('/users'); diff --git a/app/Image.php b/app/Image.php index 651c618e6..3ac084d8f 100644 --- a/app/Image.php +++ b/app/Image.php @@ -16,11 +16,11 @@ class Image extends Model * Get a thumbnail for this image. * @param int $width * @param int $height - * @param bool|false $hardCrop + * @param bool|false $keepRatio * @return string */ - public function getThumb($width, $height, $hardCrop = false) + public function getThumb($width, $height, $keepRatio = false) { - return Images::getThumbnail($this, $width, $height, $hardCrop); + return Images::getThumbnail($this, $width, $height, $keepRatio); } } diff --git a/app/Services/ImageService.php b/app/Services/ImageService.php index 57293209c..3f3094103 100644 --- a/app/Services/ImageService.php +++ b/app/Services/ImageService.php @@ -183,15 +183,12 @@ class ImageService */ public function saveUserGravatar(User $user, $size = 500) { - if (!env('USE_GRAVATAR', false)) return false; $emailHash = md5(strtolower(trim($user->email))); $url = 'http://www.gravatar.com/avatar/' . $emailHash . '?s=' . $size . '&d=identicon'; $imageName = str_replace(' ', '-', $user->name . '-gravatar.png'); $image = $this->saveNewFromUrl($url, 'user', $imageName); $image->created_by = $user->id; $image->save(); - $user->avatar()->associate($image); - $user->save(); return $image; } diff --git a/app/User.php b/app/User.php index bf2b14ac4..12b502adc 100644 --- a/app/User.php +++ b/app/User.php @@ -146,7 +146,7 @@ class User extends Model implements AuthenticatableContract, CanResetPasswordCon public function getAvatar($size = 50) { if ($this->image_id === 0 || $this->image_id === null) return '/user_avatar.png'; - return $this->avatar->getThumb($size, $size, true); + return $this->avatar->getThumb($size, $size, false); } /** diff --git a/phpunit.xml b/phpunit.xml index 0884937af..d86aacd00 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -26,5 +26,6 @@ +