diff --git a/app/user.go b/app/user.go index b9f90bb28b..680189aedf 100644 --- a/app/user.go +++ b/app/user.go @@ -1426,6 +1426,10 @@ func (a *App) PermanentDeleteUser(user *model.User) *model.AppError { return err } + if err := a.Srv.Store.Bot().PermanentDelete(user.Id); err != nil { + return err + } + infos, err := a.Srv.Store.FileInfo().GetForUser(user.Id) if err != nil { mlog.Warn("Error getting file list for user from FileInfoStore") diff --git a/app/user_test.go b/app/user_test.go index dc001bb0e5..ce0006e3b0 100644 --- a/app/user_test.go +++ b/app/user_test.go @@ -636,6 +636,32 @@ func TestPermanentDeleteUser(t *testing.T) { t.Fatal("Unable to upload file") } + bot, err := th.App.CreateBot(&model.Bot{ + Username: "botname", + Description: "a bot", + OwnerId: model.NewId(), + }) + assert.Nil(t, err) + + var bots1 []*model.Bot + var bots2 []*model.Bot + + sqlSupplier := mainHelper.GetSqlSupplier() + _, err1 := sqlSupplier.GetMaster().Select(&bots1, "SELECT * FROM Bots") + assert.Nil(t, err1) + assert.Equal(t, 1, len(bots1)) + + // test that bot is deleted from bots table + retUser1, err := th.App.GetUser(bot.UserId) + assert.Nil(t, err) + + err = th.App.PermanentDeleteUser(retUser1) + assert.Nil(t, err) + + _, err1 = sqlSupplier.GetMaster().Select(&bots2, "SELECT * FROM Bots") + assert.Nil(t, err1) + assert.Equal(t, 0, len(bots2)) + err = th.App.PermanentDeleteUser(th.BasicUser) if err != nil { t.Log(err)