diff options
Diffstat (limited to 'internal/processing')
-rw-r--r-- | internal/processing/account/move.go | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/internal/processing/account/move.go b/internal/processing/account/move.go index ca8dd4dea..a68c8f750 100644 --- a/internal/processing/account/move.go +++ b/internal/processing/account/move.go @@ -154,6 +154,17 @@ func (p *Processor) MoveSelf( } } + // If originAcct has already moved, ensure + // this move reattempt is to the same account. + if originAcct.IsMoving() && + originAcct.MovedToURI != targetAcct.URI { + err := fmt.Errorf( + "your account is already Moving or has Moved to %s; you cannot also Move to %s", + originAcct.MovedToURI, targetAcct.URI, + ) + return gtserror.NewErrorUnprocessableEntity(err, err.Error()) + } + // Target account MUST be aliased to this // account for this to be a valid Move. if !slices.Contains(targetAcct.AlsoKnownAsURIs, originAcct.URI) { |