Commit ceaa8050d0dab79ae5cad59196af5957ea0c112c

Authored by Pedro de Lyra Pereira
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>
app/controllers/public/content_viewer_controller.rb
@@ -8,6 +8,7 @@ class ContentViewerController &lt; ApplicationController @@ -8,6 +8,7 @@ class ContentViewerController &lt; ApplicationController
8 helper TagsHelper 8 helper TagsHelper
9 9
10 def view_page 10 def view_page
  11 +
11 path = get_path(params[:page], params[:format]) 12 path = get_path(params[:page], params[:format])
12 13
13 @version = params[:version].to_i 14 @version = params[:version].to_i
@@ -38,7 +39,7 @@ class ContentViewerController &lt; ApplicationController @@ -38,7 +39,7 @@ class ContentViewerController &lt; ApplicationController
38 end 39 end
39 40
40 # At this point the page will be showed 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 @page = FilePresenter.for @page 44 @page = FilePresenter.for @page
44 45
@@ -272,4 +273,17 @@ class ContentViewerController &lt; ApplicationController @@ -272,4 +273,17 @@ class ContentViewerController &lt; ApplicationController
272 @comment_order = params[:comment_order].nil? ? 'oldest' : params[:comment_order] 273 @comment_order = params[:comment_order].nil? ? 'oldest' : params[:comment_order]
273 end 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 end 289 end