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]
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
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')