1<?php
2
3namespace dokuwiki\Action;
4
5use dokuwiki\Ui\UserRegister;
6use dokuwiki\Action\Exception\ActionAbort;
7use dokuwiki\Action\Exception\ActionDisabledException;
8use dokuwiki\Extension\AuthPlugin;
9use dokuwiki\Ui;
10
11/**
12 * Class Register
13 *
14 * Self registering a new user
15 *
16 * @package dokuwiki\Action
17 */
18class Register extends AbstractAclAction
19{
20    /** @inheritdoc */
21    public function minimumPermission()
22    {
23        return AUTH_NONE;
24    }
25
26    /** @inheritdoc */
27    public function checkPreconditions()
28    {
29        parent::checkPreconditions();
30
31        /** @var AuthPlugin $auth */
32        global $auth;
33        global $conf;
34        if (isset($conf['openregister']) && !$conf['openregister']) throw new ActionDisabledException();
35        if (!$auth->canDo('addUser')) throw new ActionDisabledException();
36    }
37
38    /** @inheritdoc */
39    public function preProcess()
40    {
41        if (register()) { // FIXME could be moved from auth to here
42            throw new ActionAbort('login');
43        }
44    }
45
46    /** @inheritdoc */
47    public function tplContent()
48    {
49        (new UserRegister())->show();
50    }
51}
52