aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/controllers/request_controller.rb17
1 files changed, 15 insertions, 2 deletions
diff --git a/app/controllers/request_controller.rb b/app/controllers/request_controller.rb
index c382a55f1..24dbbeba0 100644
--- a/app/controllers/request_controller.rb
+++ b/app/controllers/request_controller.rb
@@ -9,8 +9,8 @@ require 'zip/zip'
require 'open-uri'
class RequestController < ApplicationController
- before_filter :check_read_only, :only => [ :new, :show_response, :describe_state, :upload_response ]
- protect_from_forgery :only => [ :new, :show_response, :describe_state, :upload_response ] # See ActionController::RequestForgeryProtection for details
+ before_filter :check_read_only, :only => [ :new, :show_response, :describe_state, :describe_state_requires_admin, :upload_response ]
+ protect_from_forgery :only => [ :new, :show_response, :describe_state, :describe_state_requires_admin, :upload_response ] # See ActionController::RequestForgeryProtection for details
MAX_RESULTS = 500
PER_PAGE = 25
@@ -506,6 +506,19 @@ class RequestController < ApplicationController
def describe_state_requires_admin
@info_request = InfoRequest.find(params[:id])
+
+ # Check authenticated. We check is_owning_user
+ # to get admin overrides (see is_owning_user? above)
+ if !@info_request.is_owning_user?(authenticated_user) &&
+ !authenticated_as_user?(@info_request.user,
+ :web => _("To classify the response to this FOI request"),
+ :email => _("Then you can classify the FOI response you have got from ") + @info_request.public_body.name + ".",
+ :email_subject => _("Classify an FOI response from ") + @info_request.public_body.name
+ )
+ # do nothing - as "authenticated?" has done the redirect to signin page for us
+ return
+ end
+
@info_request.set_described_state("requires_admin", nil, params[:message])
end