]> git.mxchange.org Git - friendica.git/commitdiff
Switch uid with nickname in user picture URLs
authorHypolite Petovan <hypolite@mrpetovan.com>
Sat, 2 Oct 2021 22:42:14 +0000 (18:42 -0400)
committerHypolite Petovan <hypolite@mrpetovan.com>
Sat, 2 Oct 2021 23:06:59 +0000 (19:06 -0400)
- Keep previous URL scheme fallback as remote contact avatar URLs pointing to local user avatar URLs need to update

src/Model/User.php
src/Module/Photo.php
static/routes.config.php

index 3355695f24bc985915c8c721568bed961d6824b0..8f69aa87c8fe925b02279049e8eacf4bba8162b3 100644 (file)
@@ -879,7 +879,7 @@ class User
                        }
                }
 
-               return $url . $user['uid'] . image_type_to_extension($imagetype) . ($updated ? '?ts=' . strtotime($updated) : '');
+               return $url . $user['nickname'] . image_type_to_extension($imagetype) . ($updated ? '?ts=' . strtotime($updated) : '');
        }
 
        /**
index 406bbb2f30dda7d8392087fb309dfec64e55d2fc..32403a5d1a8dc133cdb1f11769be4b5f7328a10d 100644 (file)
@@ -75,16 +75,31 @@ class Photo extends BaseModule
                $square_resize = true;
                $scale = null;
                $stamp = microtime(true);
-               if (!empty($parameters['customsize'])) {
-                       $customsize = intval($parameters['customsize']);
-                       $uid = pathinfo($parameters['name'], PATHINFO_FILENAME);
-                       $photo = self::getAvatar($uid, $parameters['type'], $customsize);
-                       $square_resize = !in_array($parameters['type'], ['media', 'preview']);
-               } elseif (!empty($parameters['type'])) {
-                       $uid = pathinfo($parameters['name'], PATHINFO_FILENAME);
-                       $photo = self::getAvatar($uid, $parameters['type'], Proxy::PIXEL_SMALL);
-               } elseif (!empty($parameters['name'])) {
-                       $photoid = pathinfo($parameters['name'], PATHINFO_FILENAME);
+               // User avatar
+               if (!empty($parameters['type'])) {
+                       if (!empty($parameters['customsize'])) {
+                               $customsize = intval($parameters['customsize']);
+                               $square_resize = !in_array($parameters['type'], ['media', 'preview']);
+                       }
+
+                       if (!empty($parameters['nickname_ext'])) {
+                               $nickname = pathinfo($parameters['nickname_ext'], PATHINFO_FILENAME);
+                               $user = User::getByNickname($nickname, ['uid']);
+                               if (empty($user)) {
+                                       throw new HTTPException\NotFoundException();
+                               }
+
+                               $uid = $user['uid'];
+                       }
+
+                       // User Id Fallback, to remove after version 2021.12
+                       if (!empty($parameters['uid_ext'])) {
+                               $uid = intval(pathinfo($parameters['uid_ext'], PATHINFO_FILENAME));
+                       }
+
+                       $photo = self::getAvatar($uid, $parameters['type'], $customsize ?: Proxy::PIXEL_SMALL);
+               } else {
+                       $photoid = MPhoto::stripExtension($parameters['name']);
                        $scale = 0;
                        if (substr($photoid, -2, 1) == "-") {
                                $scale = intval(substr($photoid, -1, 1));
index 2c9765b3c97a6e73a2542648a9dcef62f119ecca..a76b19d88d3304ae78d585bd2d8963102c075d21 100644 (file)
@@ -371,9 +371,13 @@ return [
        '/permission/tooltip/{type}/{id:\d+}' => [Module\PermissionTooltip::class, [R::GET]],
 
        '/photo' => [
-               '/{name}'                     => [Module\Photo::class, [R::GET]],
-               '/{type}/{name}'              => [Module\Photo::class, [R::GET]],
-               '/{type}/{customsize}/{name}' => [Module\Photo::class, [R::GET]],
+               '/{name}'                             => [Module\Photo::class, [R::GET]],
+               // User Id Fallback, to remove after version 2021.12
+               '/{type}/{uid_ext:\d+}'               => [Module\Photo::class, [R::GET]],
+               '/{type}/{nickname_ext}'              => [Module\Photo::class, [R::GET]],
+               // User Id Fallback, to remove after version 2021.12
+               '/{type}/{customsize}/{uid_ext:\d+}'  => [Module\Photo::class, [R::GET]],
+               '/{type}/{customsize}/{nickname_ext}' => [Module\Photo::class, [R::GET]],
        ],
 
        '/pretheme'          => [Module\ThemeDetails::class, [R::GET]],