Browse Source

Fixes #3841 - Zammad returns stack error when one tries to remove groups via API.

Rolf Schmidt 3 years ago
parent
commit
59ecff9274
2 changed files with 21 additions and 0 deletions
  1. 1 0
      app/controllers/groups_controller.rb
  2. 20 0
      spec/requests/group_spec.rb

+ 1 - 0
app/controllers/groups_controller.rb

@@ -149,6 +149,7 @@ curl http://localhost/api/v1/groups/{id} -v -u #{login}:#{password} -H "Content-
 =end
 
   def destroy
+    model_references_check(Group, params)
     model_destroy_render(Group, params)
   end
 end

+ 20 - 0
spec/requests/group_spec.rb

@@ -0,0 +1,20 @@
+# Copyright (C) 2012-2021 Zammad Foundation, http://zammad-foundation.org/
+
+require 'rails_helper'
+
+RSpec.describe 'Group', type: :request, authenticated_as: -> { user } do
+  describe 'Zammad returns stack error when one tries to remove groups via API #3841' do
+    let(:group) { create(:group) }
+    let(:ticket) { create(:ticket, group: group) }
+    let(:user) { create(:admin) }
+
+    before do
+      ticket
+    end
+
+    it 'does return reference error on delete if related objects exist' do
+      delete "/api/v1/groups/#{group.id}", params: {}, as: :json
+      expect(json_response['error']).to eq("Can't delete, object has references.")
+    end
+  end
+end