aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/models/incoming_message.rb8
-rw-r--r--app/models/info_request.rb8
-rw-r--r--lib/ability.rb13
-rw-r--r--spec/models/incoming_message_spec.rb2
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)