Open einhirn opened 11 months ago
Ty, I am not in PHP mood this days, but if you can fix it, PR is welcome, or you can wait to switch to php projects.
Just for completeness sake, here's what Andreas de Pretis wrote in the old discussion section of the plugin page:
Very handy plugin, great work! By the way: redirecting into a namespace (e.g. foobar -> foobar:start) only works if the user/group has at least read permissions for the underlying/root namespace. In certain setups, e.g. one namespace per customer, this can be very tedious to securely implement. By removing a condition for the HTTP redirect this works out and permissions are checked on the target page anyway.
This was his original patch:
--- lib/plugins/autostart/action.php.orig 2009-11-24 20:41:31.000000000 +0100
+++ lib/plugins/autostart/action.php 2009-11-24 20:42:58.000000000 +0100
@@ -36,7 +36,7 @@
function preprocess(& $event, $param) {
global $conf;
global $ID;
- if (!$this->page_exists($ID) && $event->data == 'show')
+ if (!$this->page_exists($ID))
{
if($this->page_exists($ID.':'.$conf['start']))
// start page inside namespace
This Patch https://github.com/parmaja/autostart/commit/6bd8af21e1756b077cc6dbb5e964ff216d625ce5 has has some side effects. They will only appear on rare conditions, but never the less: if you deleted the Page ID “wiki:test” and now have a page “wiki:test:start”, you won't be able to revisit “wiki:test” to look for old Versions etc.
A possible workaround would be to look into what happens under the conditions Andreas described originally to figure out what actions we need to redirect on in addition to
show
. Or we could just add a Flag to the URL&redirect=no
like https://www.dokuwiki.org/plugin:redirect does:https://github.com/splitbrain/dokuwiki-plugin-redirect/blob/661b3e4ef4b6be1b9063a3411bcc3c3e9061768b/action.php#L43 https://github.com/splitbrain/dokuwiki-plugin-redirect/blob/661b3e4ef4b6be1b9063a3411bcc3c3e9061768b/action.php#L46
This is in the event hook for "DOKUWIKI_STARTED", but since it's
global $INPUT
, this should work for us, too.