summaryrefslogtreecommitdiff
path: root/internal/processing/account
diff options
context:
space:
mode:
authorLibravatar Tobi Smethurst <31960611+tsmethurst@users.noreply.github.com>2021-07-06 13:29:11 +0200
committerLibravatar GitHub <noreply@github.com>2021-07-06 13:29:11 +0200
commit356857921897c0fb91add7f94e8944dd7e6c57b5 (patch)
tree2f6d8d42b6eba0ef3bc693c04be712bcef2af1d3 /internal/processing/account
parentDomain block (#76) (diff)
downloadgotosocial-356857921897c0fb91add7f94e8944dd7e6c57b5.tar.xz
Blocklist import (#77)
* first steps on importing blocklists * unblock domains properly
Diffstat (limited to 'internal/processing/account')
-rw-r--r--internal/processing/account/account.go3
-rw-r--r--internal/processing/account/delete.go9
2 files changed, 9 insertions, 3 deletions
diff --git a/internal/processing/account/account.go b/internal/processing/account/account.go
index 442b6fa9f..efdac5d3e 100644
--- a/internal/processing/account/account.go
+++ b/internal/processing/account/account.go
@@ -40,7 +40,8 @@ type Processor interface {
// Create processes the given form for creating a new account, returning an oauth token for that account if successful.
Create(applicationToken oauth2.TokenInfo, application *gtsmodel.Application, form *apimodel.AccountCreateRequest) (*apimodel.Token, error)
// Delete deletes an account, and all of that account's statuses, media, follows, notifications, etc etc etc.
- Delete(account *gtsmodel.Account, deletedBy string) error
+ // The origin passed here should be either the ID of the account doing the delete (can be itself), or the ID of a domain block.
+ Delete(account *gtsmodel.Account, origin string) error
// Get processes the given request for account information.
Get(requestingAccount *gtsmodel.Account, targetAccountID string) (*apimodel.Account, error)
// Update processes the update of an account with the given form
diff --git a/internal/processing/account/delete.go b/internal/processing/account/delete.go
index c31b67352..65ac02291 100644
--- a/internal/processing/account/delete.go
+++ b/internal/processing/account/delete.go
@@ -48,7 +48,7 @@ import (
// 16. Delete account's user
// 17. Delete account's timeline
// 18. Delete account itself
-func (p *processor) Delete(account *gtsmodel.Account, deletedBy string) error {
+func (p *processor) Delete(account *gtsmodel.Account, origin string) error {
l := p.log.WithFields(logrus.Fields{
"func": "Delete",
"username": account.Username,
@@ -100,6 +100,7 @@ func (p *processor) Delete(account *gtsmodel.Account, deletedBy string) error {
// nothing to do here
// 4. Delete account's follow requests
+ // TODO: federate these if necessary
l.Debug("deleting account follow requests")
// first delete any follow requests that this account created
if err := p.db.DeleteWhere([]db.Where{{Key: "account_id", Value: account.ID}}, &[]*gtsmodel.FollowRequest{}); err != nil {
@@ -112,6 +113,7 @@ func (p *processor) Delete(account *gtsmodel.Account, deletedBy string) error {
}
// 5. Delete account's follows
+ // TODO: federate these if necessary
l.Debug("deleting account follows")
// first delete any follows that this account created
if err := p.db.DeleteWhere([]db.Where{{Key: "account_id", Value: account.ID}}, &[]*gtsmodel.Follow{}); err != nil {
@@ -217,6 +219,7 @@ selectStatusesLoop:
}
// 12. Delete account's faves
+ // TODO: federate these if necessary
l.Debug("deleting account faves")
if err := p.db.DeleteWhere([]db.Where{{Key: "account_id", Value: account.ID}}, &[]*gtsmodel.StatusFave{}); err != nil {
l.Errorf("error deleting faves created by account: %s", err)
@@ -229,6 +232,7 @@ selectStatusesLoop:
}
// 14. Delete account's streams
+ // TODO
// 15. Delete account's tags
// TODO
@@ -240,6 +244,7 @@ selectStatusesLoop:
}
// 17. Delete account's timeline
+ // TODO
// 18. Delete account itself
// to prevent the account being created again, set all these fields and update it in the db
@@ -259,7 +264,7 @@ selectStatusesLoop:
account.UpdatedAt = time.Now()
account.SuspendedAt = time.Now()
- account.SuspensionOrigin = deletedBy
+ account.SuspensionOrigin = origin
if err := p.db.UpdateByID(account.ID, account); err != nil {
return err