diff options
author | Chris Smith <chris.eureka@jalakai.co.uk> | 2009-01-22 13:11:28 +0100 |
---|---|---|
committer | Chris Smith <chris.eureka@jalakai.co.uk> | 2009-01-22 13:11:28 +0100 |
commit | 404d2981b8e70b5f324b61c89a831d57a81c4a62 (patch) | |
tree | 61a9019ec04375b9124c80f05629b153cef53406 /lib | |
parent | f8121585ae97890245b1969cb62fbef583462b7d (diff) | |
download | rpg-404d2981b8e70b5f324b61c89a831d57a81c4a62.tar.gz rpg-404d2981b8e70b5f324b61c89a831d57a81c4a62.tar.bz2 |
upgradeplugindirectory plugin: rework redirect loop fix + improve messages for wiki admins
darcs-hash:20090122121128-f07c6-942f3696f2424432da6f45ab127273b98c7d9bf6.gz
Diffstat (limited to 'lib')
-rw-r--r-- | lib/plugins/upgradeplugindirectory/action.php | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/lib/plugins/upgradeplugindirectory/action.php b/lib/plugins/upgradeplugindirectory/action.php index 413bbebe5..c541db207 100644 --- a/lib/plugins/upgradeplugindirectory/action.php +++ b/lib/plugins/upgradeplugindirectory/action.php @@ -48,9 +48,8 @@ class action_plugin_upgradeplugindirectory extends DokuWiki_Action_Plugin { if (empty($plugin_controller)) return; - if(!is_writable(DOKU_INC.'lib/plugins')) { - msg("Plugin Directory Upgrade, lib/plugins isn't writable for the webserver, no action taken!", -1); - return; + if(!is_writable(DOKU_INC.'lib/plugins') && !auth_isAdmin()) { + return; } $plugins = $plugin_controller->getList('',true); // get all plugins @@ -70,6 +69,7 @@ class action_plugin_upgradeplugindirectory extends DokuWiki_Action_Plugin { } } + // note: only send messages when the user is an admin if ($attempts && auth_isAdmin()) { $level = $failures ? -1 : ($badclean ? 2 : 1); msg("Plugin Directory Upgrade, $updated/$attempts plugins updated, $success/$attempts cleaned.",$level); @@ -77,16 +77,24 @@ class action_plugin_upgradeplugindirectory extends DokuWiki_Action_Plugin { if ($failures) { msg("- the following disabled plugins couldn't be updated, please update by hand: ".join(',',$failures),$level); } - msg("For more information see http://www.dokuwiki.org/update",$level); + $morelink = true; } // no failures, our job is done, disable ourself if (!$failures) { - $plugin_controller->disable($this->getPluginName()); - // redirect to let dokuwiki start cleanly with plugins disabled. - act_redirect($ID,'upgradeplugindirectory'); + if ($plugin_controller->disable($this->getPluginName())) { + // redirect to let dokuwiki start cleanly with plugins disabled. + act_redirect($ID,'upgradeplugindirectory'); + } else { + if (auth_isAdmin()) { + if (!$attempts) msg('Plugin Directory Upgrade: Your plugin directory is up-to-date.',1); + msg('Plugin Directory Upgrade: Could not disable the upgrade plugin, please disable or delete it manually.',-1); + $morelink = true; + $level = -1; + } + } } - + if ($morelink) msg('For more information see <a href="http://www.dokuwiki.org/update">http://www.dokuwiki.org/update</a>',$level); } /* old style plugin isdisabled function */ |