summaryrefslogtreecommitdiff
path: root/internal/processing/admin/account.go
diff options
context:
space:
mode:
authorLibravatar tobi <31960611+tsmethurst@users.noreply.github.com>2024-04-13 13:25:10 +0200
committerLibravatar GitHub <noreply@github.com>2024-04-13 13:25:10 +0200
commit89e0cfd8741b6763ca04e90558bccf4c3c380cfa (patch)
tree5858ada73473816fa1982f12717b66996d163f9d /internal/processing/admin/account.go
parent[performance] update GetAccountsByIDs() to use the new multi cache loader end... (diff)
downloadgotosocial-89e0cfd8741b6763ca04e90558bccf4c3c380cfa.tar.xz
[feature] Admin accounts endpoints; approve/reject sign-ups (#2826)
* update settings panels, add pending overview + approve/deny functions * add admin accounts get, approve, reject * send approved/rejected emails * use signup URL * docs! * email * swagger * web linting * fix email tests * wee lil fixerinos * use new paging logic for GetAccounts() series of admin endpoints, small changes to query building * shuffle useAccountIDIn check *before* adding to query * fix parse from toot react error * use `netip.Addr` * put valid slices in globals * optimistic updates for account state --------- Co-authored-by: kim <grufwub@gmail.com>
Diffstat (limited to 'internal/processing/admin/account.go')
-rw-r--r--internal/processing/admin/account.go102
1 files changed, 0 insertions, 102 deletions
diff --git a/internal/processing/admin/account.go b/internal/processing/admin/account.go
deleted file mode 100644
index 155d8c0b4..000000000
--- a/internal/processing/admin/account.go
+++ /dev/null
@@ -1,102 +0,0 @@
-// GoToSocial
-// Copyright (C) GoToSocial Authors admin@gotosocial.org
-// SPDX-License-Identifier: AGPL-3.0-or-later
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a copy of the GNU Affero General Public License
-// along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-package admin
-
-import (
- "context"
- "fmt"
-
- "github.com/superseriousbusiness/gotosocial/internal/ap"
- apimodel "github.com/superseriousbusiness/gotosocial/internal/api/model"
- "github.com/superseriousbusiness/gotosocial/internal/gtserror"
- "github.com/superseriousbusiness/gotosocial/internal/gtsmodel"
- "github.com/superseriousbusiness/gotosocial/internal/id"
- "github.com/superseriousbusiness/gotosocial/internal/messages"
-)
-
-func (p *Processor) AccountAction(
- ctx context.Context,
- adminAcct *gtsmodel.Account,
- request *apimodel.AdminActionRequest,
-) (string, gtserror.WithCode) {
- targetAcct, err := p.state.DB.GetAccountByID(ctx, request.TargetID)
- if err != nil {
- err := gtserror.Newf("db error getting target account: %w", err)
- return "", gtserror.NewErrorInternalError(err)
- }
-
- switch gtsmodel.NewAdminActionType(request.Type) {
- case gtsmodel.AdminActionSuspend:
- return p.accountActionSuspend(ctx, adminAcct, targetAcct, request.Text)
-
- default:
- // TODO: add more types to this slice when adding
- // more types to the switch statement above.
- supportedTypes := []string{
- gtsmodel.AdminActionSuspend.String(),
- }
-
- err := fmt.Errorf(
- "admin action type %s is not supported for this endpoint, "+
- "currently supported types are: %q",
- request.Type, supportedTypes)
-
- return "", gtserror.NewErrorBadRequest(err, err.Error())
- }
-}
-
-func (p *Processor) accountActionSuspend(
- ctx context.Context,
- adminAcct *gtsmodel.Account,
- targetAcct *gtsmodel.Account,
- text string,
-) (string, gtserror.WithCode) {
- actionID := id.NewULID()
-
- errWithCode := p.actions.Run(
- ctx,
- &gtsmodel.AdminAction{
- ID: actionID,
- TargetCategory: gtsmodel.AdminActionCategoryAccount,
- TargetID: targetAcct.ID,
- Target: targetAcct,
- Type: gtsmodel.AdminActionSuspend,
- AccountID: adminAcct.ID,
- Text: text,
- },
- func(ctx context.Context) gtserror.MultiError {
- if err := p.state.Workers.ProcessFromClientAPI(
- ctx,
- messages.FromClientAPI{
- APObjectType: ap.ActorPerson,
- APActivityType: ap.ActivityDelete,
- OriginAccount: adminAcct,
- TargetAccount: targetAcct,
- },
- ); err != nil {
- errs := gtserror.NewMultiError(1)
- errs.Append(err)
- return errs
- }
-
- return nil
- },
- )
-
- return actionID, errWithCode
-}