summaryrefslogtreecommitdiff
path: root/platform/www/inc/Action/Register.php
diff options
context:
space:
mode:
Diffstat (limited to 'platform/www/inc/Action/Register.php')
-rw-r--r--platform/www/inc/Action/Register.php45
1 files changed, 45 insertions, 0 deletions
diff --git a/platform/www/inc/Action/Register.php b/platform/www/inc/Action/Register.php
new file mode 100644
index 0000000..7d21bff
--- /dev/null
+++ b/platform/www/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\Extension\AuthPlugin $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();
+ }
+
+}