diff options
Diffstat (limited to 'cmd')
-rw-r--r-- | cmd/gotosocial/action/admin/account/account.go | 105 | ||||
-rw-r--r-- | cmd/gotosocial/action/admin/media/list.go | 9 | ||||
-rw-r--r-- | cmd/gotosocial/action/admin/media/prune/all.go | 2 | ||||
-rw-r--r-- | cmd/gotosocial/action/admin/media/prune/common.go | 4 | ||||
-rw-r--r-- | cmd/gotosocial/action/admin/media/prune/orphaned.go | 2 | ||||
-rw-r--r-- | cmd/gotosocial/action/admin/media/prune/remote.go | 2 | ||||
-rw-r--r-- | cmd/gotosocial/action/admin/trans/export.go | 2 | ||||
-rw-r--r-- | cmd/gotosocial/action/admin/trans/import.go | 2 |
8 files changed, 71 insertions, 57 deletions
diff --git a/cmd/gotosocial/action/admin/account/account.go b/cmd/gotosocial/action/admin/account/account.go index 9bb5b27c1..612f10cc8 100644 --- a/cmd/gotosocial/action/admin/account/account.go +++ b/cmd/gotosocial/action/admin/account/account.go @@ -28,6 +28,7 @@ import ( "github.com/superseriousbusiness/gotosocial/internal/config" "github.com/superseriousbusiness/gotosocial/internal/db/bundb" "github.com/superseriousbusiness/gotosocial/internal/gtsmodel" + "github.com/superseriousbusiness/gotosocial/internal/log" "github.com/superseriousbusiness/gotosocial/internal/state" "github.com/superseriousbusiness/gotosocial/internal/validate" "golang.org/x/crypto/bcrypt" @@ -49,15 +50,11 @@ func initState(ctx context.Context) (*state.State, error) { return &state, nil } -func stopState(ctx context.Context, state *state.State) error { - if err := state.DB.Stop(ctx); err != nil { - return fmt.Errorf("error stopping dbConn: %w", err) - } - +func stopState(state *state.State) error { + err := state.DB.Close() state.Workers.Stop() state.Caches.Stop() - - return nil + return err } // Create creates a new account and user @@ -68,6 +65,13 @@ var Create action.GTSAction = func(ctx context.Context) error { 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 @@ -101,17 +105,14 @@ var Create action.GTSAction = func(ctx context.Context) error { return err } - if _, err := state.DB.NewSignup(ctx, gtsmodel.NewSignup{ + _, err = state.DB.NewSignup(ctx, gtsmodel.NewSignup{ Username: username, Email: email, Password: password, EmailVerified: true, // Assume cli user wants email marked as verified already. PreApproved: true, // Assume cli user wants account marked as approved already. - }); err != nil { - return err - } - - return stopState(ctx, state) + }) + return err } // List returns all existing local accounts. @@ -148,8 +149,7 @@ var List action.GTSAction = func(ctx context.Context) error { for _, u := range users { fmt.Fprintf(w, "%s\t%s\t%s\t%s\t%s\t%s\t%s\n", u.Account.Username, u.AccountID, fmtBool(u.Approved), fmtBool(u.Admin), fmtBool(u.Moderator), fmtDate(u.Account.SuspendedAt), fmtDate(u.ConfirmedAt)) } - w.Flush() - return nil + return w.Flush() } // Confirm sets a user to Approved, sets Email to the current @@ -160,6 +160,13 @@ var Confirm action.GTSAction = func(ctx context.Context) error { 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 @@ -178,14 +185,10 @@ var Confirm action.GTSAction = func(ctx context.Context) error { user.Approved = func() *bool { a := true; return &a }() user.Email = user.UnconfirmedEmail user.ConfirmedAt = time.Now() - if err := state.DB.UpdateUser( + return state.DB.UpdateUser( ctx, user, "approved", "email", "confirmed_at", - ); err != nil { - return err - } - - return stopState(ctx, state) + ) } // Promote sets admin + moderator flags on a user to true. @@ -195,6 +198,13 @@ var Promote action.GTSAction = func(ctx context.Context) error { 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 @@ -212,14 +222,10 @@ var Promote action.GTSAction = func(ctx context.Context) error { user.Admin = func() *bool { a := true; return &a }() user.Moderator = func() *bool { a := true; return &a }() - if err := state.DB.UpdateUser( + return state.DB.UpdateUser( ctx, user, "admin", "moderator", - ); err != nil { - return err - } - - return stopState(ctx, state) + ) } // Demote sets admin + moderator flags on a user to false. @@ -229,6 +235,13 @@ var Demote action.GTSAction = func(ctx context.Context) error { 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 @@ -246,14 +259,10 @@ var Demote action.GTSAction = func(ctx context.Context) error { user.Admin = func() *bool { a := false; return &a }() user.Moderator = func() *bool { a := false; return &a }() - if err := state.DB.UpdateUser( + return state.DB.UpdateUser( ctx, user, "admin", "moderator", - ); err != nil { - return err - } - - return stopState(ctx, state) + ) } // Disable sets Disabled to true on a user. @@ -263,6 +272,13 @@ var Disable action.GTSAction = func(ctx context.Context) error { 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 @@ -279,14 +295,10 @@ var Disable action.GTSAction = func(ctx context.Context) error { } user.Disabled = func() *bool { d := true; return &d }() - if err := state.DB.UpdateUser( + return state.DB.UpdateUser( ctx, user, "disabled", - ); err != nil { - return err - } - - return stopState(ctx, state) + ) } // Password sets the password of target account. @@ -296,6 +308,13 @@ var Password action.GTSAction = func(ctx context.Context) error { 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 @@ -322,12 +341,8 @@ var Password action.GTSAction = func(ctx context.Context) error { } user.EncryptedPassword = string(encryptedPassword) - if err := state.DB.UpdateUser( + return state.DB.UpdateUser( ctx, user, "encrypted_password", - ); err != nil { - return err - } - - return stopState(ctx, state) + ) } diff --git a/cmd/gotosocial/action/admin/media/list.go b/cmd/gotosocial/action/admin/media/list.go index e66019ecc..5b6108b11 100644 --- a/cmd/gotosocial/action/admin/media/list.go +++ b/cmd/gotosocial/action/admin/media/list.go @@ -95,12 +95,11 @@ func setupList(ctx context.Context) (*list, error) { }, nil } -func (l *list) shutdown(ctx context.Context) error { +func (l *list) shutdown() error { l.out.Flush() - err := l.dbService.Stop(ctx) + err := l.dbService.Close() l.state.Workers.Stop() l.state.Caches.Stop() - return err } @@ -112,7 +111,7 @@ var ListLocal action.GTSAction = func(ctx context.Context) error { defer func() { // Ensure lister gets shutdown on exit. - if err := list.shutdown(ctx); err != nil { + if err := list.shutdown(); err != nil { log.Error(ctx, err) } }() @@ -144,7 +143,7 @@ var ListRemote action.GTSAction = func(ctx context.Context) error { defer func() { // Ensure lister gets shutdown on exit. - if err := list.shutdown(ctx); err != nil { + if err := list.shutdown(); err != nil { log.Error(ctx, err) } }() diff --git a/cmd/gotosocial/action/admin/media/prune/all.go b/cmd/gotosocial/action/admin/media/prune/all.go index 90c08c7db..b334feb6d 100644 --- a/cmd/gotosocial/action/admin/media/prune/all.go +++ b/cmd/gotosocial/action/admin/media/prune/all.go @@ -36,7 +36,7 @@ var All action.GTSAction = func(ctx context.Context) error { defer func() { // Ensure pruner gets shutdown on exit. - if err := prune.shutdown(ctx); err != nil { + if err := prune.shutdown(); err != nil { log.Error(ctx, err) } }() diff --git a/cmd/gotosocial/action/admin/media/prune/common.go b/cmd/gotosocial/action/admin/media/prune/common.go index ad721675e..ed272984b 100644 --- a/cmd/gotosocial/action/admin/media/prune/common.go +++ b/cmd/gotosocial/action/admin/media/prune/common.go @@ -74,14 +74,14 @@ func setupPrune(ctx context.Context) (*prune, error) { }, nil } -func (p *prune) shutdown(ctx context.Context) error { +func (p *prune) shutdown() error { errs := gtserror.NewMultiError(2) if err := p.storage.Close(); err != nil { errs.Appendf("error closing storage backend: %w", err) } - if err := p.dbService.Stop(ctx); err != nil { + if err := p.dbService.Close(); err != nil { errs.Appendf("error stopping database: %w", err) } diff --git a/cmd/gotosocial/action/admin/media/prune/orphaned.go b/cmd/gotosocial/action/admin/media/prune/orphaned.go index a94c84422..e9cb27256 100644 --- a/cmd/gotosocial/action/admin/media/prune/orphaned.go +++ b/cmd/gotosocial/action/admin/media/prune/orphaned.go @@ -36,7 +36,7 @@ var Orphaned action.GTSAction = func(ctx context.Context) error { defer func() { // Ensure pruner gets shutdown on exit. - if err := prune.shutdown(ctx); err != nil { + if err := prune.shutdown(); err != nil { log.Error(ctx, err) } }() diff --git a/cmd/gotosocial/action/admin/media/prune/remote.go b/cmd/gotosocial/action/admin/media/prune/remote.go index ed521cfe8..5efa5602a 100644 --- a/cmd/gotosocial/action/admin/media/prune/remote.go +++ b/cmd/gotosocial/action/admin/media/prune/remote.go @@ -37,7 +37,7 @@ var Remote action.GTSAction = func(ctx context.Context) error { defer func() { // Ensure pruner gets shutdown on exit. - if err := prune.shutdown(ctx); err != nil { + if err := prune.shutdown(); err != nil { log.Error(ctx, err) } }() diff --git a/cmd/gotosocial/action/admin/trans/export.go b/cmd/gotosocial/action/admin/trans/export.go index 7b487561f..f76982a1b 100644 --- a/cmd/gotosocial/action/admin/trans/export.go +++ b/cmd/gotosocial/action/admin/trans/export.go @@ -52,5 +52,5 @@ var Export action.GTSAction = func(ctx context.Context) error { return err } - return dbConn.Stop(ctx) + return dbConn.Close() } diff --git a/cmd/gotosocial/action/admin/trans/import.go b/cmd/gotosocial/action/admin/trans/import.go index da426b41a..1ebf587ff 100644 --- a/cmd/gotosocial/action/admin/trans/import.go +++ b/cmd/gotosocial/action/admin/trans/import.go @@ -52,5 +52,5 @@ var Import action.GTSAction = func(ctx context.Context) error { return err } - return dbConn.Stop(ctx) + return dbConn.Close() } |