fix: transfer repository do not need pending status

This commit is contained in:
yystopf 2022-01-25 14:27:58 +08:00
parent 7f2637a342
commit 022dadadef
1 changed files with 19 additions and 17 deletions

View File

@ -92,30 +92,32 @@ func StartRepositoryTransfer(doer, newOwner *models.User, repo *models.Repositor
if allowed { if allowed {
return TransferOwnership(doer, newOwner, repo, teams) return TransferOwnership(doer, newOwner, repo, teams)
} }
} else {
return TransferOwnership(doer, newOwner, repo, teams)
} }
// In case the new owner would not have sufficient access to the repo, give access rights for read // In case the new owner would not have sufficient access to the repo, give access rights for read
hasAccess, err := models.HasAccess(newOwner.ID, repo) // hasAccess, err := models.HasAccess(newOwner.ID, repo)
if err != nil { // if err != nil {
return err // return err
} // }
if !hasAccess { // if !hasAccess {
if err := repo.AddCollaborator(newOwner); err != nil { // if err := repo.AddCollaborator(newOwner); err != nil {
return err // return err
} // }
if err := repo.ChangeCollaborationAccessMode(newOwner.ID, models.AccessModeRead); err != nil { // if err := repo.ChangeCollaborationAccessMode(newOwner.ID, models.AccessModeRead); err != nil {
return err // return err
} // }
} // }
// Make repo as pending for transfer // Make repo as pending for transfer
repo.Status = models.RepositoryPendingTransfer // repo.Status = models.RepositoryPendingTransfer
if err := models.CreatePendingRepositoryTransfer(doer, newOwner, repo.ID, teams); err != nil { // if err := models.CreatePendingRepositoryTransfer(doer, newOwner, repo.ID, teams); err != nil {
return err // return err
} // }
// notify users who are able to accept / reject transfer // notify users who are able to accept / reject transfer
notification.NotifyRepoPendingTransfer(doer, newOwner, repo) // notification.NotifyRepoPendingTransfer(doer, newOwner, repo)
return nil return nil
} }