mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-29 10:57:44 +09:00 
			
		
		
		
	User Settings: Ignore empty language codes & validate (#13755)
This commit is contained in:
		| @@ -45,7 +45,7 @@ func testPrivateActivityHelperEnablePrivateActivity(t *testing.T) { | ||||
| 		"_csrf":                 GetCSRF(t, session, "/user/settings"), | ||||
| 		"name":                  privateActivityTestUser, | ||||
| 		"email":                 privateActivityTestUser + "@example.com", | ||||
| 		"language":              "en-us", | ||||
| 		"language":              "en-US", | ||||
| 		"keep_activity_private": "1", | ||||
| 	}) | ||||
| 	session.MakeRequest(t, req, http.StatusFound) | ||||
|   | ||||
| @@ -30,7 +30,7 @@ func TestRenameUsername(t *testing.T) { | ||||
| 		"_csrf":    GetCSRF(t, session, "/user/settings"), | ||||
| 		"name":     "newUsername", | ||||
| 		"email":    "user2@example.com", | ||||
| 		"language": "en-us", | ||||
| 		"language": "en-US", | ||||
| 	}) | ||||
| 	session.MakeRequest(t, req, http.StatusFound) | ||||
|  | ||||
| @@ -100,7 +100,7 @@ func TestRenameReservedUsername(t *testing.T) { | ||||
| 			"_csrf":    GetCSRF(t, session, "/user/settings"), | ||||
| 			"name":     reservedUsername, | ||||
| 			"email":    "user2@example.com", | ||||
| 			"language": "en-us", | ||||
| 			"language": "en-US", | ||||
| 		}) | ||||
| 		resp := session.MakeRequest(t, req, http.StatusFound) | ||||
|  | ||||
|   | ||||
| @@ -24,7 +24,7 @@ func TestXSSUserFullName(t *testing.T) { | ||||
| 		"name":      user.Name, | ||||
| 		"full_name": fullName, | ||||
| 		"email":     user.Email, | ||||
| 		"language":  "en-us", | ||||
| 		"language":  "en-US", | ||||
| 	}) | ||||
| 	session.MakeRequest(t, req, http.StatusFound) | ||||
|  | ||||
|   | ||||
| @@ -202,7 +202,7 @@ type UpdateProfileForm struct { | ||||
| 	KeepEmailPrivate    bool | ||||
| 	Website             string `binding:"ValidUrl;MaxSize(255)"` | ||||
| 	Location            string `binding:"MaxSize(50)"` | ||||
| 	Language            string `binding:"Size(5)"` | ||||
| 	Language            string | ||||
| 	Description         string `binding:"MaxSize(255)"` | ||||
| 	KeepActivityPrivate bool | ||||
| } | ||||
|   | ||||
| @@ -440,6 +440,7 @@ website = Website | ||||
| location = Location | ||||
| update_theme = Update Theme | ||||
| update_profile = Update Profile | ||||
| update_language_not_found = Language '%s' is not available. | ||||
| update_profile_success = Your profile has been updated. | ||||
| change_username = Your username has been changed. | ||||
| change_username_prompt = Note: username changes also change your account URL. | ||||
|   | ||||
| @@ -19,6 +19,7 @@ import ( | ||||
| 	"code.gitea.io/gitea/modules/context" | ||||
| 	"code.gitea.io/gitea/modules/log" | ||||
| 	"code.gitea.io/gitea/modules/setting" | ||||
| 	"code.gitea.io/gitea/modules/util" | ||||
|  | ||||
| 	"github.com/unknwon/i18n" | ||||
| ) | ||||
| @@ -94,7 +95,14 @@ func ProfilePost(ctx *context.Context, form auth.UpdateProfileForm) { | ||||
| 	ctx.User.KeepEmailPrivate = form.KeepEmailPrivate | ||||
| 	ctx.User.Website = form.Website | ||||
| 	ctx.User.Location = form.Location | ||||
| 	if len(form.Language) != 0 { | ||||
| 		if !util.IsStringInSlice(form.Language, setting.Langs) { | ||||
| 			ctx.Flash.Error(ctx.Tr("settings.update_language_not_found", form.Language)) | ||||
| 			ctx.Redirect(setting.AppSubURL + "/user/settings") | ||||
| 			return | ||||
| 		} | ||||
| 		ctx.User.Language = form.Language | ||||
| 	} | ||||
| 	ctx.User.Description = form.Description | ||||
| 	ctx.User.KeepActivityPrivate = form.KeepActivityPrivate | ||||
| 	if err := models.UpdateUserSetting(ctx.User); err != nil { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user