summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--conf/dokuwiki.php3
-rw-r--r--inc/auth.php21
-rw-r--r--inc/html.php17
-rw-r--r--lang/de/lang.php5
-rw-r--r--lang/en/lang.php5
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';