]> source.dussan.org Git - redmine.git/commitdiff
Change plugins directory through the configuration.yml file (#24007).
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Fri, 18 Nov 2016 12:14:41 +0000 (12:14 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Fri, 18 Nov 2016 12:14:41 +0000 (12:14 +0000)
Patch by Helder Manuel Torres Vieira.

git-svn-id: http://svn.redmine.org/redmine/trunk@15963 e93f8b46-1217-0410-a6f0-8f06a7374b81

config/configuration.yml.example
lib/generators/redmine_plugin/redmine_plugin_generator.rb
lib/generators/redmine_plugin_controller/redmine_plugin_controller_generator.rb
lib/generators/redmine_plugin_model/redmine_plugin_model_generator.rb
lib/redmine/plugin.rb

index 3522ef6950643a0883f6d43ffaa4c37716c3cc84..83232f30b664d2279e0c14e58ca4c365b551fcaf 100644 (file)
@@ -75,6 +75,15 @@ default:
   # attachments_storage_path: D:/redmine/files
   attachments_storage_path:
 
+  # Absolute path to the directory where plugins are stored.
+  # The default is the 'plugins' directory in your Redmine instance.
+  # Your Redmine instance needs to have read permission on this
+  # directory.
+  # Examples:
+  # plugins_path: /var/redmine/plugins
+  # plugins_path: D:/redmine/plugins
+  plugins_path:
+
   # Configuration of the autologin cookie.
   # autologin_cookie_name: the name of the cookie (default: autologin)
   # autologin_cookie_path: the cookie path (default: /)
index 562366342feb1849b3fc28b5f8aee9796567d525..a9d701577e38b4f68d71258c6af84764b3f09e82 100644 (file)
@@ -7,7 +7,12 @@ class RedminePluginGenerator < Rails::Generators::NamedBase
     super
     @plugin_name = file_name.underscore
     @plugin_pretty_name = plugin_name.titleize
-    @plugin_path = "plugins/#{plugin_name}"
+    if Redmine::Configuration['plugins_path'].nil?
+      @plugin_path = File.join(Rails.root, 'plugins', plugin_name)
+    else
+      @plugin_path = File.join(Redmine::Configuration['plugins_path'], plugin_name)
+    end
+    puts @plugin_path
   end
 
   def copy_templates
index 8351ce681e12210f60eb6defa14251a5838bb690..231b6881029258245601318ccfbb539a68b66b15 100644 (file)
@@ -9,7 +9,11 @@ class RedminePluginControllerGenerator < Rails::Generators::NamedBase
     super
     @plugin_name = file_name.underscore
     @plugin_pretty_name = plugin_name.titleize
-    @plugin_path = "plugins/#{plugin_name}"
+    if Redmine::Configuration['plugins_path'].nil?
+      @plugin_path = File.join(Rails.root, 'plugins', plugin_name)
+    else
+      @plugin_path = File.join(Redmine::Configuration['plugins_path'], plugin_name)
+    end
     @controller_class = controller.camelize
   end
 
index 2e5f03108042cb34fc0b7cc4e4deb946dc23a6e1..bea9b68081ec15f9037a9778c88bd2a2a7a4875e 100644 (file)
@@ -14,7 +14,11 @@ class RedminePluginModelGenerator < Rails::Generators::NamedBase
     super
     @plugin_name = file_name.underscore
     @plugin_pretty_name = plugin_name.titleize
-    @plugin_path = "plugins/#{plugin_name}"
+    if Redmine::Configuration['plugins_path'].nil?
+      @plugin_path = File.join(Rails.root, 'plugins', plugin_name)
+    else
+      @plugin_path = File.join(Redmine::Configuration['plugins_path'], plugin_name)
+    end
     @model_class = model.camelize
     @table_name = @model_class.tableize
     @migration_filename = "create_#{@table_name}"
index 503c3db2c8d42eb9c4ad82661de1682c62c94f09..9ab364b3a1add1aafce9a187c26f8c2513717c2e 100644 (file)
@@ -44,7 +44,7 @@ module Redmine #:nodoc:
   # When rendered, the plugin settings value is available as the local variable +settings+
   class Plugin
     cattr_accessor :directory
-    self.directory = File.join(Rails.root, 'plugins')
+    self.directory = Redmine::Configuration['plugins_path'] || File.join(Rails.root, 'plugins')
 
     cattr_accessor :public_directory
     self.public_directory = File.join(Rails.root, 'public', 'plugin_assets')