mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2025-09-10 15:48:29 +02:00
fix: assorted ActivityPub code only refactors (#8708)
Fix parts of issue #8221 and part of PR #4767
Is linked to https://codeberg.org/forgejo/forgejo/pulls/8274
The commit 555f6e57ad
fixes timeout forgejo/forgejo#8274 (Kommentar)
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/8708
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
Co-authored-by: Michael Jerger <michael.jerger@meissa-gmbh.de>
Co-committed-by: Michael Jerger <michael.jerger@meissa-gmbh.de>
This commit is contained in:
parent
106707b40f
commit
388e4eb44b
20 changed files with 744 additions and 69 deletions
|
@ -18,7 +18,6 @@ import (
|
|||
"forgejo.org/modules/log"
|
||||
"forgejo.org/modules/setting"
|
||||
"forgejo.org/modules/validation"
|
||||
context_service "forgejo.org/services/context"
|
||||
|
||||
"github.com/google/uuid"
|
||||
)
|
||||
|
@ -27,7 +26,7 @@ func Init() error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func FindOrCreateFederationHost(ctx *context_service.Base, actorURI string) (*forgefed.FederationHost, error) {
|
||||
func FindOrCreateFederationHost(ctx context.Context, actorURI string) (*forgefed.FederationHost, error) {
|
||||
rawActorID, err := fm.NewActorID(actorURI)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
@ -46,7 +45,7 @@ func FindOrCreateFederationHost(ctx *context_service.Base, actorURI string) (*fo
|
|||
return federationHost, nil
|
||||
}
|
||||
|
||||
func FindOrCreateFederatedUser(ctx *context_service.Base, actorURI string) (*user.User, *user.FederatedUser, *forgefed.FederationHost, error) {
|
||||
func FindOrCreateFederatedUser(ctx context.Context, actorURI string) (*user.User, *user.FederatedUser, *forgefed.FederationHost, error) {
|
||||
user, federatedUser, federationHost, err := findFederatedUser(ctx, actorURI)
|
||||
if err != nil {
|
||||
return nil, nil, nil, err
|
||||
|
@ -57,20 +56,21 @@ func FindOrCreateFederatedUser(ctx *context_service.Base, actorURI string) (*use
|
|||
}
|
||||
|
||||
if user != nil {
|
||||
log.Trace("Found local federatedUser: %#v", user)
|
||||
log.Trace("Local ActivityPub user found (actorURI: %#v, user: %#v)", actorURI, user)
|
||||
} else {
|
||||
log.Trace("Attempting to create new user and federatedUser for actorURI: %#v", actorURI)
|
||||
user, federatedUser, err = createUserFromAP(ctx, personID, federationHost.ID)
|
||||
if err != nil {
|
||||
return nil, nil, nil, err
|
||||
}
|
||||
log.Trace("Created federatedUser from ap: %#v", user)
|
||||
log.Trace("Created user %#v with federatedUser %#v from distant server", user, federatedUser)
|
||||
}
|
||||
log.Trace("Got user: %v", user.Name)
|
||||
|
||||
return user, federatedUser, federationHost, nil
|
||||
}
|
||||
|
||||
func findFederatedUser(ctx *context_service.Base, actorURI string) (*user.User, *user.FederatedUser, *forgefed.FederationHost, error) {
|
||||
func findFederatedUser(ctx context.Context, actorURI string) (*user.User, *user.FederatedUser, *forgefed.FederationHost, error) {
|
||||
federationHost, err := FindOrCreateFederationHost(ctx, actorURI)
|
||||
if err != nil {
|
||||
return nil, nil, nil, err
|
||||
|
@ -90,6 +90,7 @@ func findFederatedUser(ctx *context_service.Base, actorURI string) (*user.User,
|
|||
|
||||
func createFederationHostFromAP(ctx context.Context, actorID fm.ActorID) (*forgefed.FederationHost, error) {
|
||||
actionsUser := user.NewAPServerActor()
|
||||
|
||||
clientFactory, err := activitypub.GetClientFactory(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
@ -161,7 +162,7 @@ func fetchUserFromAP(ctx context.Context, personID fm.PersonID, federationHostID
|
|||
return nil, nil, err
|
||||
}
|
||||
|
||||
log.Info("Fetched valid person:%q", person)
|
||||
log.Info("Fetched valid person from distant server: %q", person)
|
||||
|
||||
localFqdn, err := url.ParseRequestURI(setting.AppURL)
|
||||
if err != nil {
|
||||
|
@ -220,7 +221,7 @@ func fetchUserFromAP(ctx context.Context, personID fm.PersonID, federationHostID
|
|||
},
|
||||
}
|
||||
|
||||
log.Info("Fetch federatedUser:%q", federatedUser)
|
||||
log.Info("Fetched person's %q federatedUser from distant server: %q", person, federatedUser)
|
||||
return &newUser, &federatedUser, nil
|
||||
}
|
||||
|
||||
|
@ -234,6 +235,6 @@ func createUserFromAP(ctx context.Context, personID fm.PersonID, federationHostI
|
|||
return nil, nil, err
|
||||
}
|
||||
|
||||
log.Info("Created federatedUser:%q", federatedUser)
|
||||
log.Info("Created federatedUser: %q", federatedUser)
|
||||
return newUser, federatedUser, nil
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue