Skip to content

Commit 3109ca6

Browse files
committed
Show heatmap only to logged in users
1 parent 1c46a48 commit 3109ca6

File tree

4 files changed

+22
-6
lines changed

4 files changed

+22
-6
lines changed

app/controllers/users/heatmaps_controller.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ class HeatmapsController < ApplicationController
1111
def show
1212
@user = User.find_by(:display_name => params[:user_display_name])
1313

14-
if @user && (@user.visible? || current_user&.administrator?)
14+
if current_user && @user && (@user.visible? || current_user.administrator?)
1515
@heatmap_data = Rails.cache.fetch("heatmap_data_of_user_#{@user.id}", :expires_at => Time.zone.now.end_of_day) do
1616
from = 1.year.ago.beginning_of_day
1717
to = Time.zone.now.end_of_day

app/controllers/users_controller.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ def show
2323

2424
if @user && (@user.visible? || current_user&.administrator?)
2525
@title = @user.display_name
26-
@heatmap_frame = true
26+
@heatmap_frame = true if current_user
2727
else
2828
render_unknown_user params[:display_name]
2929
end

app/views/users/heatmaps/show.html.erb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<%= turbo_frame_tag "#{dom_id(@user)}_heatmap", :data => { :turbo => false } do %>
2-
<% if @heatmap_data[:count].positive? %>
2+
<% if @heatmap_data.present? && @heatmap_data[:count].positive? %>
33
<h2 class="text-body-secondary fs-5 mt-4"><%= t("users.show.contributions", :count => @heatmap_data[:count]) %></h2>
44
<% cal_data = prepare_heatmap(@heatmap_data[:data], @heatmap_data[:from], @heatmap_data[:to]) %>
55
<div class="row">

test/controllers/users/heatmaps_controller_test.rb

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,22 @@ def test_routes
1111
)
1212
end
1313

14+
def test_show_data_when_not_logged_in
15+
user = create(:user)
16+
create(:changeset, :user => user, :created_at => 6.months.ago, :num_changes => 10)
17+
18+
get user_heatmap_path(user)
19+
20+
assert_response :success
21+
assert_nil assigns(:heatmap_data)
22+
end
23+
1424
def test_show_data
1525
user = create(:user)
16-
# Create two changesets
1726
create(:changeset, :user => user, :created_at => 6.months.ago, :num_changes => 10)
1827
create(:changeset, :user => user, :created_at => 3.months.ago, :num_changes => 20)
1928

29+
session_for(create(:user))
2030
get user_heatmap_path(user)
2131

2232
assert_response :success
@@ -43,6 +53,7 @@ def test_show_data_caching
4353
create(:changeset, :user => user, :created_at => 6.months.ago, :num_changes => 15)
4454

4555
# First request to populate the cache
56+
session_for(create(:user))
4657
get user_heatmap_path(user)
4758
first_response_data = assigns(:heatmap_data)
4859
assert_not_nil first_response_data, "Expected heatmap data to be assigned on the first request"
@@ -75,19 +86,20 @@ def test_show_data_caching
7586
Rails.cache = @original_cache_store
7687
end
7788

78-
def test_show_data_no_changesets
89+
def test_show_rendering_when_not_logged_in
7990
user = create(:user)
91+
create(:changeset, :user => user, :created_at => 6.months.ago, :num_changes => 10)
8092

8193
get user_heatmap_path(user)
8294

8395
assert_response :success
84-
assert_empty(assigns(:heatmap_data)[:data].values)
8596
assert_select ".heatmap", :count => 0
8697
end
8798

8899
def test_show_rendering_of_user_with_no_changesets
89100
user_without_changesets = create(:user)
90101

102+
session_for(create(:user))
91103
get user_heatmap_path(user_without_changesets)
92104

93105
assert_response :success
@@ -100,6 +112,7 @@ def test_show_rendering_of_user_with_changesets
100112
_changeset5 = create(:changeset, :user => user, :created_at => 3.months.ago.beginning_of_day, :num_changes => 5)
101113
changeset11 = create(:changeset, :user => user, :created_at => 3.months.ago.beginning_of_day, :num_changes => 11)
102114

115+
session_for(create(:user))
103116
get user_heatmap_path(user)
104117

105118
assert_response :success
@@ -114,6 +127,7 @@ def test_show_rendering_of_user_with_changesets
114127
def test_headline_changeset_zero
115128
user = create(:user)
116129

130+
session_for(create(:user))
117131
get user_heatmap_path(user)
118132

119133
assert_response :success
@@ -124,6 +138,7 @@ def test_headline_changeset_singular
124138
user = create(:user)
125139
create(:changeset, :user => user, :created_at => 4.months.ago.beginning_of_day, :num_changes => 1)
126140

141+
session_for(create(:user))
127142
get user_heatmap_path(user)
128143

129144
assert_response :success
@@ -134,6 +149,7 @@ def test_headline_changeset_plural
134149
user = create(:user)
135150
create(:changeset, :user => user, :created_at => 4.months.ago.beginning_of_day, :num_changes => 12)
136151

152+
session_for(create(:user))
137153
get user_heatmap_path(user)
138154

139155
assert_response :success

0 commit comments

Comments
 (0)