Issue relation: fixes error with postgres when entering a non-numeric id (#4820) + accept hash (#) before id.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3413 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
541d830d2a
commit
55a3ac764f
@ -21,8 +21,8 @@ class IssueRelationsController < ApplicationController
|
|||||||
def new
|
def new
|
||||||
@relation = IssueRelation.new(params[:relation])
|
@relation = IssueRelation.new(params[:relation])
|
||||||
@relation.issue_from = @issue
|
@relation.issue_from = @issue
|
||||||
if params[:relation] && !params[:relation][:issue_to_id].blank?
|
if params[:relation] && m = params[:relation][:issue_to_id].to_s.match(/^#?(\d+)$/)
|
||||||
@relation.issue_to = Issue.visible.find_by_id(params[:relation][:issue_to_id])
|
@relation.issue_to = Issue.visible.find_by_id(m[1].to_i)
|
||||||
end
|
end
|
||||||
@relation.save if request.post?
|
@relation.save if request.post?
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
|
@ -40,6 +40,24 @@ class IssueRelationsControllerTest < ActionController::TestCase
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_new_should_accept_id_with_hash
|
||||||
|
assert_difference 'IssueRelation.count' do
|
||||||
|
@request.session[:user_id] = 3
|
||||||
|
post :new, :issue_id => 1,
|
||||||
|
:relation => {:issue_to_id => '#2', :relation_type => 'relates', :delay => ''}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_new_should_not_break_with_non_numerical_id
|
||||||
|
assert_no_difference 'IssueRelation.count' do
|
||||||
|
assert_nothing_raised do
|
||||||
|
@request.session[:user_id] = 3
|
||||||
|
post :new, :issue_id => 1,
|
||||||
|
:relation => {:issue_to_id => 'foo', :relation_type => 'relates', :delay => ''}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def test_should_create_relations_with_visible_issues_only
|
def test_should_create_relations_with_visible_issues_only
|
||||||
Setting.cross_project_issue_relations = '1'
|
Setting.cross_project_issue_relations = '1'
|
||||||
assert_nil Issue.visible(User.find(3)).find_by_id(4)
|
assert_nil Issue.visible(User.find(3)).find_by_id(4)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user