Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move user/org deletion to services #17673

Merged
merged 11 commits into from
Nov 18, 2021
Prev Previous commit
Next Next commit
Merge branch 'main' of https://github.com/go-gitea/gitea into refacto…
…r-delete
  • Loading branch information
KN4CK3R committed Nov 18, 2021
commit 2a3f7f79d511fbe5807c8239a212568b2d57217a
1 change: 1 addition & 0 deletions cmd/admin.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ import (
"code.gitea.io/gitea/modules/storage"
auth_service "code.gitea.io/gitea/services/auth"
"code.gitea.io/gitea/services/auth/source/oauth2"
repo_service "code.gitea.io/gitea/services/repository"
user_service "code.gitea.io/gitea/services/user"

"github.com/urfave/cli"
Expand Down
3 changes: 1 addition & 2 deletions models/admin/notice.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,7 @@ func CreateNotice(ctx context.Context, tp NoticeType, desc string, args ...inter
Type: tp,
Description: desc,
}
_, err := db.GetEngine(ctx).Insert(n)
return err
return db.Insert(ctx, n)
}

// CreateRepositoryNotice creates new system notice with type NoticeRepository.
Expand Down
2 changes: 1 addition & 1 deletion models/consistency.go
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ func DeleteOrphanedIssues() error {

// Remove issue attachment files.
for i := range attachmentPaths {
RemoveAllWithNotice(db.DefaultContext, "Delete issue attachment", attachmentPaths[i])
admin_model.RemoveAllWithNotice(db.DefaultContext, "Delete issue attachment", attachmentPaths[i])
}
return nil
}
Expand Down
16 changes: 8 additions & 8 deletions models/repo.go
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ func NewRepoContext() {
loadRepoConfig()
unit.LoadUnitConfig()

RemoveAllWithNotice(db.DefaultContext, "Clean up repository temporary data", filepath.Join(setting.AppDataPath, "tmp"))
admin_model.RemoveAllWithNotice(db.DefaultContext, "Clean up repository temporary data", filepath.Join(setting.AppDataPath, "tmp"))
}

