X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/7a8505f812bb430394aa218cd477422b2beaf9df..refs/pull/3918/head:/app/Auth/User.php diff --git a/app/Auth/User.php b/app/Auth/User.php index 4e2183244..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. * @@ -163,7 +168,7 @@ class User extends Model implements AuthenticatableContract, CanResetPasswordCon } /** - * Get all permissions belonging to a the current user. + * Get all permissions belonging to the current user. */ protected function permissions(): Collection { @@ -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; }