From 934dd41fa660bda0c1006e8f293f6f7ba3d8bad7 Mon Sep 17 00:00:00 2001 From: Michael Kuhn Date: Thu, 17 Aug 2017 11:08:03 +0200 Subject: [PATCH] Make SHOW_USER_EMAIL also apply to profiles (#2258) The e-mail address is currently only hidden from the explore page. --- integrations/setting_test.go | 70 ++++++++++++++++++++++++++++++++++++ routers/user/profile.go | 2 ++ templates/user/profile.tmpl | 2 +- 3 files changed, 73 insertions(+), 1 deletion(-) create mode 100644 integrations/setting_test.go diff --git a/integrations/setting_test.go b/integrations/setting_test.go new file mode 100644 index 000000000..a8d1f01e8 --- /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 c7d761052..185028641 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 a055a99a8..60355de06 100644 --- a/templates/user/profile.tmpl +++ b/templates/user/profile.tmpl @@ -22,7 +22,7 @@ {{if .Owner.Location}}
  • {{.Owner.Location}}
  • {{end}} - {{if or (and $.ShowUserEmail .Owner.Email .IsSigned) (and .Owner.Email .IsSigned (not .Owner.KeepEmailPrivate))}} + {{if and $.ShowUserEmail .Owner.Email .IsSigned (not .Owner.KeepEmailPrivate)}}
  • {{.Owner.Email}}