Procházet zdrojové kódy

Add check to avoid Gravatar to return same images after change in the getUserPicture() method in previous commit

Yannick Warnier před 8 roky
rodič
revize
c33c7c5429
2 změnil soubory, kde provedl 11 přidání a 3 odebrání
  1. 3 3
      main/inc/lib/api.lib.php
  2. 8 0
      main/inc/lib/usermanager.lib.php

+ 3 - 3
main/inc/lib/api.lib.php

@@ -1353,9 +1353,9 @@ function _api_format_user($user, $add_password = false)
     $result['user_id'] = $result['id'] = $user_id;
 
     // Getting user avatar.
-    $originalFile = UserManager::getUserPicture($user_id, USER_IMAGE_SIZE_ORIGINAL, $result);
-    $smallFile = UserManager::getUserPicture($user_id, USER_IMAGE_SIZE_SMALL, $result);
-    $mediumFile = UserManager::getUserPicture($user_id, USER_IMAGE_SIZE_MEDIUM, $result);
+    $originalFile = UserManager::getUserPicture($user_id, USER_IMAGE_SIZE_ORIGINAL, null, $result);
+    $smallFile = UserManager::getUserPicture($user_id, USER_IMAGE_SIZE_SMALL, null, $result);
+    $mediumFile = UserManager::getUserPicture($user_id, USER_IMAGE_SIZE_MEDIUM, null, $result);
 
     $result['avatar'] = $originalFile;
     $avatarString = explode('?', $originalFile);

+ 8 - 0
main/inc/lib/usermanager.lib.php

@@ -1554,6 +1554,14 @@ class UserManager
         $addRandomId = true,
         $userInfo = []
     ) {
+        // Make sure userInfo is defined. Otherwise, define it!
+        if (empty($userInfo) || !is_array($userInfo) || count($userInfo) == 0) {
+            if (empty($user_id)) {
+                return '';
+            } else {
+                $userInfo = api_get_user_info($user_id);
+            }
+        }
         $imageWebPath = self::get_user_picture_path_by_id($user_id, 'web', $userInfo);
         $pictureWebFile = $imageWebPath['file'];
         $pictureWebDir = $imageWebPath['dir'];