|
|
|
@ -1048,11 +1048,6 @@ func fetchPost(app *App, w http.ResponseWriter, r *http.Request) error { |
|
|
|
|
if err != nil { |
|
|
|
|
return err |
|
|
|
|
} |
|
|
|
|
coll.hostName = app.cfg.App.Host |
|
|
|
|
_, err = apiCheckCollectionPermissions(app, r, coll) |
|
|
|
|
if err != nil { |
|
|
|
|
return err |
|
|
|
|
} |
|
|
|
|
collID = coll.ID |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -1060,12 +1055,26 @@ func fetchPost(app *App, w http.ResponseWriter, r *http.Request) error { |
|
|
|
|
if err != nil { |
|
|
|
|
return err |
|
|
|
|
} |
|
|
|
|
if coll == nil && p.CollectionID.Valid { |
|
|
|
|
// Collection post is getting fetched by post ID, not coll alias + post slug, so get coll info now.
|
|
|
|
|
coll, err = app.db.GetCollectionByID(p.CollectionID.Int64) |
|
|
|
|
if err != nil { |
|
|
|
|
return err |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if coll != nil { |
|
|
|
|
coll.hostName = app.cfg.App.Host |
|
|
|
|
_, err = apiCheckCollectionPermissions(app, r, coll) |
|
|
|
|
if err != nil { |
|
|
|
|
return err |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
suspended, err := app.db.IsUserSuspended(p.OwnerID.Int64) |
|
|
|
|
if err != nil { |
|
|
|
|
log.Error("fetch post: %v", err) |
|
|
|
|
return ErrInternalGeneral |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if suspended { |
|
|
|
|
return ErrPostNotFound |
|
|
|
|
} |
|
|
|
@ -1074,13 +1083,6 @@ func fetchPost(app *App, w http.ResponseWriter, r *http.Request) error { |
|
|
|
|
|
|
|
|
|
accept := r.Header.Get("Accept") |
|
|
|
|
if strings.Contains(accept, "application/activity+json") { |
|
|
|
|
// Fetch information about the collection this belongs to
|
|
|
|
|
if coll == nil && p.CollectionID.Valid { |
|
|
|
|
coll, err = app.db.GetCollectionByID(p.CollectionID.Int64) |
|
|
|
|
if err != nil { |
|
|
|
|
return err |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if coll == nil { |
|
|
|
|
// This is a draft post; 404 for now
|
|
|
|
|
// TODO: return ActivityObject
|
|
|
|
|