diff options
-rw-r--r-- | app/models/incoming_message.rb | 8 | ||||
-rw-r--r-- | app/models/info_request.rb | 8 | ||||
-rw-r--r-- | lib/ability.rb | 13 | ||||
-rw-r--r-- | spec/models/incoming_message_spec.rb | 2 |
4 files changed, 15 insertions, 16 deletions
diff --git a/app/models/incoming_message.rb b/app/models/incoming_message.rb index 6e85f86f0..398289c28 100644 --- a/app/models/incoming_message.rb +++ b/app/models/incoming_message.rb @@ -72,13 +72,7 @@ class IncomingMessage < ActiveRecord::Base end def user_can_view?(user) - if self.prominence == 'hidden' - return User.view_hidden?(user) - end - if self.prominence == 'requester_only' - return self.info_request.is_owning_user?(user) - end - return true + Ability.can_view_with_prominence?(self.prominence, self.info_request, user) end # Return a cached structured mail object diff --git a/app/models/info_request.rb b/app/models/info_request.rb index ad210c6fc..8c8a23066 100644 --- a/app/models/info_request.rb +++ b/app/models/info_request.rb @@ -1018,13 +1018,7 @@ public end def user_can_view?(user) - if self.prominence == 'hidden' - return User.view_hidden?(user) - end - if self.prominence == 'requester_only' - return self.is_owning_user?(user) - end - return true + Ability.can_view_with_prominence?(self.prominence, self, user) end # Is this request visible to everyone? diff --git a/lib/ability.rb b/lib/ability.rb index 2865ccb1c..f63845e84 100644 --- a/lib/ability.rb +++ b/lib/ability.rb @@ -2,4 +2,15 @@ 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 + + def self.can_view_with_prominence?(prominence, info_request, user) + if prominence == 'hidden' + return User.view_hidden?(user) + end + if prominence == 'requester_only' + return info_request.is_owning_user?(user) + end + return true + end + +end diff --git a/spec/models/incoming_message_spec.rb b/spec/models/incoming_message_spec.rb index a45bf303e..ad4def0bb 100644 --- a/spec/models/incoming_message_spec.rb +++ b/spec/models/incoming_message_spec.rb @@ -54,7 +54,7 @@ describe IncomingMessage, 'when getting a response event' do end -describe IncomingMessage, 'when asked if a user can view it', :focus => true do +describe IncomingMessage, 'when asked if a user can view it' do before do @user = mock_model(User) |