diff options
Diffstat (limited to 'wiki/lib/plugins/authad/action.php')
-rw-r--r-- | wiki/lib/plugins/authad/action.php | 91 |
1 files changed, 0 insertions, 91 deletions
diff --git a/wiki/lib/plugins/authad/action.php b/wiki/lib/plugins/authad/action.php deleted file mode 100644 index bc0f90c..0000000 --- a/wiki/lib/plugins/authad/action.php +++ /dev/null @@ -1,91 +0,0 @@ -<?php -/** - * DokuWiki Plugin addomain (Action Component) - * - * @license GPL 2 http://www.gnu.org/licenses/gpl-2.0.html - * @author Andreas Gohr <gohr@cosmocode.de> - */ - -// must be run within Dokuwiki -if(!defined('DOKU_INC')) die(); - -/** - * Class action_plugin_addomain - */ -class action_plugin_authad extends DokuWiki_Action_Plugin { - - /** - * Registers a callback function for a given event - */ - public function register(Doku_Event_Handler $controller) { - - $controller->register_hook('AUTH_LOGIN_CHECK', 'BEFORE', $this, 'handle_auth_login_check'); - $controller->register_hook('HTML_LOGINFORM_OUTPUT', 'BEFORE', $this, 'handle_html_loginform_output'); - - } - - /** - * Adds the selected domain as user postfix when attempting a login - * - * @param Doku_Event $event - * @param array $param - */ - public function handle_auth_login_check(Doku_Event &$event, $param) { - global $INPUT; - - /** @var auth_plugin_authad $auth */ - global $auth; - if(!is_a($auth, 'auth_plugin_authad')) return; // AD not even used - - if($INPUT->str('dom')) { - $usr = $auth->cleanUser($event->data['user']); - $dom = $auth->_userDomain($usr); - if(!$dom) { - $usr = "$usr@".$INPUT->str('dom'); - } - $INPUT->post->set('u', $usr); - $event->data['user'] = $usr; - } - } - - /** - * Shows a domain selection in the login form when more than one domain is configured - * - * @param Doku_Event $event - * @param array $param - */ - public function handle_html_loginform_output(Doku_Event &$event, $param) { - global $INPUT; - /** @var auth_plugin_authad $auth */ - global $auth; - if(!is_a($auth, 'auth_plugin_authad')) return; // AD not even used - $domains = $auth->_getConfiguredDomains(); - if(count($domains) <= 1) return; // no choice at all - - /** @var Doku_Form $form */ - $form =& $event->data; - - // any default? - $dom = ''; - if($INPUT->has('u')) { - $usr = $auth->cleanUser($INPUT->str('u')); - $dom = $auth->_userDomain($usr); - - // update user field value - if($dom) { - $usr = $auth->_userName($usr); - $pos = $form->findElementByAttribute('name', 'u'); - $ele =& $form->getElementAt($pos); - $ele['value'] = $usr; - } - } - - // add select box - $element = form_makeListboxField('dom', $domains, $dom, $this->getLang('domain'), '', 'block'); - $pos = $form->findElementByAttribute('name', 'p'); - $form->insertElement($pos + 1, $element); - } - -} - -// vim:ts=4:sw=4:et: \ No newline at end of file |