mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 16:40:24 +08:00 
			
		
		
		
	Redirect to new repository owner (#21398)
Fixes #17655 If you rename `user1` to `user2` and visit `/user1` you get redirected to `/user2`. But if you visit `/user1/repo` you just get a 404 error. With this PR the user is redirected to `/user2/repo`.
This commit is contained in:
		@@ -451,11 +451,20 @@ func RepoAssignment(ctx *Context) (cancel context.CancelFunc) {
 | 
			
		||||
		owner, err = user_model.GetUserByName(ctx, userName)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			if user_model.IsErrUserNotExist(err) {
 | 
			
		||||
				// go-get does not support redirects
 | 
			
		||||
				// https://github.com/golang/go/issues/19760
 | 
			
		||||
				if ctx.FormString("go-get") == "1" {
 | 
			
		||||
					EarlyResponseForGoGetMeta(ctx)
 | 
			
		||||
					return
 | 
			
		||||
				}
 | 
			
		||||
				ctx.NotFound("GetUserByName", nil)
 | 
			
		||||
 | 
			
		||||
				if redirectUserID, err := user_model.LookupUserRedirect(userName); err == nil {
 | 
			
		||||
					RedirectToUser(ctx, userName, redirectUserID)
 | 
			
		||||
				} else if user_model.IsErrUserRedirectNotExist(err) {
 | 
			
		||||
					ctx.NotFound("GetUserByName", nil)
 | 
			
		||||
				} else {
 | 
			
		||||
					ctx.ServerError("LookupUserRedirect", err)
 | 
			
		||||
				}
 | 
			
		||||
			} else {
 | 
			
		||||
				ctx.ServerError("GetUserByName", err)
 | 
			
		||||
			}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user