]> git.openstreetmap.org Git - rails.git/blobdiff - app/controllers/application_controller.rb
Fix problems with database offline mode
[rails.git] / app / controllers / application_controller.rb
index 122349affca241f5fdfc70c6322b851a3a5ce2fa..655017847b81c34d200aac05d707d204de0c017e 100644 (file)
@@ -4,6 +4,9 @@ class ApplicationController < ActionController::Base
 
   if STATUS == :database_readonly or STATUS == :database_offline
     session :off
+
+    def self.cache_sweeper(*sweepers)
+    end
   end
 
   def authorize_web
@@ -11,7 +14,7 @@ class ApplicationController < ActionController::Base
       @user = User.find(session[:user], :conditions => {:status => ["active", "confirmed", "suspended"]})
 
       if @user.status == "suspended"
-        session[:user] = nil
+        session.delete(:user)
         session_expires_automatically
 
         redirect_to :controller => "user", :action => "suspended"
@@ -50,7 +53,7 @@ class ApplicationController < ActionController::Base
     # method, otherwise an OAuth token was used, which has to be checked.
     unless current_token.nil?
       unless current_token.read_attribute(cap)
-        render :text => "OAuth token doesn't have that capability.", :status => :forbidden
+        report_error "OAuth token doesn't have that capability.", :forbidden
         return false
       end
     end
@@ -84,6 +87,11 @@ class ApplicationController < ActionController::Base
   end
   def require_allow_write_api
     require_capability(:allow_write_api)
+
+    if REQUIRE_TERMS_AGREED and @user.terms_agreed.nil?
+      report_error "You must accept the contributor terms before you can edit.", :forbidden
+      return false
+    end
   end
   def require_allow_read_gpx
     require_capability(:allow_read_gpx)