diff options
author | Michael Hamann <michael@content-space.de> | 2012-09-09 13:01:11 +0200 |
---|---|---|
committer | Michael Hamann <michael@content-space.de> | 2012-09-09 13:01:11 +0200 |
commit | baf1d9a01127509f8f14cf4b6754a9eea0f1277a (patch) | |
tree | 08ec28e4ba09986752bd5d5678965292c91096c3 | |
parent | e9e762792aaa754e29c2ecbbd088b60f75b7d674 (diff) | |
download | rpg-baf1d9a01127509f8f14cf4b6754a9eea0f1277a.tar.gz rpg-baf1d9a01127509f8f14cf4b6754a9eea0f1277a.tar.bz2 |
Less restrictive plugin name checking
This partially reverts de50cad65ae679a602e71adddffdd74df7ea3fbb as the
strict check breaks existing plugins and this shouldn't be changed
without prior discussion and a warning for plugin authors with some time
to adjust their plugins. Now all characters that are valid in PHP class
names except "_" are allowed.
-rw-r--r-- | inc/load.php | 2 | ||||
-rw-r--r-- | inc/plugincontroller.class.php | 5 |
2 files changed, 4 insertions, 3 deletions
diff --git a/inc/load.php b/inc/load.php index 57295bd8a..8df68d1b3 100644 --- a/inc/load.php +++ b/inc/load.php @@ -95,7 +95,7 @@ function load_autoload($name){ } // Plugin loading - if(preg_match('/^(helper|syntax|action|admin|renderer|remote)_plugin_([a-z0-9]+)(?:_([^_]+))?$/', + if(preg_match('/^(helper|syntax|action|admin|renderer|remote)_plugin_([a-zA-Z0-9\x7f-\xff]+)(?:_([^_]+))?$/', $name, $m)) { // try to load the wanted plugin file $c = ((count($m) === 4) ? "/{$m[3]}" : ''); diff --git a/inc/plugincontroller.class.php b/inc/plugincontroller.class.php index 0d3080250..9d7b51e14 100644 --- a/inc/plugincontroller.class.php +++ b/inc/plugincontroller.class.php @@ -156,8 +156,9 @@ class Doku_Plugin_Controller { } else { $all_plugins[$plugin] = 1; } - if ($all_plugins[$plugin] == 1 && preg_match('/^[a-z0-9]+$/', $plugin) !== 1) { - msg(sprintf("Plugin name '%s' is not a valid plugin name, only the characters a-z and 0-9 are allowed.", hsc($plugin)), -1); + if ($all_plugins[$plugin] == 1 && preg_match('/^[a-zA-Z0-9\x7f-\xff]+$/', $plugin) !== 1) { + msg(sprintf("Plugin name '%s' is not a valid plugin name, only the characters a-z and 0-9 are allowed. ". + 'Maybe the plugin has been installed in the wrong directory?', hsc($plugin)), -1); } } $this->tmp_plugins = $all_plugins; |