diff options
Diffstat (limited to 'wiki/inc/Action/Register.php')
-rw-r--r-- | wiki/inc/Action/Register.php | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/wiki/inc/Action/Register.php b/wiki/inc/Action/Register.php new file mode 100644 index 0000000..0d54158 --- /dev/null +++ b/wiki/inc/Action/Register.php @@ -0,0 +1,45 @@ +<?php + +namespace dokuwiki\Action; + +use dokuwiki\Action\Exception\ActionAbort; +use dokuwiki\Action\Exception\ActionDisabledException; + +/** + * Class Register + * + * Self registering a new user + * + * @package dokuwiki\Action + */ +class Register extends AbstractAclAction { + + /** @inheritdoc */ + public function minimumPermission() { + return AUTH_NONE; + } + + /** @inheritdoc */ + public function checkPreconditions() { + parent::checkPreconditions(); + + /** @var \DokuWiki_Auth_Plugin $auth */ + global $auth; + global $conf; + if(isset($conf['openregister']) && !$conf['openregister']) throw new ActionDisabledException(); + if(!$auth->canDo('addUser')) throw new ActionDisabledException(); + } + + /** @inheritdoc */ + public function preProcess() { + if(register()) { // FIXME could be moved from auth to here + throw new ActionAbort('login'); + } + } + + /** @inheritdoc */ + public function tplContent() { + html_register(); + } + +} |