31 lines
740 B
Go
31 lines
740 B
Go
// Copyright 2023 The Forgejo Authors. All rights reserved.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
package activitypub
|
|
|
|
import (
|
|
"context"
|
|
|
|
user_model "code.gitea.io/gitea/models/user"
|
|
user_service "code.gitea.io/gitea/services/user"
|
|
|
|
ap "github.com/go-ap/activitypub"
|
|
)
|
|
|
|
// Process an incoming Delete activity
|
|
func delete(ctx context.Context, delete ap.Delete) error {
|
|
actorIRI := delete.Actor.GetLink()
|
|
objectIRI := delete.Object.GetLink()
|
|
// Make sure actor matches the object getting deleted
|
|
if actorIRI != objectIRI {
|
|
return nil
|
|
}
|
|
|
|
// Object is the user getting deleted
|
|
objectUser, err := user_model.GetUserByIRI(ctx, objectIRI.String())
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return user_service.DeleteUser(ctx, objectUser, true)
|
|
}
|