mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-29 18:44:46 +01:00 
			
		
		
		
	When transferring ownership of a repo to a different user/org, create a repo redirect that points to the new location in the same way that is done when a repo is renamed. Signed-off-by: James E. Blair <jeblair@redhat.com>
This commit is contained in:
		
							parent
							
								
									525f03306f
								
							
						
					
					
						commit
						48c101affe
					
				| @ -204,7 +204,7 @@ func RedirectToRepo(ctx *Context, redirectRepoID int64) { | ||||
| 	redirectPath := strings.Replace( | ||||
| 		ctx.Req.URL.Path, | ||||
| 		fmt.Sprintf("%s/%s", ownerName, previousRepoName), | ||||
| 		fmt.Sprintf("%s/%s", ownerName, repo.Name), | ||||
| 		fmt.Sprintf("%s/%s", repo.MustOwnerName(), repo.Name), | ||||
| 		1, | ||||
| 	) | ||||
| 	ctx.Redirect(redirectPath) | ||||
|  | ||||
| @ -321,6 +321,7 @@ func SettingsPost(ctx *context.Context, form auth.RepoSettingForm) { | ||||
| 			return | ||||
| 		} | ||||
| 
 | ||||
| 		oldOwnerID := ctx.Repo.Owner.ID | ||||
| 		if err = models.TransferOwnership(ctx.User, newOwner, repo); err != nil { | ||||
| 			if models.IsErrRepoAlreadyExist(err) { | ||||
| 				ctx.RenderWithErr(ctx.Tr("repo.settings.new_owner_has_same_repo"), tplSettingsOptions, nil) | ||||
| @ -329,6 +330,13 @@ func SettingsPost(ctx *context.Context, form auth.RepoSettingForm) { | ||||
| 			} | ||||
| 			return | ||||
| 		} | ||||
| 
 | ||||
| 		err = models.NewRepoRedirect(oldOwnerID, repo.ID, repo.Name, repo.Name) | ||||
| 		if err != nil { | ||||
| 			ctx.ServerError("NewRepoRedirect", err) | ||||
| 			return | ||||
| 		} | ||||
| 
 | ||||
| 		log.Trace("Repository transferred: %s/%s -> %s", ctx.Repo.Owner.Name, repo.Name, newOwner) | ||||
| 		ctx.Flash.Success(ctx.Tr("repo.settings.transfer_succeed")) | ||||
| 		ctx.Redirect(setting.AppSubURL + "/" + newOwner + "/" + repo.Name) | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user