summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2016-11-26 08:58:41 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2016-11-26 08:58:41 +0000
commit6ebb700db2f5d293661f6663e1de6f8ecdb07de2 (patch)
tree6ac7e37a408d0c89a6b093066638ef7a1092b1a9
parent1a374308580e9d5341d9c942a576a1a0ae9afc48 (diff)
downloadredmine-6ebb700db2f5d293661f6663e1de6f8ecdb07de2.tar.gz
redmine-6ebb700db2f5d293661f6663e1de6f8ecdb07de2.zip
Merged r15955 and r15956 (#24297).
git-svn-id: http://svn.redmine.org/redmine/branches/3.3-stable@15999 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r--app/controllers/timelog_controller.rb10
-rw-r--r--test/integration/api_test/time_entries_test.rb11
2 files changed, 18 insertions, 3 deletions
diff --git a/app/controllers/timelog_controller.rb b/app/controllers/timelog_controller.rb
index 66ae97678..7e4d6b71d 100644
--- a/app/controllers/timelog_controller.rb
+++ b/app/controllers/timelog_controller.rb
@@ -19,6 +19,7 @@ class TimelogController < ApplicationController
menu_item :issues
before_filter :find_time_entry, :only => [:show, :edit, :update]
+ before_filter :check_editability, :only => [:edit, :update]
before_filter :find_time_entries, :only => [:bulk_edit, :bulk_update, :destroy]
before_filter :authorize, :only => [:show, :edit, :update, :bulk_edit, :bulk_update, :destroy]
@@ -222,13 +223,16 @@ class TimelogController < ApplicationController
private
def find_time_entry
@time_entry = TimeEntry.find(params[:id])
+ @project = @time_entry.project
+ rescue ActiveRecord::RecordNotFound
+ render_404
+ end
+
+ def check_editability
unless @time_entry.editable_by?(User.current)
render_403
return false
end
- @project = @time_entry.project
- rescue ActiveRecord::RecordNotFound
- render_404
end
def find_time_entries
diff --git a/test/integration/api_test/time_entries_test.rb b/test/integration/api_test/time_entries_test.rb
index f9d31eb8b..546f19a19 100644
--- a/test/integration/api_test/time_entries_test.rb
+++ b/test/integration/api_test/time_entries_test.rb
@@ -48,6 +48,17 @@ class Redmine::ApiTest::TimeEntriesTest < Redmine::ApiTest::Base
assert_select 'time_entry id', :text => '2'
end
+ test "GET /time_entries/:id.xml on closed project should return the time entry" do
+ project = TimeEntry.find(2).project
+ project.close
+ project.save!
+
+ get '/time_entries/2.xml', {}, credentials('jsmith')
+ assert_response :success
+ assert_equal 'application/xml', @response.content_type
+ assert_select 'time_entry id', :text => '2'
+ end
+
test "POST /time_entries.xml with issue_id should create time entry" do
assert_difference 'TimeEntry.count' do
post '/time_entries.xml', {:time_entry => {:issue_id => '1', :spent_on => '2010-12-02', :hours => '3.5', :activity_id => '11'}}, credentials('jsmith')