diff options
author | Michael Kuhn <suraia@ikkoku.de> | 2017-08-17 11:08:03 +0200 |
---|---|---|
committer | Lunny Xiao <xiaolunwen@gmail.com> | 2017-08-17 17:08:03 +0800 |
commit | 934dd41fa660bda0c1006e8f293f6f7ba3d8bad7 (patch) | |
tree | 11f51bd4f4a14c61ce0165ecbd86dae8def4a5b7 | |
parent | 7907786040100593831bce1d583bb5f6e34c1a16 (diff) | |
download | gitea-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.go | 70 | ||||
-rw-r--r-- | routers/user/profile.go | 2 | ||||
-rw-r--r-- | templates/user/profile.tmpl | 2 |
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> |