]> git.openstreetmap.org Git - rails.git/commitdiff
Merge remote-tracking branch 'openstreetmap/pull/1443'
authorTom Hughes <tom@compton.nu>
Sat, 18 Feb 2017 16:08:04 +0000 (16:08 +0000)
committerTom Hughes <tom@compton.nu>
Sat, 18 Feb 2017 16:08:04 +0000 (16:08 +0000)
app/controllers/application_controller.rb
app/models/user_block.rb
config/locales/en.yml

index 15b98e0a829beba89d1f066c9a35c5152b73741b..d6516dc145b03679695ce146d70f97713b3df955 100644 (file)
@@ -152,10 +152,14 @@ class ApplicationController < ActionController::Base
     # have we identified the user?
     if @user
       # check if the user has been banned
-      if @user.blocks.active.exists?
-        # NOTE: need slightly more helpful message than this.
+      user_block =  @user.blocks.active.take
+      unless user_block.nil? 
         set_locale
-        report_error t("application.setup_user_auth.blocked"), :forbidden
+        if  user_block.zero_hour?
+          report_error  t("application.setup_user_auth.blocked_zero_hour"), :forbidden
+        else
+          report_error t("application.setup_user_auth.blocked"), :forbidden
+        end
       end
 
       # if the user hasn't seen the contributor terms then don't
index de14dcaa9617f351941b93925cc7b1453ee6357b..eb0daba6569731cad0fe0486b6ea814099e6d2d5 100644 (file)
@@ -26,6 +26,13 @@ class UserBlock < ActiveRecord::Base
     needs_view || ends_at > Time.now.getutc
   end
 
+  ##
+  # returns true if the block is a "zero hour" block
+  def zero_hour?
+    # if the times differ more than 1 minute we probably have more important issues
+    needs_view && (ends_at.to_i - updated_at.to_i) < 60
+  end
+
   ##
   # revokes the block, allowing the user to use the API again. the argument
   # is the user object who is revoking the ban.
index 15a1912df6f5b9e3ac55689485c0ccf1ded102cf..1867a433f2dfc9ba70febed84d94996c6b592523 100644 (file)
@@ -1625,6 +1625,7 @@ en:
     require_moderator:
       not_a_moderator: "You need to be a moderator to perform that action."
     setup_user_auth:
+      blocked_zero_hour: "You have an urgent message on the OpenStreetMap web site. You need to read the message before you will be able to save your edits."
       blocked: "Your access to the API has been blocked. Please log-in to the web interface to find out more."
       need_to_see_terms: "Your access to the API is temporarily suspended. Please log-in to the web interface to view the Contributor Terms. You do not need to agree, but you must view them."
   oauth: