]> git.openstreetmap.org Git - rails.git/blob - app/controllers/accounts/terms_controller.rb
Merge remote-tracking branch 'upstream/pull/6197'
[rails.git] / app / controllers / accounts / terms_controller.rb
1 module Accounts
2   class TermsController < ApplicationController
3     include SessionMethods
4
5     layout "site"
6
7     before_action -> { authorize_web(:skip_terms => true) }
8     before_action :set_locale
9     before_action :check_database_readable
10
11     authorize_resource :class => :account_terms
12
13     def show
14       @legale = params[:legale] || OSM.ip_to_country(request.remote_ip) || Settings.default_legale
15       @text = OSM.legal_text_for_country(@legale)
16       @text_legale = @legale
17       @text_legale = "GB" unless @legale == "FR" || @legale == "IT"
18
19       if request.xhr?
20         render :partial => "terms"
21       else
22         @title = t ".title"
23       end
24     end
25
26     def update
27       if params[:decline] || !(params[:read_tou] && params[:read_ct])
28         current_user.terms_seen = true
29
30         flash[:notice] = { :partial => "accounts/terms/terms_declined_flash" } if current_user.save
31       else
32         current_user.tou_agreed = Time.now.utc
33         current_user.terms_agreed = Time.now.utc
34         current_user.terms_seen = true
35
36         flash[:notice] = t ".terms accepted" if current_user.save
37       end
38
39       referer = safe_referer(params[:referer]) if params[:referer]
40
41       redirect_to referer || account_path
42     end
43   end
44 end