summaryrefslogtreecommitdiff
path: root/cmd/gotosocial/action/admin/account/account.go
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/gotosocial/action/admin/account/account.go')
-rw-r--r--cmd/gotosocial/action/admin/account/account.go39
1 files changed, 38 insertions, 1 deletions
diff --git a/cmd/gotosocial/action/admin/account/account.go b/cmd/gotosocial/action/admin/account/account.go
index 612f10cc8..e2fd82642 100644
--- a/cmd/gotosocial/action/admin/account/account.go
+++ b/cmd/gotosocial/action/admin/account/account.go
@@ -30,6 +30,7 @@ import (
"github.com/superseriousbusiness/gotosocial/internal/gtsmodel"
"github.com/superseriousbusiness/gotosocial/internal/log"
"github.com/superseriousbusiness/gotosocial/internal/state"
+ "github.com/superseriousbusiness/gotosocial/internal/util"
"github.com/superseriousbusiness/gotosocial/internal/validate"
"golang.org/x/crypto/bcrypt"
)
@@ -294,7 +295,43 @@ var Disable action.GTSAction = func(ctx context.Context) error {
return err
}
- user.Disabled = func() *bool { d := true; return &d }()
+ user.Disabled = util.Ptr(true)
+ return state.DB.UpdateUser(
+ ctx, user,
+ "disabled",
+ )
+}
+
+// Enable sets Disabled to false on a user.
+var Enable action.GTSAction = func(ctx context.Context) error {
+ state, err := initState(ctx)
+ if err != nil {
+ return err
+ }
+
+ defer func() {
+ // Ensure state gets stopped on return.
+ if err := stopState(state); err != nil {
+ log.Error(ctx, err)
+ }
+ }()
+
+ username := config.GetAdminAccountUsername()
+ if err := validate.Username(username); err != nil {
+ return err
+ }
+
+ account, err := state.DB.GetAccountByUsernameDomain(ctx, username, "")
+ if err != nil {
+ return err
+ }
+
+ user, err := state.DB.GetUserByAccountID(ctx, account.ID)
+ if err != nil {
+ return err
+ }
+
+ user.Disabled = util.Ptr(false)
return state.DB.UpdateUser(
ctx, user,
"disabled",