git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@8693 e93f8b46-1217-0410-a6f0-8f06a7374b81tags/1.4.0
@@ -262,12 +262,14 @@ private | |||
end | |||
def find_project | |||
if (project_id = (params[:project_id] || params[:time_entry] && params[:time_entry][:project_id])).present? | |||
@project = Project.find(project_id) | |||
end | |||
if (issue_id = (params[:issue_id] || params[:time_entry] && params[:time_entry][:issue_id])).present? | |||
@issue = Issue.find(issue_id) | |||
@project = @issue.project | |||
elsif (project_id = (params[:project_id] || params[:time_entry] && params[:time_entry][:project_id])).present? | |||
@project = Project.find(project_id) | |||
else | |||
@project ||= @issue.project | |||
end | |||
if @project.nil? | |||
render_404 | |||
return false | |||
end |
@@ -209,6 +209,20 @@ class TimelogControllerTest < ActionController::TestCase | |||
assert_equal 1, time_entry.project_id | |||
end | |||
def test_create_without_project_should_fail_with_issue_not_inside_project | |||
@request.session[:user_id] = 2 | |||
assert_no_difference 'TimeEntry.count' do | |||
post :create, :time_entry => {:project_id => '1', | |||
:activity_id => '11', | |||
:issue_id => '5', | |||
:spent_on => '2008-03-14', | |||
:hours => '7.3'} | |||
end | |||
assert_response :success | |||
assert assigns(:time_entry).errors[:issue_id].present? | |||
end | |||
def test_create_without_project_should_deny_without_permission | |||
@request.session[:user_id] = 2 | |||
Project.find(3).disable_module!(:time_tracking) |