diff options
Diffstat (limited to 'app/controllers/dashboard/todos_controller.rb')
-rw-r--r-- | app/controllers/dashboard/todos_controller.rb | 39 |
1 files changed, 27 insertions, 12 deletions
diff --git a/app/controllers/dashboard/todos_controller.rb b/app/controllers/dashboard/todos_controller.rb index d2434d4b0ba..3005d19f8ed 100644 --- a/app/controllers/dashboard/todos_controller.rb +++ b/app/controllers/dashboard/todos_controller.rb @@ -3,6 +3,7 @@ class Dashboard::TodosController < Dashboard::ApplicationController include ActionView::Helpers::NumberHelper include PaginatedCollection + include Gitlab::Utils::StrongMemoize before_action :authorize_read_project!, only: :index before_action :authorize_read_group!, only: :index @@ -64,19 +65,19 @@ class Dashboard::TodosController < Dashboard::ApplicationController def authorize_read_project! project_id = params[:project_id] - if project_id.present? - project = Project.find(project_id) - render_404 unless can?(current_user, :read_project, project) - end + return unless project_id.present? + + project = Project.find(project_id) + render_404 unless can?(current_user, :read_project, project) end def authorize_read_group! group_id = params[:group_id] - if group_id.present? - group = Group.find(group_id) - render_404 unless can?(current_user, :read_group, group) - end + return unless group_id.present? + + group = Group.find(group_id) + render_404 unless can?(current_user, :read_group, group) end def find_todos @@ -99,14 +100,28 @@ class Dashboard::TodosController < Dashboard::ApplicationController end def todo_params - aliased_action_id( + aliased_params( params.permit(:action_id, :author_id, :project_id, :type, :sort, :state, :group_id) ) end + strong_memoize_attr :todo_params + + def aliased_params(original_params) + alias_issue_type(original_params) + alias_action_id(original_params) + + original_params + end + + def alias_issue_type(original_params) + return unless original_params[:type] == Issue.name + + original_params[:type] = [Issue.name, WorkItem.name] + end - def aliased_action_id(original_params) - return original_params unless original_params[:action_id].to_i == ::Todo::MENTIONED + def alias_action_id(original_params) + return unless original_params[:action_id].to_i == ::Todo::MENTIONED - original_params.merge(action_id: [::Todo::MENTIONED, ::Todo::DIRECTLY_ADDRESSED]) + original_params[:action_id] = [::Todo::MENTIONED, ::Todo::DIRECTLY_ADDRESSED] end end |