Browse Source

Follow-up 9829526f: Add own permission for ticket state and priority admin screens.

Dominik Klein 1 year ago
parent
commit
79ec62454c

+ 1 - 1
app/assets/javascripts/app/controllers/ticket_priority.coffee

@@ -1,5 +1,5 @@
 class TicketPriority extends App.ControllerSubContent
-  @requiredPermission: 'admin.object'
+  @requiredPermission: 'admin.ticket_priority'
   header: __('Ticket Priority')
   constructor: ->
     super

+ 1 - 1
app/assets/javascripts/app/controllers/ticket_state.coffee

@@ -1,5 +1,5 @@
 class TicketState extends App.ControllerSubContent
-  @requiredPermission: 'admin.object'
+  @requiredPermission: 'admin.ticket_state'
   header: __('Ticket States')
   constructor: ->
     super

+ 2 - 2
app/policies/controllers/ticket_priorities_controller_policy.rb

@@ -1,6 +1,6 @@
 # Copyright (C) 2012-2023 Zammad Foundation, https://zammad-foundation.org/
 
 class Controllers::TicketPrioritiesControllerPolicy < Controllers::ApplicationControllerPolicy
-  permit! %i[index show], to: ['ticket.agent', 'admin.object', 'ticket.customer']
-  permit! %i[create update destroy], to: 'admin.object'
+  permit! %i[index show], to: ['ticket.agent', 'admin.ticket_priority', 'ticket.customer']
+  permit! %i[create update destroy], to: 'admin.ticket_priority'
 end

+ 2 - 2
app/policies/controllers/ticket_states_controller_policy.rb

@@ -1,6 +1,6 @@
 # Copyright (C) 2012-2023 Zammad Foundation, https://zammad-foundation.org/
 
 class Controllers::TicketStatesControllerPolicy < Controllers::ApplicationControllerPolicy
-  permit! %i[index show], to: ['ticket.agent', 'admin.object', 'ticket.customer']
-  permit! %i[create update destroy], to: 'admin.object'
+  permit! %i[index show], to: ['ticket.agent', 'admin.ticket_state', 'ticket.customer']
+  permit! %i[create update destroy], to: 'admin.ticket_state'
 end

+ 23 - 0
db/migrate/20231130211242_add_admin_ticket_state_and_priority_permission.rb

@@ -0,0 +1,23 @@
+# Copyright (C) 2012-2023 Zammad Foundation, https://zammad-foundation.org/
+
+class AddAdminTicketStateAndPriorityPermission < ActiveRecord::Migration[7.0]
+  def change
+    # return if it's a new setup
+    return if !Setting.exists?(name: 'system_init_done')
+
+    Permission.create_if_not_exists(
+      name:        'admin.ticket_state',
+      note:        'Manage %s Settings',
+      preferences: {
+        translations: ['Ticket States']
+      },
+    )
+    Permission.create_if_not_exists(
+      name:        'admin.ticket_priority',
+      note:        'Manage %s Settings',
+      preferences: {
+        translations: ['Ticket Priorities']
+      },
+    )
+  end
+end

+ 14 - 0
db/seeds/permissions.rb

@@ -201,6 +201,20 @@ Permission.create_if_not_exists(
     translations: [__('Ticket')]
   },
 )
+Permission.create_if_not_exists(
+  name:        'admin.ticket_state',
+  note:        __('Manage %s Settings'),
+  preferences: {
+    translations: [__('Ticket States')]
+  },
+)
+Permission.create_if_not_exists(
+  name:        'admin.ticket_priority',
+  note:        __('Manage %s Settings'),
+  preferences: {
+    translations: [__('Ticket Priorities')]
+  },
+)
 Permission.create_if_not_exists(
   name:        'admin.package',
   note:        __('Manage %s'),

+ 2 - 0
i18n/zammad.pot

@@ -12680,6 +12680,7 @@ msgid "Ticket Owner"
 msgstr ""
 
 #: app/assets/javascripts/app/controllers/ticket_priority.coffee
+#: db/seeds/permissions.rb
 msgid "Ticket Priorities"
 msgstr ""
 
@@ -12696,6 +12697,7 @@ msgid "Ticket State"
 msgstr ""
 
 #: app/assets/javascripts/app/controllers/ticket_state.coffee
+#: db/seeds/permissions.rb
 msgid "Ticket States"
 msgstr ""