From cab2716ac2fbdb0903e4d1c357c8fb630fdd6b0d Mon Sep 17 00:00:00 2001 From: "matthias.grimm" Date: Sun, 8 May 2005 22:01:29 +0200 Subject: user registration without email This patch extends the user registration with a more direct way without the need for an valid email address. The user password is queried in the registration form and not automatically generated and sent by email. This mode could be configured with the new option 'autopasswd'. Some new texts were added for translation but only english and german translation databases have been updated yet. darcs-hash:20050508200129-45302-ad4f2cf1d18514c76373cb6d6015e74712638402.gz --- conf/dokuwiki.php | 3 ++- inc/auth.php | 21 +++++++++++++++++++-- inc/html.php | 17 +++++++++++++++++ lang/de/lang.php | 5 ++++- lang/en/lang.php | 5 ++++- 5 files changed, 46 insertions(+), 5 deletions(-) diff --git a/conf/dokuwiki.php b/conf/dokuwiki.php index 591a14eb4..bbc6d86a3 100644 --- a/conf/dokuwiki.php +++ b/conf/dokuwiki.php @@ -51,9 +51,10 @@ $conf['mailguard'] = 'hex'; //obfuscate email addresses against sp /* Authentication Options */ $conf['useacl'] = 0; //Use Access Control Lists to restrict access? $conf['openregister']= 1; //Should users to be allowed to register? +$conf['autopasswd'] = 1; //autogenerate passwords and email them to user $conf['authtype'] = 'plain'; //which authentication DB should be used (currently plain only) $conf['defaultgroup']= 'user'; //Default groups new Users are added to -$conf['superuser'] = '!!not set!!'; //The admin can be user or @group +$conf['superuser'] = '!!not set!!'; //The admin can be user or @group /* Advanced Options */ $conf['userewrite'] = 0; //this makes nice URLs: 0: off 1: .htaccess 2: internal diff --git a/inc/auth.php b/inc/auth.php index 26be26d45..9b70e2db6 100644 --- a/inc/auth.php +++ b/inc/auth.php @@ -382,6 +382,19 @@ function register(){ return false; } + if ($conf['autopasswd']) { + $pass = auth_pwgen(); // automatically generate password + } elseif (empty($_POST['pass']) || + empty($_POST['passchk'])) { + msg($lang['reqmissing'], -1); // complain about missing passwords + return false; + } elseif ($_POST['pass'] != $_POST['passchk']) { + msg($lang['reqbadpass'], -1); // complain about misspelled passwords + return false; + } else { + $pass = $_POST['pass']; // accept checked and valid password + } + //check mail if(!mail_isvalid($_POST['email'])){ msg($lang['regbadmail'],-1); @@ -389,14 +402,18 @@ function register(){ } //okay try to create the user - $pass = auth_pwgen(); $pass = auth_createUser($_POST['login'],$pass,$_POST['fullname'],$_POST['email']); if(empty($pass)){ msg($lang['reguexists'],-1); return false; } - //send him the password + if (!$conf['autopasswd']) { + msg($lang['regsuccess2'],1); + return true; + } + + // autogenerated password? then send him the password if (auth_sendPassword($_POST['login'],$pass)){ msg($lang['regsuccess'],1); return true; diff --git a/inc/html.php b/inc/html.php index e6cf77ab0..0b88d813a 100644 --- a/inc/html.php +++ b/inc/html.php @@ -741,6 +741,7 @@ function html_msgarea(){ */ function html_register(){ global $lang; + global $conf; global $ID; print p_locale_xhtml('register'); @@ -755,6 +756,22 @@ function html_register(){
+ + +
+
+ +