From: Tom Hughes Date: Sat, 18 Feb 2017 16:08:04 +0000 (+0000) Subject: Merge remote-tracking branch 'openstreetmap/pull/1443' X-Git-Tag: live~4989 X-Git-Url: https://git.openstreetmap.org/rails.git/commitdiff_plain/8e6a5c21cb127e00d300707ff8b9a559e8085220?hp=7a0766a5e6dc3ab85f71a27fef8b049e56ef03b8 Merge remote-tracking branch 'openstreetmap/pull/1443' --- diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 15b98e0a8..d6516dc14 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -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 diff --git a/app/models/user_block.rb b/app/models/user_block.rb index de14dcaa9..eb0daba65 100644 --- a/app/models/user_block.rb +++ b/app/models/user_block.rb @@ -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. diff --git a/config/locales/en.yml b/config/locales/en.yml index 15a1912df..1867a433f 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -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: