Show private heatmap on profile to self & admins (#14881)

followup to #14080
release/v1.15
Norwin 2021-03-04 22:59:13 +00:00 committed by GitHub
parent 11229ca539
commit 0a8a3ab0f5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 8 additions and 15 deletions

View File

@ -268,9 +268,6 @@ func TestPrivateActivityNoHeatmapVisibleForAdmin(t *testing.T) {
} }
// check heatmap visibility if the visibility is disabled // check heatmap visibility if the visibility is disabled
// this behavior, in special the one for the admin, is
// due to the fact that the heatmap is the same for all viewers;
// otherwise, there is no reason for it
func TestPrivateActivityYesHeatmapInvisibleForPublic(t *testing.T) { func TestPrivateActivityYesHeatmapInvisibleForPublic(t *testing.T) {
defer prepareTestEnv(t)() defer prepareTestEnv(t)()
@ -282,7 +279,7 @@ func TestPrivateActivityYesHeatmapInvisibleForPublic(t *testing.T) {
assert.False(t, visible, "user should have no visible heatmap") assert.False(t, visible, "user should have no visible heatmap")
} }
func TestPrivateActivityYesHeatmapInvisibleForUserItselfAtProfile(t *testing.T) { func TestPrivateActivityYesHeatmapVisibleForUserItselfAtProfile(t *testing.T) {
defer prepareTestEnv(t)() defer prepareTestEnv(t)()
testPrivateActivityDoSomethingForActionEntries(t) testPrivateActivityDoSomethingForActionEntries(t)
testPrivateActivityHelperEnablePrivateActivity(t) testPrivateActivityHelperEnablePrivateActivity(t)
@ -290,10 +287,10 @@ func TestPrivateActivityYesHeatmapInvisibleForUserItselfAtProfile(t *testing.T)
session := loginUser(t, privateActivityTestUser) session := loginUser(t, privateActivityTestUser)
visible := testPrivateActivityHelperHasVisibleProfileHeatmapFromSession(t, session) visible := testPrivateActivityHelperHasVisibleProfileHeatmapFromSession(t, session)
assert.False(t, visible, "user should have no visible heatmap") assert.True(t, visible, "user should have visible heatmap")
} }
func TestPrivateActivityYesHeatmapInvisibleForUserItselfAtDashboard(t *testing.T) { func TestPrivateActivityYesHeatmapVisibleForUserItselfAtDashboard(t *testing.T) {
defer prepareTestEnv(t)() defer prepareTestEnv(t)()
testPrivateActivityDoSomethingForActionEntries(t) testPrivateActivityDoSomethingForActionEntries(t)
testPrivateActivityHelperEnablePrivateActivity(t) testPrivateActivityHelperEnablePrivateActivity(t)
@ -301,7 +298,7 @@ func TestPrivateActivityYesHeatmapInvisibleForUserItselfAtDashboard(t *testing.T
session := loginUser(t, privateActivityTestUser) session := loginUser(t, privateActivityTestUser)
visible := testPrivateActivityHelperHasVisibleDashboardHeatmapFromSession(t, session) visible := testPrivateActivityHelperHasVisibleDashboardHeatmapFromSession(t, session)
assert.False(t, visible, "user should have no visible heatmap") assert.True(t, visible, "user should have visible heatmap")
} }
func TestPrivateActivityYesHeatmapInvisibleForOtherUser(t *testing.T) { func TestPrivateActivityYesHeatmapInvisibleForOtherUser(t *testing.T) {
@ -315,7 +312,7 @@ func TestPrivateActivityYesHeatmapInvisibleForOtherUser(t *testing.T) {
assert.False(t, visible, "user should have no visible heatmap") assert.False(t, visible, "user should have no visible heatmap")
} }
func TestPrivateActivityYesHeatmapInvsisibleForAdmin(t *testing.T) { func TestPrivateActivityYesHeatmapVisibleForAdmin(t *testing.T) {
defer prepareTestEnv(t)() defer prepareTestEnv(t)()
testPrivateActivityDoSomethingForActionEntries(t) testPrivateActivityDoSomethingForActionEntries(t)
testPrivateActivityHelperEnablePrivateActivity(t) testPrivateActivityHelperEnablePrivateActivity(t)
@ -323,7 +320,7 @@ func TestPrivateActivityYesHeatmapInvsisibleForAdmin(t *testing.T) {
session := loginUser(t, privateActivityTestAdmin) session := loginUser(t, privateActivityTestAdmin)
visible := testPrivateActivityHelperHasVisibleProfileHeatmapFromSession(t, session) visible := testPrivateActivityHelperHasVisibleProfileHeatmapFromSession(t, session)
assert.False(t, visible, "user should have no visible heatmap") assert.True(t, visible, "user should have visible heatmap")
} }
// check heatmap api provides content if the visibility is enabled // check heatmap api provides content if the visibility is enabled

View File

@ -104,9 +104,7 @@ func Dashboard(ctx *context.Context) {
ctx.Data["PageIsNews"] = true ctx.Data["PageIsNews"] = true
ctx.Data["SearchLimit"] = setting.UI.User.RepoPagingNum ctx.Data["SearchLimit"] = setting.UI.User.RepoPagingNum
// no heatmap access for admins; GetUserHeatmapDataByUser ignores the calling user if setting.Service.EnableUserHeatmap {
// so everyone would get the same empty heatmap
if setting.Service.EnableUserHeatmap && !ctxUser.KeepActivityPrivate {
data, err := models.GetUserHeatmapDataByUserTeam(ctxUser, ctx.Org.Team, ctx.User) data, err := models.GetUserHeatmapDataByUserTeam(ctxUser, ctx.Org.Team, ctx.User)
if err != nil { if err != nil {
ctx.ServerError("GetUserHeatmapDataByUserTeam", err) ctx.ServerError("GetUserHeatmapDataByUserTeam", err)

View File

@ -99,9 +99,7 @@ func Profile(ctx *context.Context) {
ctx.Data["Owner"] = ctxUser ctx.Data["Owner"] = ctxUser
ctx.Data["OpenIDs"] = openIDs ctx.Data["OpenIDs"] = openIDs
// no heatmap access for admins; GetUserHeatmapDataByUser ignores the calling user if setting.Service.EnableUserHeatmap {
// so everyone would get the same empty heatmap
if setting.Service.EnableUserHeatmap && !ctxUser.KeepActivityPrivate {
data, err := models.GetUserHeatmapDataByUser(ctxUser, ctx.User) data, err := models.GetUserHeatmapDataByUser(ctxUser, ctx.User)
if err != nil { if err != nil {
ctx.ServerError("GetUserHeatmapDataByUser", err) ctx.ServerError("GetUserHeatmapDataByUser", err)