summaryrefslogtreecommitdiff
path: root/internal/processing/fedi/user.go
diff options
context:
space:
mode:
authorLibravatar tobi <31960611+tsmethurst@users.noreply.github.com>2023-11-10 17:16:58 +0100
committerLibravatar GitHub <noreply@github.com>2023-11-10 17:16:58 +0100
commit7ce3a1e6f3e9da43cd0a28f3018b8526decab698 (patch)
tree1b7b10513651d13b37ef188a50e3e9f9dc2c2030 /internal/processing/fedi/user.go
parent[bugfix/docs] Poll api fixups + swagger docs (#2345) (diff)
downloadgotosocial-7ce3a1e6f3e9da43cd0a28f3018b8526decab698.tar.xz
[bugfix] Don't try to update suspended accounts (#2348)
* [bugfix] Don't try to update suspended accounts * bail early if requesting account suspended
Diffstat (limited to 'internal/processing/fedi/user.go')
-rw-r--r--internal/processing/fedi/user.go9
1 files changed, 8 insertions, 1 deletions
diff --git a/internal/processing/fedi/user.go b/internal/processing/fedi/user.go
index 67f137f25..17663a8f4 100644
--- a/internal/processing/fedi/user.go
+++ b/internal/processing/fedi/user.go
@@ -106,6 +106,13 @@ func (p *Processor) UserGet(ctx context.Context, requestedUsername string, reque
return nil, gtserror.NewErrorUnauthorized(err)
}
+ if !requestingAccount.SuspendedAt.IsZero() {
+ // Account was marked as suspended by a
+ // local admin action. Stop request early.
+ err = fmt.Errorf("account %s marked as suspended", requestingAccount.ID)
+ return nil, gtserror.NewErrorForbidden(err)
+ }
+
blocked, err := p.state.DB.IsBlocked(ctx, requestedAccount.ID, requestingAccount.ID)
if err != nil {
err := gtserror.Newf("error checking block from account %s to account %s: %w", requestedAccount.ID, requestingAccount.ID, err)
@@ -114,7 +121,7 @@ func (p *Processor) UserGet(ctx context.Context, requestedUsername string, reque
if blocked {
err := fmt.Errorf("account %s blocks account %s", requestedAccount.ID, requestingAccount.ID)
- return nil, gtserror.NewErrorUnauthorized(err)
+ return nil, gtserror.NewErrorForbidden(err)
}
return data(person)