X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/397a36cfd05d26faecc1350817fa1d2fb20aa6ff..refs/pull/3918/head:/app/Auth/User.php diff --git a/app/Auth/User.php b/app/Auth/User.php index c060d5ec8..6e66bc808 100644 --- a/app/Auth/User.php +++ b/app/Auth/User.php @@ -80,6 +80,11 @@ class User extends Model implements AuthenticatableContract, CanResetPasswordCon */ protected ?Collection $permissions; + /** + * This holds the user's avatar URL when loaded to prevent re-calculating within the same request. + */ + protected string $avatarUrl = ''; + /** * This holds the default user when loaded. * @@ -233,12 +238,18 @@ class User extends Model implements AuthenticatableContract, CanResetPasswordCon return $default; } + if (!empty($this->avatarUrl)) { + return $this->avatarUrl; + } + try { $avatar = $this->avatar ? url($this->avatar->getThumb($size, $size, false)) : $default; } catch (Exception $err) { $avatar = $default; } + $this->avatarUrl = $avatar; + return $avatar; }