diff options
Diffstat (limited to 'internal/api')
| -rw-r--r-- | internal/api/client/account/accountverify_test.go | 4 | ||||
| -rw-r--r-- | internal/api/client/admin/accountaction.go | 2 | ||||
| -rw-r--r-- | internal/api/client/admin/domainblockcreate.go | 2 | ||||
| -rw-r--r-- | internal/api/client/admin/domainblockdelete.go | 2 | ||||
| -rw-r--r-- | internal/api/client/admin/domainblockget.go | 2 | ||||
| -rw-r--r-- | internal/api/client/admin/domainblocksget.go | 2 | ||||
| -rw-r--r-- | internal/api/client/admin/emojicreate.go | 2 | ||||
| -rw-r--r-- | internal/api/client/admin/emojicreate_test.go | 4 | ||||
| -rw-r--r-- | internal/api/client/admin/mediacleanup.go | 2 | ||||
| -rw-r--r-- | internal/api/client/admin/mediacleanup_test.go | 12 | ||||
| -rw-r--r-- | internal/api/client/auth/authorize.go | 4 | ||||
| -rw-r--r-- | internal/api/client/auth/authorize_test.go | 30 | ||||
| -rw-r--r-- | internal/api/client/instance/instancepatch.go | 2 | ||||
| -rw-r--r-- | internal/api/client/instance/instancepeersget_test.go | 2 | ||||
| -rw-r--r-- | internal/api/s2s/user/inboxpost_test.go | 4 | ||||
| -rw-r--r-- | internal/api/security/tokencheck.go | 4 | 
16 files changed, 43 insertions, 37 deletions
| diff --git a/internal/api/client/account/accountverify_test.go b/internal/api/client/account/accountverify_test.go index 6b199d83e..886272865 100644 --- a/internal/api/client/account/accountverify_test.go +++ b/internal/api/client/account/accountverify_test.go @@ -70,8 +70,8 @@ func (suite *AccountVerifyTestSuite) TestAccountVerifyGet() {  	suite.Equal(testAccount.Username, apimodelAccount.Username)  	suite.Equal(testAccount.Username, apimodelAccount.Acct)  	suite.Equal(testAccount.DisplayName, apimodelAccount.DisplayName) -	suite.Equal(testAccount.Locked, apimodelAccount.Locked) -	suite.Equal(testAccount.Bot, apimodelAccount.Bot) +	suite.Equal(*testAccount.Locked, apimodelAccount.Locked) +	suite.Equal(*testAccount.Bot, apimodelAccount.Bot)  	suite.WithinDuration(testAccount.CreatedAt, createdAt, 30*time.Second) // we lose a bit of accuracy serializing so fuzz this a bit  	suite.Equal(testAccount.URL, apimodelAccount.URL)  	suite.Equal("http://localhost:8080/fileserver/01F8MH1H7YV1Z7D2C8K2730QBF/avatar/original/01F8MH58A357CV5K7R7TJMSH6S.jpeg", apimodelAccount.Avatar) diff --git a/internal/api/client/admin/accountaction.go b/internal/api/client/admin/accountaction.go index 072a60a9d..a9817f295 100644 --- a/internal/api/client/admin/accountaction.go +++ b/internal/api/client/admin/accountaction.go @@ -87,7 +87,7 @@ func (m *Module) AccountActionPOSTHandler(c *gin.Context) {  		return  	} -	if !authed.User.Admin { +	if !*authed.User.Admin {  		err := fmt.Errorf("user %s not an admin", authed.User.ID)  		api.ErrorHandler(c, gtserror.NewErrorForbidden(err, err.Error()), m.processor.InstanceGet)  		return diff --git a/internal/api/client/admin/domainblockcreate.go b/internal/api/client/admin/domainblockcreate.go index cc97f52ca..9ee725bef 100644 --- a/internal/api/client/admin/domainblockcreate.go +++ b/internal/api/client/admin/domainblockcreate.go @@ -123,7 +123,7 @@ func (m *Module) DomainBlocksPOSTHandler(c *gin.Context) {  		return  	} -	if !authed.User.Admin { +	if !*authed.User.Admin {  		err := fmt.Errorf("user %s not an admin", authed.User.ID)  		api.ErrorHandler(c, gtserror.NewErrorForbidden(err, err.Error()), m.processor.InstanceGet)  		return diff --git a/internal/api/client/admin/domainblockdelete.go b/internal/api/client/admin/domainblockdelete.go index d57018f72..aec1ba6df 100644 --- a/internal/api/client/admin/domainblockdelete.go +++ b/internal/api/client/admin/domainblockdelete.go @@ -75,7 +75,7 @@ func (m *Module) DomainBlockDELETEHandler(c *gin.Context) {  		return  	} -	if !authed.User.Admin { +	if !*authed.User.Admin {  		err := fmt.Errorf("user %s not an admin", authed.User.ID)  		api.ErrorHandler(c, gtserror.NewErrorForbidden(err, err.Error()), m.processor.InstanceGet)  		return diff --git a/internal/api/client/admin/domainblockget.go b/internal/api/client/admin/domainblockget.go index e9fdf549b..1aeedce51 100644 --- a/internal/api/client/admin/domainblockget.go +++ b/internal/api/client/admin/domainblockget.go @@ -76,7 +76,7 @@ func (m *Module) DomainBlockGETHandler(c *gin.Context) {  		return  	} -	if !authed.User.Admin { +	if !*authed.User.Admin {  		err := fmt.Errorf("user %s not an admin", authed.User.ID)  		api.ErrorHandler(c, gtserror.NewErrorForbidden(err, err.Error()), m.processor.InstanceGet)  		return diff --git a/internal/api/client/admin/domainblocksget.go b/internal/api/client/admin/domainblocksget.go index c3b3ec595..93bd767c4 100644 --- a/internal/api/client/admin/domainblocksget.go +++ b/internal/api/client/admin/domainblocksget.go @@ -81,7 +81,7 @@ func (m *Module) DomainBlocksGETHandler(c *gin.Context) {  		return  	} -	if !authed.User.Admin { +	if !*authed.User.Admin {  		err := fmt.Errorf("user %s not an admin", authed.User.ID)  		api.ErrorHandler(c, gtserror.NewErrorForbidden(err, err.Error()), m.processor.InstanceGet)  		return diff --git a/internal/api/client/admin/emojicreate.go b/internal/api/client/admin/emojicreate.go index c5d613312..39ebd5adf 100644 --- a/internal/api/client/admin/emojicreate.go +++ b/internal/api/client/admin/emojicreate.go @@ -90,7 +90,7 @@ func (m *Module) EmojiCreatePOSTHandler(c *gin.Context) {  		return  	} -	if !authed.User.Admin { +	if !*authed.User.Admin {  		err := fmt.Errorf("user %s not an admin", authed.User.ID)  		api.ErrorHandler(c, gtserror.NewErrorForbidden(err, err.Error()), m.processor.InstanceGet)  		return diff --git a/internal/api/client/admin/emojicreate_test.go b/internal/api/client/admin/emojicreate_test.go index fa93ce564..ebef858aa 100644 --- a/internal/api/client/admin/emojicreate_test.go +++ b/internal/api/client/admin/emojicreate_test.go @@ -97,9 +97,9 @@ func (suite *EmojiCreateTestSuite) TestEmojiCreate() {  	suite.Equal("image/png", dbEmoji.ImageStaticContentType)  	suite.Equal(36702, dbEmoji.ImageFileSize)  	suite.Equal(10413, dbEmoji.ImageStaticFileSize) -	suite.False(dbEmoji.Disabled) +	suite.False(*dbEmoji.Disabled)  	suite.NotEmpty(dbEmoji.URI) -	suite.True(dbEmoji.VisibleInPicker) +	suite.True(*dbEmoji.VisibleInPicker)  	suite.Empty(dbEmoji.CategoryID)  	// emoji should be in storage diff --git a/internal/api/client/admin/mediacleanup.go b/internal/api/client/admin/mediacleanup.go index 6065acd3b..44f0a1b52 100644 --- a/internal/api/client/admin/mediacleanup.go +++ b/internal/api/client/admin/mediacleanup.go @@ -74,7 +74,7 @@ func (m *Module) MediaCleanupPOSTHandler(c *gin.Context) {  		return  	} -	if !authed.User.Admin { +	if !*authed.User.Admin {  		err := fmt.Errorf("user %s not an admin", authed.User.ID)  		api.ErrorHandler(c, gtserror.NewErrorForbidden(err, err.Error()), m.processor.InstanceGet)  		return diff --git a/internal/api/client/admin/mediacleanup_test.go b/internal/api/client/admin/mediacleanup_test.go index 50f23b2f0..345402ad5 100644 --- a/internal/api/client/admin/mediacleanup_test.go +++ b/internal/api/client/admin/mediacleanup_test.go @@ -35,7 +35,7 @@ type MediaCleanupTestSuite struct {  func (suite *MediaCleanupTestSuite) TestMediaCleanup() {  	testAttachment := suite.testAttachments["remote_account_1_status_1_attachment_2"] -	suite.True(testAttachment.Cached) +	suite.True(*testAttachment.Cached)  	// set up the request  	recorder := httptest.NewRecorder() @@ -55,12 +55,12 @@ func (suite *MediaCleanupTestSuite) TestMediaCleanup() {  	suite.NoError(err)  	// the media should no longer be cached -	suite.False(prunedAttachment.Cached) +	suite.False(*prunedAttachment.Cached)  }  func (suite *MediaCleanupTestSuite) TestMediaCleanupNoArg() {  	testAttachment := suite.testAttachments["remote_account_1_status_1_attachment_2"] -	suite.True(testAttachment.Cached) +	suite.True(*testAttachment.Cached)  	println("TIME: ", testAttachment.CreatedAt.String())  	// set up the request @@ -81,12 +81,12 @@ func (suite *MediaCleanupTestSuite) TestMediaCleanupNoArg() {  	suite.NoError(err)  	// the media should no longer be cached -	suite.False(prunedAttachment.Cached) +	suite.False(*prunedAttachment.Cached)  }  func (suite *MediaCleanupTestSuite) TestMediaCleanupNotOldEnough() {  	testAttachment := suite.testAttachments["remote_account_1_status_1_attachment_2"] -	suite.True(testAttachment.Cached) +	suite.True(*testAttachment.Cached)  	// set up the request  	recorder := httptest.NewRecorder() @@ -106,7 +106,7 @@ func (suite *MediaCleanupTestSuite) TestMediaCleanupNotOldEnough() {  	suite.NoError(err)  	// the media should still be cached -	suite.True(prunedAttachment.Cached) +	suite.True(*prunedAttachment.Cached)  }  func TestMediaCleanupTestSuite(t *testing.T) { diff --git a/internal/api/client/auth/authorize.go b/internal/api/client/auth/authorize.go index 67325a81d..83cddd9b5 100644 --- a/internal/api/client/auth/authorize.go +++ b/internal/api/client/auth/authorize.go @@ -320,13 +320,13 @@ func ensureUserIsAuthorizedOrRedirect(ctx *gin.Context, user *gtsmodel.User, acc  		return  	} -	if !user.Approved { +	if !*user.Approved {  		ctx.Redirect(http.StatusSeeOther, WaitForApprovalPath)  		redirected = true  		return  	} -	if user.Disabled || !account.SuspendedAt.IsZero() { +	if *user.Disabled || !account.SuspendedAt.IsZero() {  		ctx.Redirect(http.StatusSeeOther, AccountDisabledPath)  		redirected = true  		return diff --git a/internal/api/client/auth/authorize_test.go b/internal/api/client/auth/authorize_test.go index 35b995e70..eab893416 100644 --- a/internal/api/client/auth/authorize_test.go +++ b/internal/api/client/auth/authorize_test.go @@ -11,6 +11,7 @@ import (  	"github.com/stretchr/testify/suite"  	"github.com/superseriousbusiness/gotosocial/internal/api/client/auth"  	"github.com/superseriousbusiness/gotosocial/internal/gtsmodel" +	"github.com/superseriousbusiness/gotosocial/testrig"  )  type AuthAuthorizeTestSuite struct { @@ -19,7 +20,7 @@ type AuthAuthorizeTestSuite struct {  type authorizeHandlerTestCase struct {  	description            string -	mutateUserAccount      func(*gtsmodel.User, *gtsmodel.Account) +	mutateUserAccount      func(*gtsmodel.User, *gtsmodel.Account) []string  	expectedStatusCode     int  	expectedLocationHeader string  } @@ -28,40 +29,44 @@ func (suite *AuthAuthorizeTestSuite) TestAccountAuthorizeHandler() {  	tests := []authorizeHandlerTestCase{  		{  			description: "user has their email unconfirmed", -			mutateUserAccount: func(user *gtsmodel.User, account *gtsmodel.Account) { +			mutateUserAccount: func(user *gtsmodel.User, account *gtsmodel.Account) []string {  				// nothing to do, weed_lord420 already has their email unconfirmed +				return nil  			},  			expectedStatusCode:     http.StatusSeeOther,  			expectedLocationHeader: auth.CheckYourEmailPath,  		},  		{  			description: "user has their email confirmed but is not approved", -			mutateUserAccount: func(user *gtsmodel.User, account *gtsmodel.Account) { +			mutateUserAccount: func(user *gtsmodel.User, account *gtsmodel.Account) []string {  				user.ConfirmedAt = time.Now()  				user.Email = user.UnconfirmedEmail +				return []string{"confirmed_at", "email"}  			},  			expectedStatusCode:     http.StatusSeeOther,  			expectedLocationHeader: auth.WaitForApprovalPath,  		},  		{  			description: "user has their email confirmed and is approved, but User entity has been disabled", -			mutateUserAccount: func(user *gtsmodel.User, account *gtsmodel.Account) { +			mutateUserAccount: func(user *gtsmodel.User, account *gtsmodel.Account) []string {  				user.ConfirmedAt = time.Now()  				user.Email = user.UnconfirmedEmail -				user.Approved = true -				user.Disabled = true +				user.Approved = testrig.TrueBool() +				user.Disabled = testrig.TrueBool() +				return []string{"confirmed_at", "email", "approved", "disabled"}  			},  			expectedStatusCode:     http.StatusSeeOther,  			expectedLocationHeader: auth.AccountDisabledPath,  		},  		{  			description: "user has their email confirmed and is approved, but Account entity has been suspended", -			mutateUserAccount: func(user *gtsmodel.User, account *gtsmodel.Account) { +			mutateUserAccount: func(user *gtsmodel.User, account *gtsmodel.Account) []string {  				user.ConfirmedAt = time.Now()  				user.Email = user.UnconfirmedEmail -				user.Approved = true -				user.Disabled = false +				user.Approved = testrig.TrueBool() +				user.Disabled = testrig.FalseBool()  				account.SuspendedAt = time.Now() +				return []string{"confirmed_at", "email", "approved", "disabled"}  			},  			expectedStatusCode:     http.StatusSeeOther,  			expectedLocationHeader: auth.AccountDisabledPath, @@ -81,12 +86,13 @@ func (suite *AuthAuthorizeTestSuite) TestAccountAuthorizeHandler() {  			panic(fmt.Errorf("failed on case %s: %w", testCase.description, err))  		} -		testCase.mutateUserAccount(user, account) +		updatingColumns := testCase.mutateUserAccount(user, account) -		testCase.description = fmt.Sprintf("%s, %t, %s", user.Email, user.Disabled, account.SuspendedAt) +		testCase.description = fmt.Sprintf("%s, %t, %s", user.Email, *user.Disabled, account.SuspendedAt) +		updatingColumns = append(updatingColumns, "updated_at")  		user.UpdatedAt = time.Now() -		err := suite.db.UpdateByPrimaryKey(context.Background(), user) +		err := suite.db.UpdateByPrimaryKey(context.Background(), user, updatingColumns...)  		suite.NoError(err)  		_, err = suite.db.UpdateAccount(context.Background(), account)  		suite.NoError(err) diff --git a/internal/api/client/instance/instancepatch.go b/internal/api/client/instance/instancepatch.go index 6f1b3586b..78d0af046 100644 --- a/internal/api/client/instance/instancepatch.go +++ b/internal/api/client/instance/instancepatch.go @@ -124,7 +124,7 @@ func (m *Module) InstanceUpdatePATCHHandler(c *gin.Context) {  		return  	} -	if !authed.User.Admin { +	if !*authed.User.Admin {  		err := errors.New("user is not an admin so cannot update instance settings")  		api.ErrorHandler(c, gtserror.NewErrorForbidden(err, err.Error()), m.processor.InstanceGet)  		return diff --git a/internal/api/client/instance/instancepeersget_test.go b/internal/api/client/instance/instancepeersget_test.go index 48fb42a73..cc1adcca4 100644 --- a/internal/api/client/instance/instancepeersget_test.go +++ b/internal/api/client/instance/instancepeersget_test.go @@ -190,7 +190,7 @@ func (suite *InstancePeersGetTestSuite) TestInstancePeersGetAllWithObfuscated()  		Domain:             "omg.just.the.worst.org.ever",  		CreatedByAccountID: "01F8MH17FWEB39HZJ76B6VXSKF",  		PublicComment:      "just absolutely the worst, wowza", -		Obfuscate:          true, +		Obfuscate:          testrig.TrueBool(),  	})  	suite.NoError(err) diff --git a/internal/api/s2s/user/inboxpost_test.go b/internal/api/s2s/user/inboxpost_test.go index b8fe73909..506fa270c 100644 --- a/internal/api/s2s/user/inboxpost_test.go +++ b/internal/api/s2s/user/inboxpost_test.go @@ -469,8 +469,8 @@ func (suite *InboxPostTestSuite) TestPostDelete() {  	suite.Empty(dbAccount.HeaderRemoteURL)  	suite.Empty(dbAccount.Reason)  	suite.Empty(dbAccount.Fields) -	suite.True(dbAccount.HideCollections) -	suite.False(dbAccount.Discoverable) +	suite.True(*dbAccount.HideCollections) +	suite.False(*dbAccount.Discoverable)  	suite.WithinDuration(time.Now(), dbAccount.SuspendedAt, 30*time.Second)  	suite.Equal(dbAccount.ID, dbAccount.SuspensionOrigin)  } diff --git a/internal/api/security/tokencheck.go b/internal/api/security/tokencheck.go index 0e9e7bde2..3df7ee943 100644 --- a/internal/api/security/tokencheck.go +++ b/internal/api/security/tokencheck.go @@ -67,12 +67,12 @@ func (m *Module) TokenCheck(c *gin.Context) {  			return  		} -		if !user.Approved { +		if !*user.Approved {  			log.Warnf("authenticated user %s's account was never approved by an admin", userID)  			return  		} -		if user.Disabled { +		if *user.Disabled {  			log.Warnf("authenticated user %s's account was disabled'", userID)  			return  		} | 
