Browse Source

Fixes #4744 - Cannot change organisation of ticket.

Co-authored-by: Dominik Klein <dk@zammad.com>
Rolf Schmidt 1 year ago
parent
commit
e70a8eabdf

+ 1 - 0
app/assets/javascripts/app/controllers/ticket_customer.coffee

@@ -13,6 +13,7 @@ class App.TicketCustomer extends App.ControllerModal
       model:           App.Ticket
       mixedAttributes: configure_attributes
       screen:          'edit'
+      params:          { id: @ticket_id }
       autofocus:       true,
       handlersConfig:  [App.TicketZoomFormHandlerMultiOrganization],
     )

+ 1 - 1
app/models/core_workflow/custom/ticket_time_accounting_check.rb

@@ -18,7 +18,7 @@ class CoreWorkflow::Custom::TicketTimeAccountingCheck < CoreWorkflow::Custom::Ba
   end
 
   def available_for_user?
-    TicketPolicy.new(current_user, @result_object.attributes.selected).agent_update_access?
+    selected.persisted? && TicketPolicy.new(current_user, selected).agent_update_access?
   end
 
   def selector

+ 14 - 0
spec/models/core_workflow/custom/ticket_time_accounting_check_spec.rb

@@ -21,4 +21,18 @@ RSpec.describe CoreWorkflow::Custom::TicketTimeAccountingCheck, type: :model do
       expect(result.dig(:flags, :time_accounting)).not_to be(true)
     end
   end
+
+  describe 'Cannot change organisation of ticket #4744' do
+    let(:payload) do
+      base_payload.merge('params' => { 'customer_id' => '', 'organization_id' => '' }, 'screen' => 'edit')
+    end
+
+    before do
+      action_user.update(groups: [create(:group), create(:group), create(:group)])
+    end
+
+    it 'does not show for customers' do
+      expect { result }.not_to raise_error(NoMethodError)
+    end
+  end
 end