diff options
-rw-r--r-- | app/controllers/request_controller.rb | 10 | ||||
-rw-r--r-- | lib/ability.rb | 5 |
2 files changed, 11 insertions, 4 deletions
diff --git a/app/controllers/request_controller.rb b/app/controllers/request_controller.rb index 659537e80..984689ce1 100644 --- a/app/controllers/request_controller.rb +++ b/app/controllers/request_controller.rb @@ -507,10 +507,12 @@ class RequestController < ApplicationController def describe_state_requires_admin @info_request = InfoRequest.find_by_url_title!(params[:url_title]) - unless (authenticated_user && @info_request.is_old_unclassified?) || @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) + unless Ability::can_update_request_state?(authenticated_user, @info_request) + # If we got here this is always going to be false + 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) return end diff --git a/lib/ability.rb b/lib/ability.rb new file mode 100644 index 000000000..2865ccb1c --- /dev/null +++ b/lib/ability.rb @@ -0,0 +1,5 @@ +module Ability + def self.can_update_request_state?(user, request) + (user && request.is_old_unclassified?) || request.is_owning_user?(user) + end +end
\ No newline at end of file |