From 66913993cd0b215949d3aa91ce1191376e6d51f7 Mon Sep 17 00:00:00 2001 From: chenyifan01 Date: Wed, 19 Jan 2022 16:24:11 +0800 Subject: [PATCH] #1392 fix bug --- modules/notification/action/action.go | 16 ++++++++++++++++ modules/notification/base/notifier.go | 1 + modules/notification/base/null.go | 4 ++++ routers/repo/setting.go | 7 +++++++ services/repository/transfer.go | 4 ++-- 5 files changed, 30 insertions(+), 2 deletions(-) diff --git a/modules/notification/action/action.go b/modules/notification/action/action.go index 9956940f3..4bc296657 100644 --- a/modules/notification/action/action.go +++ b/modules/notification/action/action.go @@ -154,6 +154,22 @@ func (a *actionNotifier) NotifyRenameRepository(doer *models.User, repo *models. } } +func (a *actionNotifier) NotifyAliasRepository(doer *models.User, repo *models.Repository, oldAlias string) { + log.Trace("action.ChangeRepositoryAlias: %s/%s", doer.Name, repo.Alias) + + if err := models.NotifyWatchers(&models.Action{ + ActUserID: doer.ID, + ActUser: doer, + OpType: models.ActionRenameRepo, + RepoID: repo.ID, + Repo: repo, + IsPrivate: repo.IsPrivate, + Content: oldAlias, + }); err != nil { + log.Error("NotifyWatchers: %v", err) + } +} + func (a *actionNotifier) NotifyTransferRepository(doer *models.User, repo *models.Repository, oldOwnerName string) { if err := models.NotifyWatchers(&models.Action{ ActUserID: doer.ID, diff --git a/modules/notification/base/notifier.go b/modules/notification/base/notifier.go index 0b3e1173b..8325f710c 100644 --- a/modules/notification/base/notifier.go +++ b/modules/notification/base/notifier.go @@ -18,6 +18,7 @@ type Notifier interface { NotifyDeleteRepository(doer *models.User, repo *models.Repository) NotifyForkRepository(doer *models.User, oldRepo, repo *models.Repository) NotifyRenameRepository(doer *models.User, repo *models.Repository, oldRepoName string) + NotifyAliasRepository(doer *models.User, repo *models.Repository, oldAlias string) NotifyTransferRepository(doer *models.User, repo *models.Repository, oldOwnerName string) NotifyNewIssue(*models.Issue) diff --git a/modules/notification/base/null.go b/modules/notification/base/null.go index d2fd51d71..a74c47980 100644 --- a/modules/notification/base/null.go +++ b/modules/notification/base/null.go @@ -135,6 +135,10 @@ func (*NullNotifier) NotifyDeleteRef(doer *models.User, repo *models.Repository, func (*NullNotifier) NotifyRenameRepository(doer *models.User, repo *models.Repository, oldRepoName string) { } +func (a *NullNotifier) NotifyAliasRepository(doer *models.User, repo *models.Repository, oldAlias string) { + +} + // NotifyTransferRepository places a place holder function func (*NullNotifier) NotifyTransferRepository(doer *models.User, repo *models.Repository, oldOwnerName string) { } diff --git a/routers/repo/setting.go b/routers/repo/setting.go index 72bdbfa68..5b057dbe5 100644 --- a/routers/repo/setting.go +++ b/routers/repo/setting.go @@ -6,6 +6,7 @@ package repo import ( + "code.gitea.io/gitea/modules/notification" "errors" "fmt" "io/ioutil" @@ -71,8 +72,10 @@ func SettingsPost(ctx *context.Context, form auth.RepoSettingForm) { } newAlias := form.Alias + var aliasChanged = false // Check if repository alias has been changed. if strings.ToLower(repo.Alias) != strings.ToLower(newAlias) { + aliasChanged = true //check new alias is available or not if err := models.IsRepositoryAliasAvailable(ctx.Repo.Owner, newAlias); err != nil { ctx.Data["Err_Alias"] = true @@ -117,6 +120,10 @@ func SettingsPost(ctx *context.Context, form auth.RepoSettingForm) { log.Trace("Repository name changed: %s/%s -> %s", ctx.Repo.Owner.Name, repo.Name, newRepoName) } + //notify + if aliasChanged { + notification.NotifyRenameRepository(ctx.Repo.Owner, repo, repo.Alias) + } // In case it's just a case change. repo.Name = newRepoName diff --git a/services/repository/transfer.go b/services/repository/transfer.go index d34c812b8..0173f81d1 100644 --- a/services/repository/transfer.go +++ b/services/repository/transfer.go @@ -55,7 +55,7 @@ func TransferOwnership(doer, newOwner *models.User, repo *models.Repository, tea // ChangeRepositoryName changes all corresponding setting from old repository name to new one. func ChangeRepositoryName(doer *models.User, repo *models.Repository, newRepoName string) error { - oldRepoName := repo.Name + //oldRepoName := repo.Name // Change repository directory name. We must lock the local copy of the // repo so that we can atomically rename the repo path and updates the @@ -68,7 +68,7 @@ func ChangeRepositoryName(doer *models.User, repo *models.Repository, newRepoNam } repoWorkingPool.CheckOut(com.ToStr(repo.ID)) - notification.NotifyRenameRepository(doer, repo, oldRepoName) + //notification.NotifyRenameRepository(doer, repo, oldRepoName) return nil }