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