From ecefa6cdd1e7376046bbec82c1b47f7756fea646 Mon Sep 17 00:00:00 2001 From: Daniel Schalla Date: Mon, 25 Jun 2018 18:12:59 +0200 Subject: Implementation of File Exists Function; Delete FileInfos upon Permanent User Delete (#8958) Check if file was deleted on FS Warning message if file couldnt be removed --- app/user.go | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'app/user.go') diff --git a/app/user.go b/app/user.go index 27e6f347d..b00ef19ef 100644 --- a/app/user.go +++ b/app/user.go @@ -1288,6 +1288,33 @@ func (a *App) PermanentDeleteUser(user *model.User) *model.AppError { return result.Err } + fchan := a.Srv.Store.FileInfo().GetForUser(user.Id) + var infos []*model.FileInfo + if result := <-fchan; result.Err != nil { + mlog.Warn("Error getting file list for user from FileInfoStore") + } else { + infos = result.Data.([]*model.FileInfo) + for _, info := range infos { + res, err := a.FileExists(info.Path) + + if err != nil { + mlog.Warn(fmt.Sprintf("Error checking existence of file '%s': %s", info.Path, err)) + continue + } + + if res { + a.RemoveFile(info.Path) + } else { + mlog.Warn(fmt.Sprintf("Unable to remove file '%s': %s", info.Path, err)) + } + + } + } + + if result := <-a.Srv.Store.FileInfo().PermanentDeleteByUser(user.Id); result.Err != nil { + return result.Err + } + if result := <-a.Srv.Store.User().PermanentDelete(user.Id); result.Err != nil { return result.Err } -- cgit v1.2.3-1-g7c22