|
|
|
@ -670,6 +670,19 @@ func TransferOwnership(u *User, newOwner string, repo *Repository) error {
|
|
|
|
|
return err |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Remove redundant collaborators
|
|
|
|
|
collaborators, err := repo.GetCollaborators() |
|
|
|
|
if err != nil { |
|
|
|
|
return err |
|
|
|
|
} |
|
|
|
|
for _, c := range collaborators { |
|
|
|
|
if c.Id == newUser.Id || newUser.IsOrgMember(c.Id) { |
|
|
|
|
if _, err = sess.Delete(&Collaboration{RepoID: repo.Id, UserID: c.Id}); err != nil { |
|
|
|
|
return err |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Update user repository number.
|
|
|
|
|
if _, err = sess.Exec("UPDATE `user` SET num_repos = num_repos + 1 WHERE id = ?", newUser.Id); err != nil { |
|
|
|
|
return err |
|
|
|
@ -778,6 +791,8 @@ func DeleteRepository(uid, repoId int64, userName string) error {
|
|
|
|
|
return err |
|
|
|
|
} else if _, err = sess.Delete(&Release{RepoId: repoId}); err != nil { |
|
|
|
|
return err |
|
|
|
|
} else if _, err = sess.Delete(&Collaboration{RepoID: repoId}); err != nil { |
|
|
|
|
return err |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Delete comments.
|
|
|
|
|