]> git.openstreetmap.org Git - rails.git/blobdiff - app/controllers/users_controller.rb
Require that tou_read checkbox is set
[rails.git] / app / controllers / users_controller.rb
index 91742c7613aec51dc4d14ed6cf163b1ca82341c2..bbe60e39ca231349224c89a8156faeaec10f486a 100644 (file)
@@ -5,11 +5,11 @@ class UsersController < ApplicationController
   before_action :disable_terms_redirect, :only => [:terms, :save, :logout]
   before_action :authorize_web
   before_action :set_locale
+  before_action :check_database_readable
 
   authorize_resource
 
   before_action :require_self, :only => [:account]
-  before_action :check_database_readable, :except => [:login]
   before_action :check_database_writable, :only => [:new, :account, :confirm, :confirm_email, :lost_password, :reset_password, :go_public, :make_friend, :remove_friend]
   before_action :require_cookies, :only => [:new, :login, :confirm]
   before_action :lookup_user_by_name, :only => [:set_status, :delete]
@@ -36,7 +36,7 @@ class UsersController < ApplicationController
   def save
     @title = t "users.new.title"
 
-    if params[:decline]
+    if params[:decline] || !params[:read_tou] || params[:read_tou] == 0
       if current_user
         current_user.terms_seen = true
 
@@ -47,12 +47,15 @@ class UsersController < ApplicationController
         else
           redirect_to :action => :account, :display_name => current_user.display_name
         end
-      else
+      elsif params[:decline]
         redirect_to t("users.terms.declined")
+      else
+        redirect_to :action => :terms
       end
     elsif current_user
       unless current_user.terms_agreed?
         current_user.consider_pd = params[:user][:consider_pd]
+        current_user.tou_agreed = Time.now.getutc
         current_user.terms_agreed = Time.now.getutc
         current_user.terms_seen = true
 
@@ -73,6 +76,7 @@ class UsersController < ApplicationController
         current_user.creation_ip = request.remote_ip
         current_user.languages = http_accept_language.user_preferred_languages
         current_user.terms_agreed = Time.now.getutc
+        current_user.tou_agreed = Time.now.getutc
         current_user.terms_seen = true
 
         if current_user.auth_uid.blank?