Browse Source

Fixes #4032 - Admin macros are not usable with admin permissions only.

Rolf Schmidt 3 years ago
parent
commit
cab79f99e2

+ 1 - 1
app/policies/controllers/macros_controller_policy.rb

@@ -3,5 +3,5 @@
 class Controllers::MacrosControllerPolicy < Controllers::ApplicationControllerPolicy
   default_permit! ['admin.macro']
 
-  permit! %i[index show], to: ['ticket.agent']
+  permit! %i[index show], to: ['admin.macro', 'ticket.agent']
 end

+ 4 - 0
spec/factories/user.rb

@@ -48,6 +48,10 @@ FactoryBot.define do
       roles { Role.where(name: %w[Admin Agent]) }
     end
 
+    factory :admin_only do
+      roles { Role.where(name: %w[Admin]) }
+    end
+
     trait :with_valid_password do
       password { generate :password_valid }
     end

+ 16 - 0
spec/requests/macro_spec.rb

@@ -128,6 +128,14 @@ RSpec.describe 'Macro', type: :request, authenticated_as: :user do
         expect(json_response.map { |elem| elem['id'] }).to eq [Macro.first.id]
       end
     end
+
+    context 'when user is admin only' do
+      let(:user) { create(:admin_only) }
+
+      it 'returns array of macros' do
+        expect(json_response.map { |elem| elem['id'] }).to eq [Macro.first.id]
+      end
+    end
   end
 
   describe '#show' do
@@ -160,5 +168,13 @@ RSpec.describe 'Macro', type: :request, authenticated_as: :user do
         end
       end
     end
+
+    context 'when user is admin only' do
+      let(:user) { create(:admin_only) }
+
+      it 'returns array of macros' do
+        expect(response).to have_http_status(:ok)
+      end
+    end
   end
 end