Merged r15855 (#23766).

git-svn-id: http://svn.redmine.org/redmine/branches/3.3-stable@15875 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang
2016-10-02 10:21:02 +00:00
parent 98327ab4a4
commit 87e36462d6
2 changed files with 17 additions and 2 deletions

View File

@@ -496,8 +496,13 @@ class Issue < ActiveRecord::Base
# Project and Tracker must be set before since new_statuses_allowed_to depends on it.
if (p = attrs.delete('project_id')) && safe_attribute?('project_id')
if allowed_target_projects(user).where(:id => p.to_i).exists?
self.project_id = p
if p.is_a?(String) && !p.match(/^\d*$/)
p_id = Project.find_by_identifier(p).try(:id)
else
p_id = p.to_i
end
if allowed_target_projects(user).where(:id => p_id).exists?
self.project_id = p_id
end
if project_id_changed? && attrs['category_id'].to_s == category_id_was.to_s

View File

@@ -491,6 +491,16 @@ JSON
assert_equal 'API test', issue.subject
end
test "POST /issues.json should accept project identifier as project_id" do
assert_difference('Issue.count') do
post '/issues.json',
{:issue => {:project_id => 'subproject1', :tracker_id => 2, :subject => 'Foo'}},
credentials('jsmith')
assert_response :created
end
end
test "POST /issues.json without tracker_id should accept custom fields" do
field = IssueCustomField.generate!(
:field_format => 'list',