]> BookStack Code Mirror - bookstack/commitdiff
Cleaned up gravatar image importing
authorDan Brown <redacted>
Mon, 14 Dec 2015 20:13:32 +0000 (20:13 +0000)
committerDan Brown <redacted>
Mon, 14 Dec 2015 20:13:32 +0000 (20:13 +0000)
app/Http/Controllers/UserController.php
app/Image.php
app/Services/ImageService.php
app/User.php
phpunit.xml

index c3f08a2f85109d208eec055210a3eb8d929baa12..46b6bf22ec4abb27cc2017100a1e519d789ee9a5 100644 (file)
@@ -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');
index 651c618e6203b5dfd3cfd9b63286824b178de580..3ac084d8fab08d41a637aa9ba6747c495c2fd037 100644 (file)
@@ -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);
     }
 }
index 57293209c5f5969842009de26c0764812b6d5049..3f309410318403a9a937228b7be03332e3b9ca1a 100644 (file)
@@ -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;
     }
 
index bf2b14ac409ec1cee2cc7db647c009b71f0d154c..12b502adc7b62ac54c82d8f1b032e6ae20e263ac 100644 (file)
@@ -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);
     }
 
     /**
index 0884937af13be5407195796ded8b53936cbc6f48..d86aacd0063602e4d56ec4bd22db250578469649 100644 (file)
@@ -26,5 +26,6 @@
         <env name="QUEUE_DRIVER" value="sync"/>
         <env name="DB_CONNECTION" value="mysql_testing"/>
         <env name="MAIL_PRETEND" value="true"/>
+        <env name="DISABLE_EXTERNAL_SERVICES" value="true"/>
     </php>
 </phpunit>