/dmails: remove unused search[owner_id] param.
/dmails is restricted to viewing dmails for CurrentUser only (due to Dmail.visible in the index action). Remove owner_id from subnavbar links in /dmails, and don't support it in /dmails?search[owner_id], since it doesn't actually do anything. Also removes related dead methods and fixes tests that didn't test owner_id properly.
This commit is contained in:
@@ -2,11 +2,23 @@ module DmailsHelper
|
||||
def dmails_current_folder_path
|
||||
case cookies[:dmail_folder]
|
||||
when "sent"
|
||||
dmails_path(:search => {:owner_id => CurrentUser.id, :from_id => CurrentUser.id}, :folder => "sent")
|
||||
when "all"
|
||||
dmails_path(:search => {:owner_id => CurrentUser.id}, :folder => "all")
|
||||
sent_dmails_path
|
||||
when "received"
|
||||
received_dmails_path
|
||||
else
|
||||
dmails_path(:search => {:owner_id => CurrentUser.id, :to_id => CurrentUser.id}, :folder => "received")
|
||||
all_dmails_path
|
||||
end
|
||||
end
|
||||
|
||||
def all_dmails_path(params = {})
|
||||
dmails_path(folder: "all", **params)
|
||||
end
|
||||
|
||||
def sent_dmails_path(params = {})
|
||||
dmails_path(search: {from_id: CurrentUser.id}, folder: "sent", **params)
|
||||
end
|
||||
|
||||
def received_dmails_path(params = {})
|
||||
dmails_path(search: {to_id: CurrentUser.id}, folder: "received", **params)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -86,18 +86,6 @@ class Dmail < ActiveRecord::Base
|
||||
end
|
||||
|
||||
module SearchMethods
|
||||
def for(user)
|
||||
where("owner_id = ?", user)
|
||||
end
|
||||
|
||||
def inbox
|
||||
where("to_id = owner_id")
|
||||
end
|
||||
|
||||
def sent
|
||||
where("from_id = owner_id")
|
||||
end
|
||||
|
||||
def active
|
||||
where("is_deleted = ?", false)
|
||||
end
|
||||
@@ -139,10 +127,6 @@ class Dmail < ActiveRecord::Base
|
||||
q = q.search_message(params[:message_matches])
|
||||
end
|
||||
|
||||
if params[:owner_id].present?
|
||||
q = q.for(params[:owner_id].to_i)
|
||||
end
|
||||
|
||||
if params[:to_name].present?
|
||||
q = q.to_name_matches(params[:to_name])
|
||||
end
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
<% content_for(:secondary_links) do %>
|
||||
<menu>
|
||||
<li><%= render "quick_search" %></li>
|
||||
<li><%= link_to "All", dmails_path(:search => {:owner_id => CurrentUser.id}, :folder => "all", :set_default_folder => true) %></li>
|
||||
<li><%= link_to "Received", dmails_path(:search => {:owner_id => CurrentUser.id, :to_id => CurrentUser.id}, :folder => "received", :set_default_folder => true) %></li>
|
||||
<li><%= link_to "Sent", dmails_path(:search => {:owner_id => CurrentUser.id, :from_id => CurrentUser.id}, :folder => "sent", :set_default_folder => true) %></li>
|
||||
<li><%= link_to "All", all_dmails_path(set_default_folder: true) %></li>
|
||||
<li><%= link_to "Received", received_dmails_path(set_default_folder: true) %></li>
|
||||
<li><%= link_to "Sent", sent_dmails_path(set_default_folder: true) %></li>
|
||||
<li><%= link_to "New", new_dmail_path %></li>
|
||||
<li><%= link_to "Search", search_dmails_path %></li>
|
||||
<li><%= link_to "Mark all as read", {:controller => "dmails", :action => "mark_all_as_read"}, :method => :post, :remote => true %></li>
|
||||
|
||||
6
test/factories/post_disapproval.rb
Normal file
6
test/factories/post_disapproval.rb
Normal file
@@ -0,0 +1,6 @@
|
||||
FactoryGirl.define do
|
||||
factory(:post_disapproval) do
|
||||
reason { %w(breaks_rules poor_quality disinterest).sample }
|
||||
message { FFaker::Lorem.sentence }
|
||||
end
|
||||
end
|
||||
@@ -48,17 +48,17 @@ class DmailsControllerTest < ActionController::TestCase
|
||||
|
||||
context "index action" do
|
||||
should "show dmails owned by the current user" do
|
||||
get :index, {:owner_id_equals => @dmail.owner_id, :folder => "sent"}, {:user_id => @dmail.owner_id}
|
||||
get :index, {:search => {:owner_id => @dmail.owner_id, :folder => "sent"}}, {:user_id => @dmail.owner_id}
|
||||
assert_response :success
|
||||
assert_equal(1, assigns[:dmails].size)
|
||||
|
||||
get :index, {:owner_id_equals => @dmail.owner_id, :folder => "received"}, {:user_id => @dmail.owner_id}
|
||||
get :index, {:search => {:owner_id => @dmail.owner_id, :folder => "received"}}, {:user_id => @dmail.owner_id}
|
||||
assert_response :success
|
||||
assert_equal(1, assigns[:dmails].size)
|
||||
end
|
||||
|
||||
should "not show dmails not owned by the current user" do
|
||||
get :index, {:owner_id_equals => @dmail.owner_id}, {:user_id => @unrelated_user.id}
|
||||
get :index, {:search => {:owner_id => @dmail.owner_id}}, {:user_id => @unrelated_user.id}
|
||||
assert_response :success
|
||||
assert_equal(0, assigns[:dmails].size)
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user