This is an old revision of the document!
Table of Contents
ondeniedlogin plugin
Compatible with DokuWiki
No compatibility info given!
This extension has not been updated in over 2 years. It may no longer be maintained or supported and may have compatibility issues.
Similar to showlogin, showlogin2
Download and Installation
- Downloads have error. Missing “php” in first line. Download and install the plugin using the Plugin Manager using the following URL.
Or copy paste this code into your lib/plugins/ondeniedlogin/action.php .
- action.php
<?php if(!defined('DOKU_INC')) die(); if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/'); require_once(DOKU_PLUGIN.'action.php'); class action_plugin_ondeniedlogin extends DokuWiki_Action_Plugin { function getInfo(){ return array( 'author' => 'Samuel Fischer', 'email' => 'sf@notomorrow.de', 'date' => '2009-04-21', 'name' => 'ondeniedlogin', 'desc' => 'redirects unknown users to a login form on denied requests', 'url' => 'http://www.dokuwiki.org/plugin:ondeniedlogin', ); } function register(Doku_Event_Handler $controller) { $controller->register_hook('TPL_ACT_RENDER', 'BEFORE', $this, 'ondeniedlogin'); } function ondeniedlogin(&$event, $param) { global $ACT, $INFO; if($ACT!='denied') return; if(!is_array($INFO['userinfo'])) $ACT = 'login'; } }
Patches
Show Search Page for Authenticated Users
This adds the following functionality to this plugin: When your ACLs allow someone to see some pages but maybe not the start page, this helps him because he gets some search hits instead of “Permission denied”…
- ondenied-search.patch
--- ondeniedlogin/action.php 2011-08-26 16:47:00.000000000 +0200 +++ ondeniedlogin/action.php 2011-08-26 16:54:23.000000000 +0200 @@ -26,6 +26,8 @@ if($ACT!='denied') return; if(!is_array($INFO['userinfo'])) $ACT = 'login'; + else + $ACT = 'search'; } }
Use Earlier Event
Some templates (e.g. dokuwiki) set html classes on outer elements describing the action. The TPL_ACT_RENDER event is too late to alter this. The change below switches to use ACTION_HEADERS_SEND, so immediately after DokuWiki sends the 403 permission denied header.
$controller->register_hook('ACTION_HEADERS_SEND', 'AFTER', $this, 'ondeniedlogin');