diff options
-rw-r--r-- | conf/dokuwiki.php | 3 | ||||
-rw-r--r-- | inc/auth.php | 21 | ||||
-rw-r--r-- | inc/html.php | 17 | ||||
-rw-r--r-- | lang/de/lang.php | 5 | ||||
-rw-r--r-- | 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(){ <?=$lang['user']?> <input type="text" name="login" class="edit" size="50" value="<?=formText($_POST['login'])?>" /> </label><br /> + + <?php + if (!$conf['autopasswd']) { + ?> + <label> + <?=$lang['pass']?> + <input type="password" name="pass" class="edit" size="50" /> + </label><br /> + <label> + <?=$lang['passchk']?> + <input type="password" name="passchk" class="edit" size="50" /> + </label><br /> + <?php + } + ?> + <label> <?=$lang['fullname']?> <input type="text" name="fullname" class="edit" size="50" value="<?=formText($_POST['fullname'])?>" /> diff --git a/lang/de/lang.php b/lang/de/lang.php index 08924a8d3..9a4e95c43 100644 --- a/lang/de/lang.php +++ b/lang/de/lang.php @@ -33,6 +33,7 @@ $lang['btn_delete'] = 'Löschen'; $lang['loggedinas'] = 'Angemeldet als'; $lang['user'] = 'Benutzername'; $lang['pass'] = 'Passwort'; +$lang['passchk'] = 'und nochmal'; $lang['fullname'] = 'Voller Name'; $lang['email'] = 'E-Mail'; $lang['remember'] = 'Angemeldet bleiben'; @@ -41,9 +42,11 @@ $lang['badlogin'] = 'Nutzername oder Passwort sind falsch.'; $lang['regmissing'] = 'Alle Felder müssen ausgefüllt werden'; $lang['reguexists'] = 'Der Nutzername existiert leider schon.'; -$lang['regsuccess'] = 'Der neue Nutzer wurde angelegt. Das Passwort wurde per Mail versandt.'; +$lang['regsuccess'] = 'Der neue Nutzer wurde angelegt und das Passwort per Email versandt.'; +$lang['regsuccess2']= 'Der neue Nutzer wurde angelegt.'; $lang['regmailfail']= 'Offenbar ist ein Fehler beim Versenden der Passwortmail aufgetreten. Bitte wenden sie sich an den Wiki-Admin.'; $lang['regbadmail'] = 'Die angegebene Mail-Adresse scheint ungültig zu sein. Falls dies ein Fehler ist, wenden sie sich bitte an den Wiki-Admin.'; +$lang['reqbadpass'] = 'Die beiden eingegeben Passwörter stimmen nicht überein. Bitte versuchen Sie es noch einmal.'; $lang['regpwmail'] = 'Ihr DokuWiki Passwort'; $lang['reghere'] = 'Sie haben noch keinen Zugang? Hier anmelden'; diff --git a/lang/en/lang.php b/lang/en/lang.php index 935398d6d..b56e489c4 100644 --- a/lang/en/lang.php +++ b/lang/en/lang.php @@ -32,6 +32,7 @@ $lang['btn_delete'] = 'Delete'; $lang['loggedinas'] = 'Logged in as'; $lang['user'] = 'Username'; $lang['pass'] = 'Password'; +$pass['passchk'] = 'once again'; $lang['remember'] = 'Remember me'; $lang['fullname'] = 'Full name'; $lang['email'] = 'E-Mail'; @@ -40,9 +41,11 @@ $lang['badlogin'] = 'Sorry, username or password was wrong.'; $lang['regmissing'] = 'Sorry, you must fill in all fields.'; $lang['reguexists'] = 'Sorry, a user with this login already exists.'; -$lang['regsuccess'] = 'The user was created. The password was sent by mail.'; +$lang['regsuccess'] = 'The user has been created and the password was sent by email.'; +$lang['regsuccess2']= 'The user has been created.'; $lang['regmailfail']= 'Looks like there was an error on sending the password mail. Please contact the admin!'; $lang['regbadmail'] = 'The given email address looks invalid - if you think this is an error, contact the admin'; +$lang['regbadpass'] = 'The two given passwords are not identically, please try again.'; $lang['regpwmail'] = 'Your DokuWiki password'; $lang['reghere'] = 'You don\'t have an account yet? Just get one'; |