1f21dad39SAndreas Gohr<?php 2f21dad39SAndreas Gohr 3f21dad39SAndreas Gohrnamespace dokuwiki\Action; 4f21dad39SAndreas Gohr 5f21dad39SAndreas Gohruse dokuwiki\Action\Exception\ActionAbort; 6480336a3SAndreas Gohruse dokuwiki\Action\Exception\ActionDisabledException; 7*79a2d784SGerrit Uitslaguse dokuwiki\Extension\AuthPlugin; 82b5a1390SSatoshi Saharause dokuwiki\Ui; 9f21dad39SAndreas Gohr 10ab583a1bSAndreas Gohr/** 11ab583a1bSAndreas Gohr * Class Register 12ab583a1bSAndreas Gohr * 13ab583a1bSAndreas Gohr * Self registering a new user 14ab583a1bSAndreas Gohr * 15ab583a1bSAndreas Gohr * @package dokuwiki\Action 16ab583a1bSAndreas Gohr */ 172b5a1390SSatoshi Saharaclass Register extends AbstractAclAction 182b5a1390SSatoshi Sahara{ 19f21dad39SAndreas Gohr /** @inheritdoc */ 202b5a1390SSatoshi Sahara public function minimumPermission() 212b5a1390SSatoshi Sahara { 22f21dad39SAndreas Gohr return AUTH_NONE; 23f21dad39SAndreas Gohr } 24f21dad39SAndreas Gohr 25ab583a1bSAndreas Gohr /** @inheritdoc */ 262b5a1390SSatoshi Sahara public function checkPreconditions() 272b5a1390SSatoshi Sahara { 28b2c9cd19SAndreas Gohr parent::checkPreconditions(); 29480336a3SAndreas Gohr 30*79a2d784SGerrit Uitslag /** @var AuthPlugin $auth */ 31480336a3SAndreas Gohr global $auth; 32480336a3SAndreas Gohr global $conf; 33480336a3SAndreas Gohr if (isset($conf['openregister']) && !$conf['openregister']) throw new ActionDisabledException(); 34480336a3SAndreas Gohr if (!$auth->canDo('addUser')) throw new ActionDisabledException(); 35480336a3SAndreas Gohr } 36480336a3SAndreas Gohr 37480336a3SAndreas Gohr /** @inheritdoc */ 382b5a1390SSatoshi Sahara public function preProcess() 392b5a1390SSatoshi Sahara { 40f21dad39SAndreas Gohr if (register()) { // FIXME could be moved from auth to here 41f21dad39SAndreas Gohr throw new ActionAbort('login'); 42f21dad39SAndreas Gohr } 43f21dad39SAndreas Gohr } 44f21dad39SAndreas Gohr 45ab583a1bSAndreas Gohr /** @inheritdoc */ 462b5a1390SSatoshi Sahara public function tplContent() 472b5a1390SSatoshi Sahara { 482b5a1390SSatoshi Sahara (new Ui\UserRegister)->show(); 49f21dad39SAndreas Gohr } 50f21dad39SAndreas Gohr 51f21dad39SAndreas Gohr} 52