forked from gitea/gitea
		
	Allow adding collaborators with (fullname) (#3103)
* Allow adding collaborators with (fullname) Signed-off-by: Sasha Varlamov <sasha@sashavarlamov.com> * Refactor username suffix to utils pkg Signed-off-by: Sasha Varlamov <sasha@sashavarlamov.com>
This commit is contained in:
		
							parent
							
								
									7ec6cddd27
								
							
						
					
					
						commit
						311c83ad17
					
				| @ -15,6 +15,7 @@ import ( | ||||
| 	"code.gitea.io/gitea/modules/base" | ||||
| 	"code.gitea.io/gitea/modules/context" | ||||
| 	"code.gitea.io/gitea/modules/log" | ||||
| 	"code.gitea.io/gitea/routers/utils" | ||||
| ) | ||||
| 
 | ||||
| const ( | ||||
| @ -76,11 +77,7 @@ func TeamsAction(ctx *context.Context) { | ||||
| 			ctx.Error(404) | ||||
| 			return | ||||
| 		} | ||||
| 		uname := ctx.Query("uname") | ||||
| 		// uname may be formatted as "username (fullname)" | ||||
| 		if strings.Contains(uname, "(") && strings.HasSuffix(uname, ")") { | ||||
| 			uname = strings.TrimSpace(strings.Split(uname, "(")[0]) | ||||
| 		} | ||||
| 		uname := utils.RemoveUsernameParameterSuffix(strings.ToLower(ctx.Query("uname"))) | ||||
| 		var u *models.User | ||||
| 		u, err = models.GetUserByName(uname) | ||||
| 		if err != nil { | ||||
|  | ||||
| @ -16,6 +16,7 @@ import ( | ||||
| 	"code.gitea.io/gitea/modules/context" | ||||
| 	"code.gitea.io/gitea/modules/log" | ||||
| 	"code.gitea.io/gitea/modules/setting" | ||||
| 	"code.gitea.io/gitea/routers/utils" | ||||
| ) | ||||
| 
 | ||||
| const ( | ||||
| @ -366,7 +367,7 @@ func Collaboration(ctx *context.Context) { | ||||
| 
 | ||||
| // CollaborationPost response for actions for a collaboration of a repository | ||||
| func CollaborationPost(ctx *context.Context) { | ||||
| 	name := strings.ToLower(ctx.Query("collaborator")) | ||||
| 	name := utils.RemoveUsernameParameterSuffix(strings.ToLower(ctx.Query("collaborator"))) | ||||
| 	if len(name) == 0 || ctx.Repo.Owner.LowerName == name { | ||||
| 		ctx.Redirect(setting.AppSubURL + ctx.Req.URL.Path) | ||||
| 		return | ||||
|  | ||||
							
								
								
									
										17
									
								
								routers/utils/utils.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								routers/utils/utils.go
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,17 @@ | ||||
| // Copyright 2017 The Gitea Authors. All rights reserved. | ||||
| // Use of this source code is governed by a MIT-style | ||||
| // license that can be found in the LICENSE file. | ||||
| 
 | ||||
| package utils | ||||
| 
 | ||||
| import ( | ||||
| 	"strings" | ||||
| ) | ||||
| 
 | ||||
| // RemoveUsernameParameterSuffix returns the username parameter without the (fullname) suffix - leaving just the username | ||||
| func RemoveUsernameParameterSuffix(name string) string { | ||||
| 	if index := strings.Index(name, " ("); index >= 0 { | ||||
| 		name = name[:index] | ||||
| 	} | ||||
| 	return name | ||||
| } | ||||
							
								
								
									
										17
									
								
								routers/utils/utils_test.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								routers/utils/utils_test.go
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,17 @@ | ||||
| // Copyright 2017 The Gitea Authors. All rights reserved. | ||||
| // Use of this source code is governed by a MIT-style | ||||
| // license that can be found in the LICENSE file. | ||||
| 
 | ||||
| package utils | ||||
| 
 | ||||
| import ( | ||||
| 	"testing" | ||||
| 
 | ||||
| 	"github.com/stretchr/testify/assert" | ||||
| ) | ||||
| 
 | ||||
| func TestRemoveUsernameParameterSuffix(t *testing.T) { | ||||
| 	assert.Equal(t, "foobar", RemoveUsernameParameterSuffix("foobar (Foo Bar)")) | ||||
| 	assert.Equal(t, "foobar", RemoveUsernameParameterSuffix("foobar")) | ||||
| 	assert.Equal(t, "", RemoveUsernameParameterSuffix("")) | ||||
| } | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Sasha Varlamov
						Sasha Varlamov