]> source.dussan.org Git - redmine.git/commitdiff
Merged r15955 and r15956 (#24297).
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 26 Nov 2016 08:58:41 +0000 (08:58 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 26 Nov 2016 08:58:41 +0000 (08:58 +0000)
git-svn-id: http://svn.redmine.org/redmine/branches/3.3-stable@15999 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/controllers/timelog_controller.rb
test/integration/api_test/time_entries_test.rb

index 66ae976784c3ef195388d8c823c87b82f2a5ce07..7e4d6b71dd0047ed755030314c7818d2ed0e0a8b 100644 (file)
@@ -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
index f9d31eb8b85ef20c45a41598e94894e2f60ead7e..546f19a1941dae29b88147c00ff2d01616ee29cf 100644 (file)
@@ -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')