Browse Source

Fixes #4658 - Missing hint to restart Rails server on http_type, fqdn modification.

Co-authored-by: Florian Liebe <fl@zammad.com>
Tobias Schäfer 1 year ago
parent
commit
397eeb9714

+ 4 - 0
app/controllers/settings_controller.rb

@@ -27,6 +27,10 @@ class SettingsController < ApplicationController
   # PUT /settings/1
   def update
     clean_params = keep_certain_attributes
+
+    name = Setting.find(params[:id]).name
+    Zammad::Restart.perform if %w[http_type fqdn].include?(name)
+
     model_update_render(Setting, clean_params)
   end
 

+ 1 - 7
app/models/object_manager/attribute.rb

@@ -732,13 +732,7 @@ to send no browser reload event, pass false
     # sent maintenance message to clients
     if send_event
       if execute_db_count.nonzero?
-        if ENV['APP_RESTART_CMD']
-          AppVersion.set(true, 'restart_auto')
-          sleep 4
-          AppVersionRestartJob.perform_later(ENV['APP_RESTART_CMD'])
-        else
-          AppVersion.set(true, 'restart_manual')
-        end
+        Zammad::Restart.perform
       elsif execute_config_count.nonzero?
         AppVersion.set(true, 'config_changed')
       end

+ 17 - 0
lib/zammad/restart.rb

@@ -0,0 +1,17 @@
+# Copyright (C) 2012-2023 Zammad Foundation, https://zammad-foundation.org/
+
+module Zammad
+  module Restart
+    def self.perform
+      if ENV['APP_RESTART_CMD']
+        AppVersion.set(true, 'restart_auto')
+        sleep 4
+        AppVersionRestartJob.perform_later(ENV['APP_RESTART_CMD'])
+      else
+        AppVersion.set(true, 'restart_manual')
+      end
+
+      true
+    end
+  end
+end