From 6e1912c73ac3b350593efbe4e3ac8f37b052e008 Mon Sep 17 00:00:00 2001
From: guillep2k <18600385+guillep2k@users.noreply.github.com>
Date: Sat, 9 Nov 2019 00:40:37 -0300
Subject: [PATCH] Fix password complexity check on registration (#8887)

* Fix registration password complexity

* Fix integration to use a complex password ;)
---
 integrations/signup_test.go | 4 ++--
 routers/user/auth.go        | 5 +++++
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/integrations/signup_test.go b/integrations/signup_test.go
index 325c906326..e122efa39c 100644
--- a/integrations/signup_test.go
+++ b/integrations/signup_test.go
@@ -19,8 +19,8 @@ func TestSignup(t *testing.T) {
 	req := NewRequestWithValues(t, "POST", "/user/sign_up", map[string]string{
 		"user_name": "exampleUser",
 		"email":     "exampleUser@example.com",
-		"password":  "examplePassword",
-		"retype":    "examplePassword",
+		"password":  "examplePassword!1",
+		"retype":    "examplePassword!1",
 	})
 	MakeRequest(t, req, http.StatusFound)
 
diff --git a/routers/user/auth.go b/routers/user/auth.go
index 82a508e4dc..b328ac094e 100644
--- a/routers/user/auth.go
+++ b/routers/user/auth.go
@@ -1070,6 +1070,11 @@ func SignUpPost(ctx *context.Context, cpt *captcha.Captcha, form auth.RegisterFo
 		ctx.RenderWithErr(ctx.Tr("auth.password_too_short", setting.MinPasswordLength), tplSignUp, &form)
 		return
 	}
+	if !password.IsComplexEnough(form.Password) {
+		ctx.Data["Err_Password"] = true
+		ctx.RenderWithErr(ctx.Tr("form.password_complexity"), tplSignUp, &form)
+		return
+	}
 
 	u := &models.User{
 		Name:     form.UserName,