Updated permanentDelete to receive user context as the first argument (#26884)

Co-authored-by: Ezekiel <ezekielchow94@gmail.com>
Этот коммит содержится в:
Ben Schumacher
2024-04-29 10:44:55 +02:00
коммит произвёл GitHub
родитель a6aa92d149
Коммит 5746bb8df3
21 изменённых файлов: 245 добавлений и 248 удалений

Просмотреть файл

@@ -2744,7 +2744,7 @@ func TestGetUsersWithoutTeam(t *testing.T) {
}) })
require.NoError(t, err) require.NoError(t, err)
th.LinkUserToTeam(user, th.BasicTeam) th.LinkUserToTeam(user, th.BasicTeam)
defer th.App.Srv().Store().User().PermanentDelete(user.Id) defer th.App.Srv().Store().User().PermanentDelete(th.Context, user.Id)
user2, _, err := th.Client.CreateUser(context.Background(), &model.User{ user2, _, err := th.Client.CreateUser(context.Background(), &model.User{
Username: "a000000001" + model.NewId(), Username: "a000000001" + model.NewId(),
@@ -2752,7 +2752,7 @@ func TestGetUsersWithoutTeam(t *testing.T) {
Password: "Password1", Password: "Password1",
}) })
require.NoError(t, err) require.NoError(t, err)
defer th.App.Srv().Store().User().PermanentDelete(user2.Id) defer th.App.Srv().Store().User().PermanentDelete(th.Context, user2.Id)
rusers, _, err := th.SystemAdminClient.GetUsersWithoutTeam(context.Background(), 0, 100, "") rusers, _, err := th.SystemAdminClient.GetUsersWithoutTeam(context.Background(), 0, 100, "")
require.NoError(t, err) require.NoError(t, err)

Просмотреть файл

@@ -124,7 +124,7 @@ func (a *App) CreateBot(rctx request.CTX, bot *model.Bot) (*model.Bot, *model.Ap
savedBot, nErr := a.Srv().Store().Bot().Save(bot) savedBot, nErr := a.Srv().Store().Bot().Save(bot)
if nErr != nil { if nErr != nil {
a.Srv().Store().User().PermanentDelete(bot.UserId) a.Srv().Store().User().PermanentDelete(rctx, bot.UserId)
var appErr *model.AppError var appErr *model.AppError
switch { switch {
case errors.As(nErr, &appErr): // in case we haven't converted to plain error. case errors.As(nErr, &appErr): // in case we haven't converted to plain error.
@@ -227,7 +227,7 @@ func (a *App) getOrCreateBot(rctx request.CTX, botDef *model.Bot) (*model.Bot, *
//save the bot //save the bot
savedBot, nErr := a.Srv().Store().Bot().Save(botDef) savedBot, nErr := a.Srv().Store().Bot().Save(botDef)
if nErr != nil { if nErr != nil {
a.Srv().Store().User().PermanentDelete(savedBot.UserId) a.Srv().Store().User().PermanentDelete(rctx, savedBot.UserId)
var nAppErr *model.AppError var nAppErr *model.AppError
switch { switch {
case errors.As(nErr, &nAppErr): // in case we haven't converted to plain error. case errors.As(nErr, &nAppErr): // in case we haven't converted to plain error.
@@ -414,7 +414,7 @@ func (a *App) PermanentDeleteBot(rctx request.CTX, botUserId string) *model.AppE
} }
} }
if err := a.Srv().Store().User().PermanentDelete(botUserId); err != nil { if err := a.Srv().Store().User().PermanentDelete(rctx, botUserId); err != nil {
return model.NewAppError("PermanentDeleteBot", "app.user.permanent_delete.app_error", nil, "", http.StatusInternalServerError).Wrap(err) return model.NewAppError("PermanentDeleteBot", "app.user.permanent_delete.app_error", nil, "", http.StatusInternalServerError).Wrap(err)
} }

Просмотреть файл

@@ -169,7 +169,7 @@ func TestEnsureBot(t *testing.T) {
assert.Equal(t, "username", bot.Username) assert.Equal(t, "username", bot.Username)
assert.Equal(t, "a bot", bot.Description) assert.Equal(t, "a bot", bot.Description)
err = th.App.Srv().Store().User().PermanentDelete(initialBot.UserId) err = th.App.Srv().Store().User().PermanentDelete(th.Context, initialBot.UserId)
require.NoError(t, err) require.NoError(t, err)
botID2, err := th.App.EnsureBot(th.Context, pluginId, &model.Bot{ botID2, err := th.App.EnsureBot(th.Context, pluginId, &model.Bot{
Username: "another_username", Username: "another_username",

Просмотреть файл

@@ -19,7 +19,7 @@ func TestSidebarCategory(t *testing.T) {
basicChannel2 := th.CreateChannel(th.Context, th.BasicTeam) basicChannel2 := th.CreateChannel(th.Context, th.BasicTeam)
defer th.App.PermanentDeleteChannel(th.Context, basicChannel2) defer th.App.PermanentDeleteChannel(th.Context, basicChannel2)
user := th.CreateUser() user := th.CreateUser()
defer th.App.Srv().Store().User().PermanentDelete(user.Id) defer th.App.Srv().Store().User().PermanentDelete(th.Context, user.Id)
th.LinkUserToTeam(user, th.BasicTeam) th.LinkUserToTeam(user, th.BasicTeam)
th.AddUserToChannel(user, basicChannel2) th.AddUserToChannel(user, basicChannel2)

Просмотреть файл

@@ -122,7 +122,7 @@ func (th *TestHelper) CreateUser(u *model.User) *model.User {
} }
func (th *TestHelper) DeleteUser(u *model.User) { func (th *TestHelper) DeleteUser(u *model.User) {
err := th.dbStore.User().PermanentDelete(u.Id) err := th.dbStore.User().PermanentDelete(th.Context, u.Id)
if err != nil { if err != nil {
panic(err) panic(err)
} }

Просмотреть файл

@@ -1847,7 +1847,7 @@ func (a *App) PermanentDeleteUser(c request.CTX, user *model.User) *model.AppErr
return model.NewAppError("PermanentDeleteUser", "app.file_info.permanent_delete_by_user.app_error", nil, "", http.StatusInternalServerError).Wrap(err) return model.NewAppError("PermanentDeleteUser", "app.file_info.permanent_delete_by_user.app_error", nil, "", http.StatusInternalServerError).Wrap(err)
} }
if err := a.Srv().Store().User().PermanentDelete(user.Id); err != nil { if err := a.Srv().Store().User().PermanentDelete(c, user.Id); err != nil {
return model.NewAppError("PermanentDeleteUser", "app.user.permanent_delete.app_error", nil, "", http.StatusInternalServerError).Wrap(err) return model.NewAppError("PermanentDeleteUser", "app.user.permanent_delete.app_error", nil, "", http.StatusInternalServerError).Wrap(err)
} }

Просмотреть файл

@@ -56,7 +56,7 @@ func TestFirstUserPromoted(t *testing.T) {
require.Equal(t, model.SystemUserRoleId, user2.Roles) require.Equal(t, model.SystemUserRoleId, user2.Roles)
th.dbStore.User().PermanentDelete(user.Id) th.dbStore.User().PermanentDelete(th.Context, user.Id)
b := &model.Bot{ b := &model.Bot{
UserId: user2.Id, UserId: user2.Id,

Просмотреть файл

@@ -12252,7 +12252,7 @@ func (s *OpenTracingLayerUserStore) IsEmpty(excludeBots bool) (bool, error) {
return result, err return result, err
} }
func (s *OpenTracingLayerUserStore) PermanentDelete(userID string) error { func (s *OpenTracingLayerUserStore) PermanentDelete(rctx request.CTX, userID string) error {
origCtx := s.Root.Store.Context() origCtx := s.Root.Store.Context()
span, newCtx := tracing.StartSpanWithParentByContext(s.Root.Store.Context(), "UserStore.PermanentDelete") span, newCtx := tracing.StartSpanWithParentByContext(s.Root.Store.Context(), "UserStore.PermanentDelete")
s.Root.Store.SetContext(newCtx) s.Root.Store.SetContext(newCtx)
@@ -12261,7 +12261,7 @@ func (s *OpenTracingLayerUserStore) PermanentDelete(userID string) error {
}() }()
defer span.Finish() defer span.Finish()
err := s.UserStore.PermanentDelete(userID) err := s.UserStore.PermanentDelete(rctx, userID)
if err != nil { if err != nil {
span.LogFields(spanlog.Error(err)) span.LogFields(spanlog.Error(err))
ext.Error.Set(span, true) ext.Error.Set(span, true)

Просмотреть файл

@@ -13977,11 +13977,11 @@ func (s *RetryLayerUserStore) IsEmpty(excludeBots bool) (bool, error) {
} }
func (s *RetryLayerUserStore) PermanentDelete(userID string) error { func (s *RetryLayerUserStore) PermanentDelete(rctx request.CTX, userID string) error {
tries := 0 tries := 0
for { for {
err := s.UserStore.PermanentDelete(userID) err := s.UserStore.PermanentDelete(rctx, userID)
if err == nil { if err == nil {
return nil return nil
} }

Просмотреть файл

@@ -90,15 +90,12 @@ func (s *SearchUserStore) Save(rctx request.CTX, user *model.User) (*model.User,
return nuser, err return nuser, err
} }
func (s *SearchUserStore) PermanentDelete(userId string) error { func (s *SearchUserStore) PermanentDelete(rctx request.CTX, userId string) error {
// TODO: Use the actuall request context from the App layer
// https://mattermost.atlassian.net/browse/MM-55738
rctx := request.EmptyContext(s.rootStore.Logger())
user, userErr := s.UserStore.Get(context.Background(), userId) user, userErr := s.UserStore.Get(context.Background(), userId)
if userErr != nil { if userErr != nil {
rctx.Logger().Warn("Encountered error deleting user", mlog.String("user_id", userId), mlog.Err(userErr)) rctx.Logger().Warn("Encountered error deleting user", mlog.String("user_id", userId), mlog.Err(userErr))
} }
err := s.UserStore.PermanentDelete(userId) err := s.UserStore.PermanentDelete(rctx, userId)
if err == nil && userErr == nil { if err == nil && userErr == nil {
s.deleteUserIndex(rctx, user) s.deleteUserIndex(rctx, user)
} }

Просмотреть файл

@@ -192,14 +192,14 @@ func (th *SearchTestHelper) createGuest(username, nickname, firstName, lastName
} }
func (th *SearchTestHelper) deleteUser(user *model.User) error { func (th *SearchTestHelper) deleteUser(user *model.User) error {
return th.Store.User().PermanentDelete(user.Id) return th.Store.User().PermanentDelete(th.Context, user.Id)
} }
func (th *SearchTestHelper) deleteBotUser(botID string) error { func (th *SearchTestHelper) deleteBotUser(botID string) error {
if err := th.deleteBot(botID); err != nil { if err := th.deleteBot(botID); err != nil {
return err return err
} }
return th.Store.User().PermanentDelete(botID) return th.Store.User().PermanentDelete(th.Context, botID)
} }
func (th *SearchTestHelper) cleanAllUsers() error { func (th *SearchTestHelper) cleanAllUsers() error {
@@ -233,7 +233,7 @@ func (th *SearchTestHelper) createBot(username, displayName, ownerID string) (*m
botModel.UserId = user.Id botModel.UserId = user.Id
bot, err := th.Store.Bot().Save(botModel) bot, err := th.Store.Bot().Save(botModel)
if err != nil { if err != nil {
th.Store.User().PermanentDelete(bot.UserId) th.Store.User().PermanentDelete(th.Context, bot.UserId)
return nil, errors.New(err.Error()) return nil, errors.New(err.Error())
} }

Просмотреть файл

@@ -1337,7 +1337,7 @@ func (us SqlUserStore) VerifyEmail(userId, email string) (string, error) {
return userId, nil return userId, nil
} }
func (us SqlUserStore) PermanentDelete(userId string) error { func (us SqlUserStore) PermanentDelete(rctx request.CTX, userId string) error {
if _, err := us.GetMasterX().Exec("DELETE FROM Users WHERE Id = ?", userId); err != nil { if _, err := us.GetMasterX().Exec("DELETE FROM Users WHERE Id = ?", userId); err != nil {
return errors.Wrapf(err, "failed to delete User with userId=%s", userId) return errors.Wrapf(err, "failed to delete User with userId=%s", userId)
} }

Просмотреть файл

@@ -444,7 +444,7 @@ type UserStore interface {
GetEtagForProfiles(teamID string) string GetEtagForProfiles(teamID string) string
UpdateFailedPasswordAttempts(userID string, attempts int) error UpdateFailedPasswordAttempts(userID string, attempts int) error
GetSystemAdminProfiles() (map[string]*model.User, error) GetSystemAdminProfiles() (map[string]*model.User, error)
PermanentDelete(userID string) error PermanentDelete(rctx request.CTX, userID string) error
AnalyticsActiveCount(timestamp int64, options model.UserCountOptions) (int64, error) AnalyticsActiveCount(timestamp int64, options model.UserCountOptions) (int64, error)
AnalyticsActiveCountForPeriod(startTime int64, endTime int64, options model.UserCountOptions) (int64, error) AnalyticsActiveCountForPeriod(startTime int64, endTime int64, options model.UserCountOptions) (int64, error)
GetUnreadCount(userID string, isCRTEnabled bool) (int64, error) GetUnreadCount(userID string, isCRTEnabled bool) (int64, error)

Просмотреть файл

@@ -44,7 +44,7 @@ func testBotStoreGet(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore)
deletedBot, err := ss.Bot().Update(deletedBot) deletedBot, err := ss.Bot().Update(deletedBot)
require.NoError(t, err) require.NoError(t, err)
defer func() { require.NoError(t, ss.Bot().PermanentDelete(deletedBot.UserId)) }() defer func() { require.NoError(t, ss.Bot().PermanentDelete(deletedBot.UserId)) }()
defer func() { require.NoError(t, ss.User().PermanentDelete(deletedBot.UserId)) }() defer func() { require.NoError(t, ss.User().PermanentDelete(rctx, deletedBot.UserId)) }()
permanentlyDeletedBot, _ := makeBotWithUser(t, rctx, ss, &model.Bot{ permanentlyDeletedBot, _ := makeBotWithUser(t, rctx, ss, &model.Bot{
Username: "permanently_deleted_bot", Username: "permanently_deleted_bot",
@@ -54,7 +54,7 @@ func testBotStoreGet(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore)
DeleteAt: 0, DeleteAt: 0,
}) })
require.NoError(t, ss.Bot().PermanentDelete(permanentlyDeletedBot.UserId)) require.NoError(t, ss.Bot().PermanentDelete(permanentlyDeletedBot.UserId))
defer func() { require.NoError(t, ss.User().PermanentDelete(permanentlyDeletedBot.UserId)) }() defer func() { require.NoError(t, ss.User().PermanentDelete(rctx, permanentlyDeletedBot.UserId)) }()
b1, _ := makeBotWithUser(t, rctx, ss, &model.Bot{ b1, _ := makeBotWithUser(t, rctx, ss, &model.Bot{
Username: "b1", Username: "b1",
@@ -63,7 +63,7 @@ func testBotStoreGet(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore)
LastIconUpdate: model.GetMillis(), LastIconUpdate: model.GetMillis(),
}) })
defer func() { require.NoError(t, ss.Bot().PermanentDelete(b1.UserId)) }() defer func() { require.NoError(t, ss.Bot().PermanentDelete(b1.UserId)) }()
defer func() { require.NoError(t, ss.User().PermanentDelete(b1.UserId)) }() defer func() { require.NoError(t, ss.User().PermanentDelete(rctx, b1.UserId)) }()
b2, _ := makeBotWithUser(t, rctx, ss, &model.Bot{ b2, _ := makeBotWithUser(t, rctx, ss, &model.Bot{
Username: "b2", Username: "b2",
@@ -72,7 +72,7 @@ func testBotStoreGet(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore)
LastIconUpdate: 0, LastIconUpdate: 0,
}) })
defer func() { require.NoError(t, ss.Bot().PermanentDelete(b2.UserId)) }() defer func() { require.NoError(t, ss.Bot().PermanentDelete(b2.UserId)) }()
defer func() { require.NoError(t, ss.User().PermanentDelete(b2.UserId)) }() defer func() { require.NoError(t, ss.User().PermanentDelete(rctx, b2.UserId)) }()
// Artificially set b2.LastIconUpdate to NULL to verify handling of same. // Artificially set b2.LastIconUpdate to NULL to verify handling of same.
_, sqlErr := s.GetMasterX().Exec("UPDATE Bots SET LastIconUpdate = NULL WHERE UserId = '" + b2.UserId + "'") _, sqlErr := s.GetMasterX().Exec("UPDATE Bots SET LastIconUpdate = NULL WHERE UserId = '" + b2.UserId + "'")
@@ -132,7 +132,7 @@ func testBotStoreGetAll(t *testing.T, rctx request.CTX, ss store.Store, s SqlSto
deletedBot, err := ss.Bot().Update(deletedBot) deletedBot, err := ss.Bot().Update(deletedBot)
require.NoError(t, err) require.NoError(t, err)
defer func() { require.NoError(t, ss.Bot().PermanentDelete(deletedBot.UserId)) }() defer func() { require.NoError(t, ss.Bot().PermanentDelete(deletedBot.UserId)) }()
defer func() { require.NoError(t, ss.User().PermanentDelete(deletedBot.UserId)) }() defer func() { require.NoError(t, ss.User().PermanentDelete(rctx, deletedBot.UserId)) }()
permanentlyDeletedBot, _ := makeBotWithUser(t, rctx, ss, &model.Bot{ permanentlyDeletedBot, _ := makeBotWithUser(t, rctx, ss, &model.Bot{
Username: "permanently_deleted_bot", Username: "permanently_deleted_bot",
@@ -142,7 +142,7 @@ func testBotStoreGetAll(t *testing.T, rctx request.CTX, ss store.Store, s SqlSto
DeleteAt: 0, DeleteAt: 0,
}) })
require.NoError(t, ss.Bot().PermanentDelete(permanentlyDeletedBot.UserId)) require.NoError(t, ss.Bot().PermanentDelete(permanentlyDeletedBot.UserId))
defer func() { require.NoError(t, ss.User().PermanentDelete(permanentlyDeletedBot.UserId)) }() defer func() { require.NoError(t, ss.User().PermanentDelete(rctx, permanentlyDeletedBot.UserId)) }()
b1, _ := makeBotWithUser(t, rctx, ss, &model.Bot{ b1, _ := makeBotWithUser(t, rctx, ss, &model.Bot{
Username: "b1", Username: "b1",
@@ -151,7 +151,7 @@ func testBotStoreGetAll(t *testing.T, rctx request.CTX, ss store.Store, s SqlSto
LastIconUpdate: model.GetMillis(), LastIconUpdate: model.GetMillis(),
}) })
defer func() { require.NoError(t, ss.Bot().PermanentDelete(b1.UserId)) }() defer func() { require.NoError(t, ss.Bot().PermanentDelete(b1.UserId)) }()
defer func() { require.NoError(t, ss.User().PermanentDelete(b1.UserId)) }() defer func() { require.NoError(t, ss.User().PermanentDelete(rctx, b1.UserId)) }()
b2, _ := makeBotWithUser(t, rctx, ss, &model.Bot{ b2, _ := makeBotWithUser(t, rctx, ss, &model.Bot{
Username: "b2", Username: "b2",
@@ -160,7 +160,7 @@ func testBotStoreGetAll(t *testing.T, rctx request.CTX, ss store.Store, s SqlSto
LastIconUpdate: 0, LastIconUpdate: 0,
}) })
defer func() { require.NoError(t, ss.Bot().PermanentDelete(b2.UserId)) }() defer func() { require.NoError(t, ss.Bot().PermanentDelete(b2.UserId)) }()
defer func() { require.NoError(t, ss.User().PermanentDelete(b2.UserId)) }() defer func() { require.NoError(t, ss.User().PermanentDelete(rctx, b2.UserId)) }()
// Artificially set b2.LastIconUpdate to NULL to verify handling of same. // Artificially set b2.LastIconUpdate to NULL to verify handling of same.
_, sqlErr := s.GetMasterX().Exec("UPDATE Bots SET LastIconUpdate = NULL WHERE UserId = '" + b2.UserId + "'") _, sqlErr := s.GetMasterX().Exec("UPDATE Bots SET LastIconUpdate = NULL WHERE UserId = '" + b2.UserId + "'")
@@ -181,7 +181,7 @@ func testBotStoreGetAll(t *testing.T, rctx request.CTX, ss store.Store, s SqlSto
OwnerId: OwnerId1, OwnerId: OwnerId1,
}) })
defer func() { require.NoError(t, ss.Bot().PermanentDelete(b3.UserId)) }() defer func() { require.NoError(t, ss.Bot().PermanentDelete(b3.UserId)) }()
defer func() { require.NoError(t, ss.User().PermanentDelete(b3.UserId)) }() defer func() { require.NoError(t, ss.User().PermanentDelete(rctx, b3.UserId)) }()
b4, _ := makeBotWithUser(t, rctx, ss, &model.Bot{ b4, _ := makeBotWithUser(t, rctx, ss, &model.Bot{
Username: "b4", Username: "b4",
@@ -189,7 +189,7 @@ func testBotStoreGetAll(t *testing.T, rctx request.CTX, ss store.Store, s SqlSto
OwnerId: OwnerId2, OwnerId: OwnerId2,
}) })
defer func() { require.NoError(t, ss.Bot().PermanentDelete(b4.UserId)) }() defer func() { require.NoError(t, ss.Bot().PermanentDelete(b4.UserId)) }()
defer func() { require.NoError(t, ss.User().PermanentDelete(b4.UserId)) }() defer func() { require.NoError(t, ss.User().PermanentDelete(rctx, b4.UserId)) }()
deletedUser := model.User{ deletedUser := model.User{
Email: MakeEmail(), Email: MakeEmail(),
@@ -202,14 +202,14 @@ func testBotStoreGetAll(t *testing.T, rctx request.CTX, ss store.Store, s SqlSto
_, err2 := ss.User().Update(rctx, &deletedUser, true) _, err2 := ss.User().Update(rctx, &deletedUser, true)
require.NoError(t, err2, "couldn't delete user") require.NoError(t, err2, "couldn't delete user")
defer func() { require.NoError(t, ss.User().PermanentDelete(deletedUser.Id)) }() defer func() { require.NoError(t, ss.User().PermanentDelete(rctx, deletedUser.Id)) }()
ob5, _ := makeBotWithUser(t, rctx, ss, &model.Bot{ ob5, _ := makeBotWithUser(t, rctx, ss, &model.Bot{
Username: "ob5", Username: "ob5",
Description: "Orphaned bot 5", Description: "Orphaned bot 5",
OwnerId: deletedUser.Id, OwnerId: deletedUser.Id,
}) })
defer func() { require.NoError(t, ss.Bot().PermanentDelete(b4.UserId)) }() defer func() { require.NoError(t, ss.Bot().PermanentDelete(b4.UserId)) }()
defer func() { require.NoError(t, ss.User().PermanentDelete(b4.UserId)) }() defer func() { require.NoError(t, ss.User().PermanentDelete(rctx, b4.UserId)) }()
t.Run("get newly created bot stoo", func(t *testing.T) { t.Run("get newly created bot stoo", func(t *testing.T) {
bots, err := ss.Bot().GetAll(&model.BotGetOptions{Page: 0, PerPage: 10}) bots, err := ss.Bot().GetAll(&model.BotGetOptions{Page: 0, PerPage: 10})
@@ -335,7 +335,7 @@ func testBotStoreSave(t *testing.T, rctx request.CTX, ss store.Store) {
user, err := ss.User().Save(rctx, model.UserFromBot(bot)) user, err := ss.User().Save(rctx, model.UserFromBot(bot))
require.NoError(t, err) require.NoError(t, err)
defer func() { require.NoError(t, ss.User().PermanentDelete(user.Id)) }() defer func() { require.NoError(t, ss.User().PermanentDelete(rctx, user.Id)) }()
bot.UserId = user.Id bot.UserId = user.Id
returnedNewBot, nErr := ss.Bot().Save(bot) returnedNewBot, nErr := ss.Bot().Save(bot)
@@ -366,7 +366,7 @@ func testBotStoreUpdate(t *testing.T, rctx request.CTX, ss store.Store) {
OwnerId: model.NewId(), OwnerId: model.NewId(),
}) })
defer func() { require.NoError(t, ss.Bot().PermanentDelete(existingBot.UserId)) }() defer func() { require.NoError(t, ss.Bot().PermanentDelete(existingBot.UserId)) }()
defer func() { require.NoError(t, ss.User().PermanentDelete(existingBot.UserId)) }() defer func() { require.NoError(t, ss.User().PermanentDelete(rctx, existingBot.UserId)) }()
bot := existingBot.Clone() bot := existingBot.Clone()
bot.Username = "invalid username" bot.Username = "invalid username"
@@ -383,7 +383,7 @@ func testBotStoreUpdate(t *testing.T, rctx request.CTX, ss store.Store) {
OwnerId: model.NewId(), OwnerId: model.NewId(),
}) })
defer func() { require.NoError(t, ss.Bot().PermanentDelete(existingBot.UserId)) }() defer func() { require.NoError(t, ss.Bot().PermanentDelete(existingBot.UserId)) }()
defer func() { require.NoError(t, ss.User().PermanentDelete(existingBot.UserId)) }() defer func() { require.NoError(t, ss.User().PermanentDelete(rctx, existingBot.UserId)) }()
bot := existingBot.Clone() bot := existingBot.Clone()
bot.OwnerId = model.NewId() bot.OwnerId = model.NewId()
@@ -418,7 +418,7 @@ func testBotStoreUpdate(t *testing.T, rctx request.CTX, ss store.Store) {
OwnerId: model.NewId(), OwnerId: model.NewId(),
}) })
defer func() { require.NoError(t, ss.Bot().PermanentDelete(existingBot.UserId)) }() defer func() { require.NoError(t, ss.Bot().PermanentDelete(existingBot.UserId)) }()
defer func() { require.NoError(t, ss.User().PermanentDelete(existingBot.UserId)) }() defer func() { require.NoError(t, ss.User().PermanentDelete(rctx, existingBot.UserId)) }()
existingBot.DeleteAt = 100000 existingBot.DeleteAt = 100000
existingBot, err := ss.Bot().Update(existingBot) existingBot, err := ss.Bot().Update(existingBot)
@@ -447,14 +447,14 @@ func testBotStorePermanentDelete(t *testing.T, rctx request.CTX, ss store.Store)
OwnerId: model.NewId(), OwnerId: model.NewId(),
}) })
defer func() { require.NoError(t, ss.Bot().PermanentDelete(b1.UserId)) }() defer func() { require.NoError(t, ss.Bot().PermanentDelete(b1.UserId)) }()
defer func() { require.NoError(t, ss.User().PermanentDelete(b1.UserId)) }() defer func() { require.NoError(t, ss.User().PermanentDelete(rctx, b1.UserId)) }()
b2, _ := makeBotWithUser(t, rctx, ss, &model.Bot{ b2, _ := makeBotWithUser(t, rctx, ss, &model.Bot{
Username: "b2", Username: "b2",
OwnerId: model.NewId(), OwnerId: model.NewId(),
}) })
defer func() { require.NoError(t, ss.Bot().PermanentDelete(b2.UserId)) }() defer func() { require.NoError(t, ss.Bot().PermanentDelete(b2.UserId)) }()
defer func() { require.NoError(t, ss.User().PermanentDelete(b2.UserId)) }() defer func() { require.NoError(t, ss.User().PermanentDelete(rctx, b2.UserId)) }()
t.Run("permanently delete a non-existent bot", func(t *testing.T) { t.Run("permanently delete a non-existent bot", func(t *testing.T) {
err := ss.Bot().PermanentDelete("unknown") err := ss.Bot().PermanentDelete("unknown")

Просмотреть файл

@@ -2182,7 +2182,7 @@ func testClearSidebarOnTeamLeave(t *testing.T, rctx request.CTX, ss store.Store,
func testDeleteSidebarCategory(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) { func testDeleteSidebarCategory(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
t.Run("should correctly remove an empty category", func(t *testing.T) { t.Run("should correctly remove an empty category", func(t *testing.T) {
userId, teamId := setupInitialSidebarCategories(t, rctx, ss) userId, teamId := setupInitialSidebarCategories(t, rctx, ss)
defer ss.User().PermanentDelete(userId) defer ss.User().PermanentDelete(rctx, userId)
newCategory, err := ss.Channel().CreateSidebarCategory(userId, teamId, &model.SidebarCategoryWithChannels{}) newCategory, err := ss.Channel().CreateSidebarCategory(userId, teamId, &model.SidebarCategoryWithChannels{})
require.NoError(t, err) require.NoError(t, err)
@@ -2204,7 +2204,7 @@ func testDeleteSidebarCategory(t *testing.T, rctx request.CTX, ss store.Store, s
t.Run("should correctly remove a category and its channels", func(t *testing.T) { t.Run("should correctly remove a category and its channels", func(t *testing.T) {
userId, teamId := setupInitialSidebarCategories(t, rctx, ss) userId, teamId := setupInitialSidebarCategories(t, rctx, ss)
defer ss.User().PermanentDelete(userId) defer ss.User().PermanentDelete(rctx, userId)
user := &model.User{ user := &model.User{
Id: userId, Id: userId,
@@ -2272,7 +2272,7 @@ func testDeleteSidebarCategory(t *testing.T, rctx request.CTX, ss store.Store, s
t.Run("should not allow you to remove non-custom categories", func(t *testing.T) { t.Run("should not allow you to remove non-custom categories", func(t *testing.T) {
userId, teamId := setupInitialSidebarCategories(t, rctx, ss) userId, teamId := setupInitialSidebarCategories(t, rctx, ss)
defer ss.User().PermanentDelete(userId) defer ss.User().PermanentDelete(rctx, userId)
res, err := ss.Channel().GetSidebarCategoriesForTeamForUser(userId, teamId) res, err := ss.Channel().GetSidebarCategoriesForTeamForUser(userId, teamId)
require.NoError(t, err) require.NoError(t, err)
require.Len(t, res.Categories, 3) require.Len(t, res.Categories, 3)

Просмотреть файл

@@ -21,7 +21,7 @@ func cleanupStoreState(t *testing.T, rctx request.CTX, ss store.Store) {
allUsers, err := ss.User().GetAll() allUsers, err := ss.User().GetAll()
require.NoError(t, err, "error cleaning all test users", err) require.NoError(t, err, "error cleaning all test users", err)
for _, u := range allUsers { for _, u := range allUsers {
err = ss.User().PermanentDelete(u.Id) err = ss.User().PermanentDelete(rctx, u.Id)
require.NoError(t, err, "failed cleaning up test user %s", u.Username) require.NoError(t, err, "failed cleaning up test user %s", u.Username)
//remove all posts by this user //remove all posts by this user

Просмотреть файл

@@ -5350,8 +5350,8 @@ func groupTestDistinctGroupMemberCountForSource(t *testing.T, rctx request.CTX,
ss.Group().Delete(customGroup.Id) ss.Group().Delete(customGroup.Id)
ss.Group().Delete(ldapGroup.Id) ss.Group().Delete(ldapGroup.Id)
ss.User().PermanentDelete(user1.Id) ss.User().PermanentDelete(rctx, user1.Id)
ss.User().PermanentDelete(user2.Id) ss.User().PermanentDelete(rctx, user2.Id)
}() }()
customGroupCount, err := ss.Group().DistinctGroupMemberCountForSource(model.GroupSourceCustom) customGroupCount, err := ss.Group().DistinctGroupMemberCountForSource(model.GroupSourceCustom)

Просмотреть файл

@@ -1544,17 +1544,17 @@ func (_m *UserStore) IsEmpty(excludeBots bool) (bool, error) {
return r0, r1 return r0, r1
} }
// PermanentDelete provides a mock function with given fields: userID // PermanentDelete provides a mock function with given fields: rctx, userID
func (_m *UserStore) PermanentDelete(userID string) error { func (_m *UserStore) PermanentDelete(rctx request.CTX, userID string) error {
ret := _m.Called(userID) ret := _m.Called(rctx, userID)
if len(ret) == 0 { if len(ret) == 0 {
panic("no return value specified for PermanentDelete") panic("no return value specified for PermanentDelete")
} }
var r0 error var r0 error
if rf, ok := ret.Get(0).(func(string) error); ok { if rf, ok := ret.Get(0).(func(request.CTX, string) error); ok {
r0 = rf(userID) r0 = rf(rctx, userID)
} else { } else {
r0 = ret.Error(0) r0 = ret.Error(0)
} }

Просмотреть файл

@@ -2895,7 +2895,7 @@ func testSaveTeamMemberMaxMembers(t *testing.T, rctx request.CTX, ss store.Store
userIds[i] = user.Id userIds[i] = user.Id
defer func(userId string) { defer func(userId string) {
ss.User().PermanentDelete(userId) ss.User().PermanentDelete(rctx, userId)
}(userIds[i]) }(userIds[i])
_, nErr := ss.Team().SaveMember(rctx, &model.TeamMember{ _, nErr := ss.Team().SaveMember(rctx, &model.TeamMember{
@@ -2920,7 +2920,7 @@ func testSaveTeamMemberMaxMembers(t *testing.T, rctx request.CTX, ss store.Store
require.NoError(t, nErr) require.NoError(t, nErr)
newUserId := user.Id newUserId := user.Id
defer func() { defer func() {
ss.User().PermanentDelete(newUserId) ss.User().PermanentDelete(rctx, newUserId)
}() }()
_, nErr = ss.Team().SaveMember(rctx, &model.TeamMember{ _, nErr = ss.Team().SaveMember(rctx, &model.TeamMember{

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@@ -11036,10 +11036,10 @@ func (s *TimerLayerUserStore) IsEmpty(excludeBots bool) (bool, error) {
return result, err return result, err
} }
func (s *TimerLayerUserStore) PermanentDelete(userID string) error { func (s *TimerLayerUserStore) PermanentDelete(rctx request.CTX, userID string) error {
start := time.Now() start := time.Now()
err := s.UserStore.PermanentDelete(userID) err := s.UserStore.PermanentDelete(rctx, userID)
elapsed := float64(time.Since(start)) / float64(time.Second) elapsed := float64(time.Since(start)) / float64(time.Second)
if s.Root.Metrics != nil { if s.Root.Metrics != nil {