xref: /dokuwiki/inc/Action/Register.php (revision 2b5a1390b05ababfbf8a2c65e0304f3927ae2b55)
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