// RepositoryStatus defines the status of repository
Expand Down Expand Up @@ -1649,36 +1649,36 @@ func DeleteRepository(doer *User, uid, repoID int64) error {

// Remove repository files.
repoPath := repo.RepoPath()
RemoveAllWithNotice(db.DefaultContext, "Delete repository files", repoPath)
admin_model.RemoveAllWithNotice(db.DefaultContext, "Delete repository files", repoPath)

// Remove wiki files
if repo.HasWiki() {
RemoveAllWithNotice(db.DefaultContext, "Delete repository wiki", repo.WikiPath())
admin_model.RemoveAllWithNotice(db.DefaultContext, "Delete repository wiki", repo.WikiPath())
}

// Remove archives
for i := range archivePaths {
RemoveStorageWithNotice(db.DefaultContext, storage.RepoArchives, "Delete repo archive file", archivePaths[i])
admin_model.RemoveStorageWithNotice(db.DefaultContext, storage.RepoArchives, "Delete repo archive file", archivePaths[i])
}

// Remove lfs objects
for i := range lfsPaths {
RemoveStorageWithNotice(db.DefaultContext, storage.LFS, "Delete orphaned LFS file", lfsPaths[i])
admin_model.RemoveStorageWithNotice(db.DefaultContext, storage.LFS, "Delete orphaned LFS file", lfsPaths[i])
}

// Remove issue attachment files.
for i := range attachmentPaths {
RemoveStorageWithNotice(db.DefaultContext, storage.Attachments, "Delete issue attachment", attachmentPaths[i])
admin_model.RemoveStorageWithNotice(db.DefaultContext, storage.Attachments, "Delete issue attachment", attachmentPaths[i])
}

// Remove release attachment files.
for i := range releaseAttachments {
RemoveStorageWithNotice(db.DefaultContext, storage.Attachments, "Delete release attachment", releaseAttachments[i])
admin_model.RemoveStorageWithNotice(db.DefaultContext, storage.Attachments, "Delete release attachment", releaseAttachments[i])
}

// Remove attachment with no issue_id and release_id.
for i := range newAttachmentPaths {
RemoveStorageWithNotice(db.DefaultContext, storage.Attachments, "Delete issue attachment", attachmentPaths[i])
admin_model.RemoveStorageWithNotice(db.DefaultContext, storage.Attachments, "Delete issue attachment", attachmentPaths[i])
}

if len(repo.Avatar) > 0 {
Expand Down
1 change: 0 additions & 1 deletion models/user.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ import (

_ "image/jpeg" // Needed for jpeg support

admin_model "code.gitea.io/gitea/models/admin"
"code.gitea.io/gitea/models/db"
"code.gitea.io/gitea/models/login"
"code.gitea.io/gitea/models/unit"
Expand Down
6 changes: 3 additions & 3 deletions services/cron/tasks.go
Original file line number Diff line number Diff line change
Expand Up @@ -90,18 +90,18 @@ func (t *Task) RunWithUser(doer *models.User, config Config) {
if err := t.fun(ctx, doer, config); err != nil {
if db.IsErrCancelled(err) {
message := err.(db.ErrCancelled).Message
if err := models.CreateNotice(ctx, models.NoticeTask, config.FormatMessage(t.Name, "aborted", doer, message)); err != nil {
if err := admin_model.CreateNotice(ctx, admin_model.NoticeTask, config.FormatMessage(t.Name, "aborted", doer, message)); err != nil {
lunny marked this conversation as resolved.
Show resolved Hide resolved
log.Error("CreateNotice: %v", err)
}
return
}
if err := models.CreateNotice(ctx, models.NoticeTask, config.FormatMessage(t.Name, "error", doer, err)); err != nil {
if err := admin_model.CreateNotice(ctx, admin_model.NoticeTask, config.FormatMessage(t.Name, "error", doer, err)); err != nil {
log.Error("CreateNotice: %v", err)
}
return
}
if config.DoNoticeOnSuccess() {
if err := models.CreateNotice(ctx, models.NoticeTask, config.FormatMessage(t.Name, "finished", doer)); err != nil {
if err := admin_model.CreateNotice(ctx, admin_model.NoticeTask, config.FormatMessage(t.Name, "finished", doer)); err != nil {
log.Error("CreateNotice: %v", err)
}
}
Expand Down
5 changes: 3 additions & 2 deletions services/user/user.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import (
"time"

"code.gitea.io/gitea/models"
admin_model "code.gitea.io/gitea/models/admin"
"code.gitea.io/gitea/models/db"
user_model "code.gitea.io/gitea/models/user"
"code.gitea.io/gitea/modules/storage"
Expand Down Expand Up @@ -58,15 +59,15 @@ func DeleteUser(u *models.User) error {
path := models.UserPath(u.Name)
if err := util.RemoveAll(path); err != nil {
err = fmt.Errorf("Failed to RemoveAll %s: %v", path, err)
_ = models.CreateNotice(ctx, models.NoticeTask, fmt.Sprintf("delete user '%s': %v", u.Name, err))
_ = admin_model.CreateNotice(ctx, admin_model.NoticeTask, fmt.Sprintf("delete user '%s': %v", u.Name, err))
return err
}

if len(u.Avatar) > 0 {
avatarPath := u.CustomAvatarRelativePath()
if err := storage.Avatars.Delete(avatarPath); err != nil {
err = fmt.Errorf("Failed to remove %s: %v", avatarPath, err)
_ = models.CreateNotice(ctx, models.NoticeTask, fmt.Sprintf("delete user '%s': %v", u.Name, err))
_ = admin_model.CreateNotice(ctx, admin_model.NoticeTask, fmt.Sprintf("delete user '%s': %v", u.Name, err))
return err
}
}
Expand Down
3 changes: 2 additions & 1 deletion services/wiki/wiki.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import (
"strings"

"code.gitea.io/gitea/models"
admin_model "code.gitea.io/gitea/models/admin"
"code.gitea.io/gitea/models/db"
"code.gitea.io/gitea/models/unit"
"code.gitea.io/gitea/modules/git"
Expand Down Expand Up @@ -375,6 +376,6 @@ func DeleteWiki(repo *models.Repository) error {
return err
}

models.RemoveAllWithNotice(db.DefaultContext, "Delete repository wiki", repo.WikiPath())
admin_model.RemoveAllWithNotice(db.DefaultContext, "Delete repository wiki", repo.WikiPath())
return nil
}
You are viewing a condensed version of this merge commit. You can view the full changes here.