浏览代码

[server] Remove existing scheduledDelete entries if account is recovered

Neeraj Gupta 1 年之前
父节点
当前提交
830483ca68
共有 1 个文件被更改,包括 8 次插入1 次删除
  1. 8 1
      server/pkg/controller/data_cleanup/controller.go

+ 8 - 1
server/pkg/controller/data_cleanup/controller.go

@@ -190,8 +190,15 @@ func (c *DeleteUserCleanupController) storageCheck(ctx context.Context, item *en
 }
 
 func (c *DeleteUserCleanupController) isDeleted(item *entity.DataCleanup) error {
-	_, err := c.UserRepo.Get(item.UserID)
+	u, err := c.UserRepo.Get(item.UserID)
 	if err == nil {
+		// user is not deleted, double check by verifying email is not empty
+		if u.Email != "" {
+			remErr := c.Repo.RemoveScheduledDelete(context.Background(), item.UserID)
+			if remErr != nil {
+				return stacktrace.Propagate(remErr, "failed to remove scheduled delete entry")
+			}
+		}
 		return stacktrace.Propagate(ente.NewBadRequestWithMessage("User ID is linked to undeleted account"), "")
 	}
 	if !errors.Is(err, ente.ErrUserDeleted) {