Skip to content
Snippets Groups Projects
Commit 57eb3954 authored by Grzegorz Bizon's avatar Grzegorz Bizon
Browse files

Do not pass unsanitized params to issue move service

parent 4cbe87d5
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -88,7 +88,8 @@ class Projects::IssuesController < Projects::ApplicationController
 
def update
@issue = Issues::UpdateService.new(project, current_user, issue_params).execute(issue)
move_service = Issues::MoveService.new(project, current_user, params.require(:issue).permit!, @issue)
move_service = Issues::MoveService.new(project, current_user, issue_params,
@issue, params['move_to_project_id'])
 
if move_service.move?
@issue = move_service.execute
Loading
Loading
module Issues
class MoveService < Issues::BaseService
def initialize(project, current_user, params, issue)
def initialize(project, current_user, params, issue, new_project_id)
super(project, current_user, params)
 
@issue_old = issue
@issue_new = @issue_old.dup
@project_old = @project
if params['move_to_project_id']
@project_new = Project.find(params['move_to_project_id'])
end
@project_new = Project.find(new_project_id) if new_project_id
end
 
def execute
Loading
Loading
Loading
Loading
@@ -7,10 +7,14 @@ describe Issues::MoveService, services: true do
let(:old_project) { create(:project) }
let(:old_issue) { create(:issue, title: title, description: description, project: old_project) }
let(:new_project) { create(:project) }
let(:move_service) { described_class.new(old_project, user, move_params, old_issue) }
let(:issue_params) { old_issue.serializable_hash }
let(:move_service) do
described_class.new(old_project, user, issue_params, old_issue, new_project_id)
end
 
shared_context 'issue move requested' do
let(:move_params) { { 'move_to_project_id' => new_project.id } }
let(:new_project_id) { new_project.id }
end
 
shared_context 'user can move issue' do
Loading
Loading
@@ -108,7 +112,7 @@ describe Issues::MoveService, services: true do
end
 
context 'issue move not requested' do
let(:move_params) { {} }
let(:new_project_id) { nil }
 
describe '#move?' do
subject { move_service.move? }
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment