Fix wrong issues appears at Dashboard#issues page

Filtering service used klass instead of passed items.
Because of this you see list of all issues intead of authorized ones.
This commit fixes it so people see only issues they are authorized to
see.

Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
This commit is contained in:
Dmitriy Zaporozhets
2014-02-10 15:04:52 +02:00
parent 5a098e84e4
commit 56f989e53e
3 changed files with 10 additions and 10 deletions
+2 -2
View File
@@ -54,12 +54,12 @@ class DashboardController < ApplicationController
def merge_requests
@merge_requests = FilteringService.new.execute(MergeRequest, current_user, params)
@merge_requests = @merge_requests.recent.page(params[:page]).per(20)
@merge_requests = @merge_requests.page(params[:page]).per(20)
end
def issues
@issues = FilteringService.new.execute(Issue, current_user, params)
@issues = @issues.recent.page(params[:page]).per(20)
@issues = @issues.page(params[:page]).per(20)
@issues = @issues.includes(:author, :project)
respond_to do |format|
+5 -5
View File
@@ -48,13 +48,13 @@ module Issuable
def sort(method)
case method.to_s
when 'newest' then reorder('created_at DESC')
when 'oldest' then reorder('created_at ASC')
when 'recently_updated' then reorder('updated_at DESC')
when 'last_updated' then reorder('updated_at ASC')
when 'newest' then reorder("#{table_name}.created_at DESC")
when 'oldest' then reorder("#{table_name}.created_at ASC")
when 'recently_updated' then reorder("#{table_name}.updated_at DESC")
when 'last_updated' then reorder("#{table_name}.updated_at ASC")
when 'milestone_due_soon' then joins(:milestone).reorder("milestones.due_date ASC")
when 'milestone_due_later' then joins(:milestone).reorder("milestones.due_date DESC")
else reorder('created_at DESC')
else reorder("#{table_name}.created_at DESC")
end
end
end
+3 -3
View File
@@ -57,11 +57,11 @@ class FilteringService
def by_scope(items)
case params[:scope]
when 'created-by-me', 'authored' then
klass.where(author_id: current_user.id)
items.where(author_id: current_user.id)
when 'all' then
klass
items
when 'assigned-to-me' then
klass.where(assignee_id: current_user.id)
items.where(assignee_id: current_user.id)
else
raise 'You must specify default scope'
end