1f21dad39SAndreas Gohr<?php 2f21dad39SAndreas Gohr 3f21dad39SAndreas Gohrnamespace dokuwiki\Action; 4f21dad39SAndreas Gohr 5f21dad39SAndreas Gohruse dokuwiki\Action\Exception\ActionAbort; 6480336a3SAndreas Gohruse dokuwiki\Action\Exception\ActionDisabledException; 7*2b5a1390SSatoshi Saharause dokuwiki\Ui; 8f21dad39SAndreas Gohr 9ab583a1bSAndreas Gohr/** 10ab583a1bSAndreas Gohr * Class Register 11ab583a1bSAndreas Gohr * 12ab583a1bSAndreas Gohr * Self registering a new user 13ab583a1bSAndreas Gohr * 14ab583a1bSAndreas Gohr * @package dokuwiki\Action 15ab583a1bSAndreas Gohr */ 16*2b5a1390SSatoshi Saharaclass Register extends AbstractAclAction 17*2b5a1390SSatoshi Sahara{ 18f21dad39SAndreas Gohr /** @inheritdoc */ 19*2b5a1390SSatoshi Sahara public function minimumPermission() 20*2b5a1390SSatoshi Sahara { 21f21dad39SAndreas Gohr return AUTH_NONE; 22f21dad39SAndreas Gohr } 23f21dad39SAndreas Gohr 24ab583a1bSAndreas Gohr /** @inheritdoc */ 25*2b5a1390SSatoshi Sahara public function checkPreconditions() 26*2b5a1390SSatoshi Sahara { 27b2c9cd19SAndreas Gohr parent::checkPreconditions(); 28480336a3SAndreas Gohr 29e1d9dcc8SAndreas Gohr /** @var \dokuwiki\Extension\AuthPlugin $auth */ 30480336a3SAndreas Gohr global $auth; 31480336a3SAndreas Gohr global $conf; 32480336a3SAndreas Gohr if (isset($conf['openregister']) && !$conf['openregister']) throw new ActionDisabledException(); 33480336a3SAndreas Gohr if (!$auth->canDo('addUser')) throw new ActionDisabledException(); 34480336a3SAndreas Gohr } 35480336a3SAndreas Gohr 36480336a3SAndreas Gohr /** @inheritdoc */ 37*2b5a1390SSatoshi Sahara public function preProcess() 38*2b5a1390SSatoshi Sahara { 39f21dad39SAndreas Gohr if (register()) { // FIXME could be moved from auth to here 40f21dad39SAndreas Gohr throw new ActionAbort('login'); 41f21dad39SAndreas Gohr } 42f21dad39SAndreas Gohr } 43f21dad39SAndreas Gohr 44ab583a1bSAndreas Gohr /** @inheritdoc */ 45*2b5a1390SSatoshi Sahara public function tplContent() 46*2b5a1390SSatoshi Sahara { 47*2b5a1390SSatoshi Sahara (new Ui\UserRegister)->show(); 48f21dad39SAndreas Gohr } 49f21dad39SAndreas Gohr 50f21dad39SAndreas Gohr} 51