summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Kuhn <suraia@ikkoku.de>2017-08-17 11:08:03 +0200
committerLunny Xiao <xiaolunwen@gmail.com>2017-08-17 17:08:03 +0800
commit934dd41fa660bda0c1006e8f293f6f7ba3d8bad7 (patch)
tree11f51bd4f4a14c61ce0165ecbd86dae8def4a5b7
parent7907786040100593831bce1d583bb5f6e34c1a16 (diff)
downloadgitea-934dd41fa660bda0c1006e8f293f6f7ba3d8bad7.tar.gz
gitea-934dd41fa660bda0c1006e8f293f6f7ba3d8bad7.zip
Make SHOW_USER_EMAIL also apply to profiles (#2258)
The e-mail address is currently only hidden from the explore page.
-rw-r--r--integrations/setting_test.go70
-rw-r--r--routers/user/profile.go2
-rw-r--r--templates/user/profile.tmpl2
3 files changed, 73 insertions, 1 deletions
diff --git a/integrations/setting_test.go b/integrations/setting_test.go
new file mode 100644
index 0000000000..a8d1f01e8f
--- /dev/null
+++ b/integrations/setting_test.go
@@ -0,0 +1,70 @@
+// 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 integrations
+
+import (
+ "net/http"
+ "testing"
+
+ "code.gitea.io/gitea/modules/setting"
+
+ "github.com/stretchr/testify/assert"
+)
+
+func TestSettingShowUserEmailExplore(t *testing.T) {
+ prepareTestEnv(t)
+
+ showUserEmail := setting.UI.ShowUserEmail
+ setting.UI.ShowUserEmail = true
+
+ session := loginUser(t, "user2")
+ req := NewRequest(t, "GET", "/explore/users")
+ resp := session.MakeRequest(t, req, http.StatusOK)
+ htmlDoc := NewHTMLParser(t, resp.Body)
+ assert.Contains(t,
+ htmlDoc.doc.Find(".ui.user.list").Text(),
+ "user2@example.com",
+ )
+
+ setting.UI.ShowUserEmail = false
+
+ req = NewRequest(t, "GET", "/explore/users")
+ resp = session.MakeRequest(t, req, http.StatusOK)
+ htmlDoc = NewHTMLParser(t, resp.Body)
+ assert.NotContains(t,
+ htmlDoc.doc.Find(".ui.user.list").Text(),
+ "user2@example.com",
+ )
+
+ setting.UI.ShowUserEmail = showUserEmail
+}
+
+func TestSettingShowUserEmailProfile(t *testing.T) {
+ prepareTestEnv(t)
+
+ showUserEmail := setting.UI.ShowUserEmail
+ setting.UI.ShowUserEmail = true
+
+ session := loginUser(t, "user2")
+ req := NewRequest(t, "GET", "/user2")
+ resp := session.MakeRequest(t, req, http.StatusOK)
+ htmlDoc := NewHTMLParser(t, resp.Body)
+ assert.Contains(t,
+ htmlDoc.doc.Find(".user.profile").Text(),
+ "user2@example.com",
+ )
+
+ setting.UI.ShowUserEmail = false
+
+ req = NewRequest(t, "GET", "/user2")
+ resp = session.MakeRequest(t, req, http.StatusOK)
+ htmlDoc = NewHTMLParser(t, resp.Body)
+ assert.NotContains(t,
+ htmlDoc.doc.Find(".user.profile").Text(),
+ "user2@example.com",
+ )
+
+ setting.UI.ShowUserEmail = showUserEmail
+}
diff --git a/routers/user/profile.go b/routers/user/profile.go
index c7d761052e..1850286411 100644
--- a/routers/user/profile.go
+++ b/routers/user/profile.go
@@ -219,6 +219,8 @@ func Profile(ctx *context.Context) {
}
}
+ ctx.Data["ShowUserEmail"] = setting.UI.ShowUserEmail
+
ctx.HTML(200, tplProfile)
}
diff --git a/templates/user/profile.tmpl b/templates/user/profile.tmpl
index a055a99a85..60355de060 100644
--- a/templates/user/profile.tmpl
+++ b/templates/user/profile.tmpl
@@ -22,7 +22,7 @@
{{if .Owner.Location}}
<li><i class="octicon octicon-location"></i> {{.Owner.Location}}</li>
{{end}}
- {{if or (and $.ShowUserEmail .Owner.Email .IsSigned) (and .Owner.Email .IsSigned (not .Owner.KeepEmailPrivate))}}
+ {{if and $.ShowUserEmail .Owner.Email .IsSigned (not .Owner.KeepEmailPrivate)}}
<li>
<i class="octicon octicon-mail"></i>
<a href="mailto:{{.Owner.Email}}" rel="nofollow">{{.Owner.Email}}</a>