fix issues updating avatar (#870)

This commit is contained in:
slothful-vassal
2026-03-10 18:00:38 +01:00
committed by GitHub
parent c9acf8ad91
commit 4b1dc784c9
3 changed files with 65 additions and 12 deletions

View File

@@ -99,6 +99,7 @@ func registerMigrations(app *pocketbase.PocketBase) {
func setupEventHandlers(app *pocketbase.PocketBase, client meilisearch.ServiceManager) {
app.OnRecordAfterCreateSuccess("users").BindFunc(createUserHandler(client))
app.OnRecordAfterUpdateSuccess("users").BindFunc(updateUserHandler(client))
app.OnRecordAfterCreateSuccess("trails").BindFunc(createTrailHandler(client))
app.OnRecordAfterUpdateSuccess("trails").BindFunc(updateTrailHandler(client))
@@ -224,6 +225,47 @@ func createUserHandler(client meilisearch.ServiceManager) func(e *core.RecordEve
}
}
func updateUserHandler(client meilisearch.ServiceManager) func(e *core.RecordEvent) error {
return func(e *core.RecordEvent) error {
actor, err := e.App.FindFirstRecordByData("activitypub_actors", "user", e.Record.Id)
if err != nil {
return e.Next()
}
icon := ""
origin := os.Getenv("ORIGIN")
if origin != "" && e.Record.GetString("avatar") != "" {
icon = fmt.Sprintf("%s/api/v1/files/_pb_users_auth_/%s/%s", origin, e.Record.Id, e.Record.GetString("avatar"))
}
actor.Set("icon", icon)
if err := e.App.Save(actor); err != nil {
return err
}
trails, err := e.App.FindRecordsByFilter("trails", "author={:author}", "", -1, 0, dbx.Params{"author": actor.Id})
if err != nil {
return err
}
if len(trails) > 0 {
if err := util.IndexTrails(e.App, trails, client); err != nil {
return err
}
}
lists, err := e.App.FindRecordsByFilter("lists", "author={:author}", "", -1, 0, dbx.Params{"author": actor.Id})
if err != nil {
return err
}
if len(lists) > 0 {
if err := util.IndexLists(e.App, lists, client); err != nil {
return err
}
}
return e.Next()
}
}
func createDefaultUserSettings(app core.App, userId string) error {
collection, err := app.FindCollectionByNameOrId("settings")
if err != nil {