1 # frozen_string_literal: true
4 class TermsController < ApplicationController
9 before_action -> { authorize_web(:skip_terms => true) }
10 before_action :set_locale
11 before_action :check_database_readable
13 authorize_resource :class => :account_terms
16 param! :legale, String, :format => /\A[A-Z]+\z/
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"
24 render :partial => "terms", :locals => { :text => @text }
31 if params[:decline] || !(params[:read_tou] && params[:read_ct])
32 current_user.terms_seen = true
34 flash[:notice] = { :partial => "accounts/terms/terms_declined_flash" } if current_user.save
36 current_user.tou_agreed = Time.now.utc
37 current_user.terms_agreed = Time.now.utc
38 current_user.terms_seen = true
40 flash[:notice] = t ".terms accepted" if current_user.save
43 referer = safe_referer(params[:referer]) if params[:referer]
45 redirect_to referer || account_path