コミット
3d310d5e81
21
pub/fed.go
21
pub/fed.go
|
@ -929,7 +929,6 @@ func (f *federator) handleDelete(c context.Context) func(s *streams.Delete) erro
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Only Set IRIs
|
|
||||||
func (f *federator) handleFollow(c context.Context, inboxURL *url.URL) func(s *streams.Follow) error {
|
func (f *federator) handleFollow(c context.Context, inboxURL *url.URL) func(s *streams.Follow) error {
|
||||||
return func(s *streams.Follow) error {
|
return func(s *streams.Follow) error {
|
||||||
// Permit either human-triggered or automatically triggering
|
// Permit either human-triggered or automatically triggering
|
||||||
|
@ -948,13 +947,23 @@ func (f *federator) handleFollow(c context.Context, inboxURL *url.URL) func(s *s
|
||||||
raw := s.Raw()
|
raw := s.Raw()
|
||||||
activity.AppendObject(raw)
|
activity.AppendObject(raw)
|
||||||
for i := 0; i < raw.ActorLen(); i++ {
|
for i := 0; i < raw.ActorLen(); i++ {
|
||||||
|
var to *url.URL
|
||||||
if raw.IsActorObject(i) {
|
if raw.IsActorObject(i) {
|
||||||
activity.AppendToObject(raw.GetActorObject(i))
|
obj := raw.GetActorObject(i)
|
||||||
} else if raw.IsActorLink(i) {
|
if !obj.HasId() {
|
||||||
activity.AppendToLink(raw.GetActorLink(i))
|
return fmt.Errorf("to object missing id")
|
||||||
} else if raw.IsActorIRI(i) {
|
|
||||||
activity.AppendToIRI(raw.GetActorIRI(i))
|
|
||||||
}
|
}
|
||||||
|
to = obj.GetId()
|
||||||
|
} else if raw.IsActorLink(i) {
|
||||||
|
href := raw.GetActorLink(i)
|
||||||
|
if !href.HasHref() {
|
||||||
|
return fmt.Errorf("to link missing href")
|
||||||
|
}
|
||||||
|
to = href.GetHref()
|
||||||
|
} else if raw.IsActorIRI(i) {
|
||||||
|
to = raw.GetActorIRI(i)
|
||||||
|
}
|
||||||
|
activity.AppendToIRI(to)
|
||||||
}
|
}
|
||||||
ownsAny := false
|
ownsAny := false
|
||||||
if todo == AutomaticAccept {
|
if todo == AutomaticAccept {
|
||||||
|
|
|
@ -2556,7 +2556,7 @@ func TestPostInbox_Follow_AutoReject(t *testing.T) {
|
||||||
}
|
}
|
||||||
expected := &vocab.Reject{}
|
expected := &vocab.Reject{}
|
||||||
expected.AppendObject(testFollow)
|
expected.AppendObject(testFollow)
|
||||||
expected.AppendToObject(sallyActor)
|
expected.AppendToIRI(sallyIRI)
|
||||||
handled, err := p.PostInbox(context.Background(), resp, req)
|
handled, err := p.PostInbox(context.Background(), resp, req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
|
@ -2683,7 +2683,7 @@ func TestPostInbox_Follow_AutoAccept(t *testing.T) {
|
||||||
}
|
}
|
||||||
expected := &vocab.Accept{}
|
expected := &vocab.Accept{}
|
||||||
expected.AppendObject(testFollow)
|
expected.AppendObject(testFollow)
|
||||||
expected.AppendToObject(sallyActor)
|
expected.AppendToIRI(sallyIRI)
|
||||||
expectedFollowers := &vocab.Collection{}
|
expectedFollowers := &vocab.Collection{}
|
||||||
expectedFollowers.AppendItemsIRI(sallyIRI)
|
expectedFollowers.AppendItemsIRI(sallyIRI)
|
||||||
expectedActor := &vocab.Person{}
|
expectedActor := &vocab.Person{}
|
||||||
|
|
読み込み中…
新しいイシューから参照