diff options
Diffstat (limited to 'internal/processing')
| -rw-r--r-- | internal/processing/account/get.go | 8 | ||||
| -rw-r--r-- | internal/processing/federation/getfollowers.go | 2 | ||||
| -rw-r--r-- | internal/processing/federation/getfollowing.go | 2 | ||||
| -rw-r--r-- | internal/processing/federation/getoutbox.go | 2 | ||||
| -rw-r--r-- | internal/processing/federation/getstatus.go | 2 | ||||
| -rw-r--r-- | internal/processing/federation/getstatusreplies.go | 2 | ||||
| -rw-r--r-- | internal/processing/federation/getuser.go | 2 | ||||
| -rw-r--r-- | internal/processing/fromfederator.go | 8 | ||||
| -rw-r--r-- | internal/processing/search.go | 4 | 
9 files changed, 22 insertions, 10 deletions
diff --git a/internal/processing/account/get.go b/internal/processing/account/get.go index e96040db7..2571d7af1 100644 --- a/internal/processing/account/get.go +++ b/internal/processing/account/get.go @@ -22,6 +22,7 @@ import (  	"context"  	"errors"  	"fmt" +	"net/url"  	apimodel "github.com/superseriousbusiness/gotosocial/internal/api/model"  	"github.com/superseriousbusiness/gotosocial/internal/db" @@ -56,7 +57,12 @@ func (p *processor) Get(ctx context.Context, requestingAccount *gtsmodel.Account  	// last-minute check to make sure we have remote account header/avi cached  	if targetAccount.Domain != "" { -		a, err := p.federator.EnrichRemoteAccount(ctx, requestingAccount.Username, targetAccount) +		targetAccountURI, err := url.Parse(targetAccount.URI) +		if err != nil { +			return nil, fmt.Errorf("error parsing url %s: %s", targetAccount.URI, err) +		} + +		a, err := p.federator.GetRemoteAccount(ctx, requestingAccount.Username, targetAccountURI, true, false)  		if err == nil {  			targetAccount = a  		} diff --git a/internal/processing/federation/getfollowers.go b/internal/processing/federation/getfollowers.go index 9153cde1e..c15b2b6c4 100644 --- a/internal/processing/federation/getfollowers.go +++ b/internal/processing/federation/getfollowers.go @@ -41,7 +41,7 @@ func (p *processor) GetFollowers(ctx context.Context, requestedUsername string,  		return nil, gtserror.NewErrorNotAuthorized(errors.New("not authorized"), "not authorized")  	} -	requestingAccount, _, err := p.federator.GetRemoteAccount(ctx, requestedUsername, requestingAccountURI, false) +	requestingAccount, err := p.federator.GetRemoteAccount(ctx, requestedUsername, requestingAccountURI, false, false)  	if err != nil {  		return nil, gtserror.NewErrorNotAuthorized(err)  	} diff --git a/internal/processing/federation/getfollowing.go b/internal/processing/federation/getfollowing.go index 8a3025154..d2beaada0 100644 --- a/internal/processing/federation/getfollowing.go +++ b/internal/processing/federation/getfollowing.go @@ -41,7 +41,7 @@ func (p *processor) GetFollowing(ctx context.Context, requestedUsername string,  		return nil, gtserror.NewErrorNotAuthorized(errors.New("not authorized"), "not authorized")  	} -	requestingAccount, _, err := p.federator.GetRemoteAccount(ctx, requestedUsername, requestingAccountURI, false) +	requestingAccount, err := p.federator.GetRemoteAccount(ctx, requestedUsername, requestingAccountURI, false, false)  	if err != nil {  		return nil, gtserror.NewErrorNotAuthorized(err)  	} diff --git a/internal/processing/federation/getoutbox.go b/internal/processing/federation/getoutbox.go index 0f2043447..944c0b571 100644 --- a/internal/processing/federation/getoutbox.go +++ b/internal/processing/federation/getoutbox.go @@ -42,7 +42,7 @@ func (p *processor) GetOutbox(ctx context.Context, requestedUsername string, pag  		return nil, gtserror.NewErrorNotAuthorized(errors.New("not authorized"), "not authorized")  	} -	requestingAccount, _, err := p.federator.GetRemoteAccount(ctx, requestedUsername, requestingAccountURI, false) +	requestingAccount, err := p.federator.GetRemoteAccount(ctx, requestedUsername, requestingAccountURI, false, false)  	if err != nil {  		return nil, gtserror.NewErrorNotAuthorized(err)  	} diff --git a/internal/processing/federation/getstatus.go b/internal/processing/federation/getstatus.go index f065eaa71..1651516b5 100644 --- a/internal/processing/federation/getstatus.go +++ b/internal/processing/federation/getstatus.go @@ -43,7 +43,7 @@ func (p *processor) GetStatus(ctx context.Context, requestedUsername string, req  		return nil, gtserror.NewErrorNotAuthorized(errors.New("not authorized"), "not authorized")  	} -	requestingAccount, _, err := p.federator.GetRemoteAccount(ctx, requestedUsername, requestingAccountURI, false) +	requestingAccount, err := p.federator.GetRemoteAccount(ctx, requestedUsername, requestingAccountURI, false, false)  	if err != nil {  		return nil, gtserror.NewErrorNotAuthorized(err)  	} diff --git a/internal/processing/federation/getstatusreplies.go b/internal/processing/federation/getstatusreplies.go index 4fc21e3ad..c6db4dd3e 100644 --- a/internal/processing/federation/getstatusreplies.go +++ b/internal/processing/federation/getstatusreplies.go @@ -43,7 +43,7 @@ func (p *processor) GetStatusReplies(ctx context.Context, requestedUsername stri  		return nil, gtserror.NewErrorNotAuthorized(errors.New("not authorized"), "not authorized")  	} -	requestingAccount, _, err := p.federator.GetRemoteAccount(ctx, requestedUsername, requestingAccountURI, false) +	requestingAccount, err := p.federator.GetRemoteAccount(ctx, requestedUsername, requestingAccountURI, false, false)  	if err != nil {  		return nil, gtserror.NewErrorNotAuthorized(err)  	} diff --git a/internal/processing/federation/getuser.go b/internal/processing/federation/getuser.go index a8d6bcf38..6d5b8463f 100644 --- a/internal/processing/federation/getuser.go +++ b/internal/processing/federation/getuser.go @@ -54,7 +54,7 @@ func (p *processor) GetUser(ctx context.Context, requestedUsername string, reque  		// if we're not already handshaking/dereferencing a remote account, dereference it now  		if !p.federator.Handshaking(ctx, requestedUsername, requestingAccountURI) { -			requestingAccount, _, err := p.federator.GetRemoteAccount(ctx, requestedUsername, requestingAccountURI, false) +			requestingAccount, err := p.federator.GetRemoteAccount(ctx, requestedUsername, requestingAccountURI, false, false)  			if err != nil {  				return nil, gtserror.NewErrorNotAuthorized(err)  			} diff --git a/internal/processing/fromfederator.go b/internal/processing/fromfederator.go index 533d00242..8b575dda8 100644 --- a/internal/processing/fromfederator.go +++ b/internal/processing/fromfederator.go @@ -22,6 +22,7 @@ import (  	"context"  	"errors"  	"fmt" +	"net/url"  	"github.com/sirupsen/logrus"  	"github.com/superseriousbusiness/gotosocial/internal/ap" @@ -232,7 +233,12 @@ func (p *processor) processUpdateAccountFromFederator(ctx context.Context, feder  		return errors.New("profile was not parseable as *gtsmodel.Account")  	} -	if _, err := p.federator.EnrichRemoteAccount(ctx, federatorMsg.ReceivingAccount.Username, incomingAccount); err != nil { +	incomingAccountURL, err := url.Parse(incomingAccount.URI) +	if err != nil { +		return err +	} + +	if _, err := p.federator.GetRemoteAccount(ctx, federatorMsg.ReceivingAccount.Username, incomingAccountURL, false, true); err != nil {  		return fmt.Errorf("error enriching updated account from federator: %s", err)  	} diff --git a/internal/processing/search.go b/internal/processing/search.go index b03ced831..c8c302857 100644 --- a/internal/processing/search.go +++ b/internal/processing/search.go @@ -148,7 +148,7 @@ func (p *processor) searchAccountByURI(ctx context.Context, authed *oauth.Auth,  	if resolve {  		// we don't have it locally so try and dereference it -		account, _, err := p.federator.GetRemoteAccount(ctx, authed.Account.Username, uri, true) +		account, err := p.federator.GetRemoteAccount(ctx, authed.Account.Username, uri, true, true)  		if err != nil {  			return nil, fmt.Errorf("searchAccountByURI: error dereferencing account with uri %s: %s", uri.String(), err)  		} @@ -203,7 +203,7 @@ func (p *processor) searchAccountByMention(ctx context.Context, authed *oauth.Au  		}  		// we don't have it locally so try and dereference it -		account, _, err := p.federator.GetRemoteAccount(ctx, authed.Account.Username, acctURI, true) +		account, err := p.federator.GetRemoteAccount(ctx, authed.Account.Username, acctURI, true, true)  		if err != nil {  			return nil, fmt.Errorf("searchAccountByMention: error dereferencing account with uri %s: %s", acctURI.String(), err)  		}  | 
