feat: export AvatarURL for the display picture at any size

- AvatarURL returns the avatar thumbnail, the file path when the thumbnail
  fails, or the gravatar URL, the rule of the user payload
- applyAvatar takes avatar_url from it; the payload is unchanged
This commit is contained in:
2026-10-19 18:55:57 +02:00
parent b82d85f440
commit ee474401cb
3 changed files with 68 additions and 10 deletions

View File

@@ -1283,17 +1283,9 @@ func applyAvatar(ctx context.Context, app *backpack.App, user *models.User, payl
}
payload["has_avatar"] = true
payload["avatar"] = f.DiskName
bucket, ok := app.Lookup[*blob.Bucket]()
if !ok || bucket == nil {
return
if url, err := classes.AvatarURL(ctx, app, user, 128); err == nil && url != "" {
payload["avatar_url"] = url
}
url, err := f.Thumb(ctx, bucket, 128, 128, "auto")
if err != nil {
slog.Default().Error("golem15.user: avatar thumb", "err", err)
payload["avatar_url"] = "/" + attach.BlobKey(f.DiskName)
return
}
payload["avatar_url"] = url
}
func avatarExt(mime string) (string, bool) {