Commit ceaa8050d0dab79ae5cad59196af5957ea0c112c
1 parent
1e0cc2a4
Exists in
article_hit_count
Restrict hit count with cookies
Signed-off-by: Luciano Prestes Cavalcanti <lucianopcbr@gmail.com> Signed-off-by: Pedro de Lyra <pedrodelyra@gmail.com> Signed-off-by: Simiao Carvalho <simiaosimis@gmail.com>
Showing
1 changed file
with
15 additions
and
1 deletions
Show diff stats
app/controllers/public/content_viewer_controller.rb
... | ... | @@ -8,6 +8,7 @@ class ContentViewerController < ApplicationController |
8 | 8 | helper TagsHelper |
9 | 9 | |
10 | 10 | def view_page |
11 | + | |
11 | 12 | path = get_path(params[:page], params[:format]) |
12 | 13 | |
13 | 14 | @version = params[:version].to_i |
... | ... | @@ -38,7 +39,7 @@ class ContentViewerController < ApplicationController |
38 | 39 | end |
39 | 40 | |
40 | 41 | # At this point the page will be showed |
41 | - @page.hit unless user_is_a_bot? | |
42 | + @page.hit unless user_is_a_bot? || already_visited? | |
42 | 43 | |
43 | 44 | @page = FilePresenter.for @page |
44 | 45 | |
... | ... | @@ -272,4 +273,17 @@ class ContentViewerController < ApplicationController |
272 | 273 | @comment_order = params[:comment_order].nil? ? 'oldest' : params[:comment_order] |
273 | 274 | end |
274 | 275 | |
276 | + private | |
277 | + | |
278 | + def already_visited? | |
279 | + return true if current_user.nil? | |
280 | + | |
281 | + if cookies[:visited].to_i == current_user.id | |
282 | + return true | |
283 | + else | |
284 | + cookies[:visited] = { value: current_user.id, expires: 7.days.from_now } | |
285 | + return false; | |
286 | + end | |
287 | + end | |
288 | + | |
275 | 289 | end | ... | ... |