mirror of
https://github.com/go-gitea/gitea
synced 2025-07-22 18:28:37 +00:00
Repository transfer has to be confirmed, if user can not create repo for new owner (#14792)
* make repo as "pending transfer" if on transfer start doer has no right to create repo in new destination * if new pending transfer ocured, create UI & Mail notifications
This commit is contained in:
@@ -57,4 +57,6 @@ type Notifier interface {
|
||||
NotifySyncPushCommits(pusher *models.User, repo *models.Repository, opts *repository.PushUpdateOptions, commits *repository.PushCommits)
|
||||
NotifySyncCreateRef(doer *models.User, repo *models.Repository, refType, refFullName string)
|
||||
NotifySyncDeleteRef(doer *models.User, repo *models.Repository, refType, refFullName string)
|
||||
|
||||
NotifyRepoPendingTransfer(doer, newOwner *models.User, repo *models.Repository)
|
||||
}
|
||||
|
@@ -166,3 +166,7 @@ func (*NullNotifier) NotifySyncCreateRef(doer *models.User, repo *models.Reposit
|
||||
// NotifySyncDeleteRef places a place holder function
|
||||
func (*NullNotifier) NotifySyncDeleteRef(doer *models.User, repo *models.Repository, refType, refFullName string) {
|
||||
}
|
||||
|
||||
// NotifyRepoPendingTransfer places a place holder function
|
||||
func (*NullNotifier) NotifyRepoPendingTransfer(doer, newOwner *models.User, repo *models.Repository) {
|
||||
}
|
||||
|
@@ -170,3 +170,9 @@ func (m *mailNotifier) NotifyNewRelease(rel *models.Release) {
|
||||
|
||||
mailer.MailNewRelease(rel)
|
||||
}
|
||||
|
||||
func (m *mailNotifier) NotifyRepoPendingTransfer(doer, newOwner *models.User, repo *models.Repository) {
|
||||
if err := mailer.SendRepoTransferNotifyMail(doer, newOwner, repo); err != nil {
|
||||
log.Error("NotifyRepoPendingTransfer: %v", err)
|
||||
}
|
||||
}
|
||||
|
@@ -290,3 +290,10 @@ func NotifySyncDeleteRef(pusher *models.User, repo *models.Repository, refType,
|
||||
notifier.NotifySyncDeleteRef(pusher, repo, refType, refFullName)
|
||||
}
|
||||
}
|
||||
|
||||
// NotifyRepoPendingTransfer notifies creation of pending transfer to notifiers
|
||||
func NotifyRepoPendingTransfer(doer, newOwner *models.User, repo *models.Repository) {
|
||||
for _, notifier := range notifiers {
|
||||
notifier.NotifyRepoPendingTransfer(doer, newOwner, repo)
|
||||
}
|
||||
}
|
||||
|
@@ -201,3 +201,9 @@ func (ns *notificationService) NotifyPullReviewRequest(doer *models.User, issue
|
||||
_ = ns.issueQueue.Push(opts)
|
||||
}
|
||||
}
|
||||
|
||||
func (ns *notificationService) NotifyRepoPendingTransfer(doer, newOwner *models.User, repo *models.Repository) {
|
||||
if err := models.CreateRepoTransferNotification(doer, newOwner, repo); err != nil {
|
||||
log.Error("NotifyRepoPendingTransfer: %v", err)
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user