X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/67182f824e9ace7d5f6d40691e2d3d120b8fbfea..c45dbdae360cfbcbdc998b45e172cc30915add84:/app/controllers/application_controller.rb diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 7043d8206..791334d2d 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -111,6 +111,20 @@ class ApplicationController < ActionController::Base require_capability(:allow_write_gpx) end + ## + # require that the user is a moderator, or fill out a helpful error message + # and return them to the index for the controller this is wrapped from. + def require_moderator + unless @user.moderator? + if request.get? + flash[:error] = t('application.require_moderator.not_a_moderator') + redirect_to :action => 'index' + else + render :nothing => true, :status => :forbidden + end + end + end + ## # sets up the @user object for use by other methods. this is mostly called # from the authorize method, but can be called elsewhere if authorisation @@ -164,6 +178,10 @@ class ApplicationController < ActionController::Base # to be used as a before_filter *after* authorize. this checks that # the user is a moderator and, if not, returns a forbidden error. # + # NOTE: this isn't a very good way of doing it - it duplicates logic + # from require_moderator - but what we really need to do is a fairly + # drastic refactoring based on :format and respond_to? but not a + # good idea to do that in this branch. def authorize_moderator(errormessage="Access restricted to moderators") # check user is a moderator unless @user.moderator?