]> git.openstreetmap.org Git - rails.git/blob - app/controllers/accounts/terms_controller.rb
Merge pull request #6394 from openstreetmap/dependabot/github_actions/ruby/setup...
[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       @legale = params[:legale] || OSM.ip_to_country(request.remote_ip) || Settings.default_legale
17       @text = OSM.legal_text_for_country(@legale)
18       @text_legale = @legale
19       @text_legale = "GB" unless @legale == "FR" || @legale == "IT"
20
21       if request.xhr?
22         render :partial => "terms"
23       else
24         @title = t ".title"
25       end
26     end
27
28     def update
29       if params[:decline] || !(params[:read_tou] && params[:read_ct])
30         current_user.terms_seen = true
31
32         flash[:notice] = { :partial => "accounts/terms/terms_declined_flash" } if current_user.save
33       else
34         current_user.tou_agreed = Time.now.utc
35         current_user.terms_agreed = Time.now.utc
36         current_user.terms_seen = true
37
38         flash[:notice] = t ".terms accepted" if current_user.save
39       end
40
41       referer = safe_referer(params[:referer]) if params[:referer]
42
43       redirect_to referer || account_path
44     end
45   end
46 end