diff --git a/include/user.php b/include/user.php
index f8b1578ce..580af56f9 100644
--- a/include/user.php
+++ b/include/user.php
@@ -27,12 +27,20 @@ function create_user($arr) {
$openid_url = ((x($arr,'openid_url')) ? notags(trim($arr['openid_url'])) : '');
$photo = ((x($arr,'photo')) ? notags(trim($arr['photo'])) : '');
$password = ((x($arr,'password')) ? trim($arr['password']) : '');
+ $password1 = ((x($arr,'password1')) ? trim($arr['password1']) : '');
+ $confirm = ((x($arr,'confirm')) ? trim($arr['confirm']) : '');
$blocked = ((x($arr,'blocked')) ? intval($arr['blocked']) : 0);
$verified = ((x($arr,'verified')) ? intval($arr['verified']) : 0);
$publish = ((x($arr,'profile_publish_reg') && intval($arr['profile_publish_reg'])) ? 1 : 0);
$netpublish = ((strlen(get_config('system','directory_submit_url'))) ? $publish : 0);
+ if ($password1 != $confirm) {
+ $result['message'] .= t('Passwords do not match. Password unchanged.') . EOL;
+ return $result;
+ } elseif ($password1 != "")
+ $password = $password1;
+
$tmp_str = $openid_url;
if($using_invites) {
diff --git a/mod/register.php b/mod/register.php
index 4c0860e6e..1963bd7a6 100644
--- a/mod/register.php
+++ b/mod/register.php
@@ -79,25 +79,27 @@ function register_post(&$a) {
set_pconfig($user['uid'],'system','invites_remaining',$num_invites);
}
- $res = send_register_open_eml(
- $user['email'],
- $a->config['sitename'],
- $a->get_baseurl(),
- $user['username'],
- $result['password']);
+ // Only send a password mail when the password wasn't manually provided
+ if (!x($_POST,'password1') OR !x($_POST,'confirm')) {
+ $res = send_register_open_eml(
+ $user['email'],
+ $a->config['sitename'],
+ $a->get_baseurl(),
+ $user['username'],
+ $result['password']);
- if($res) {
- info( t('Registration successful. Please check your email for further instructions.') . EOL ) ;
- goaway(z_root());
- }
- else {
- notice(
- sprintf(
- t('Failed to send email message. Here your accout details:
login: %s
password: %s
You can change your password after login.'),
- $user['email'],
- $result['password']
- ). EOL
- );
+ if($res) {
+ info( t('Registration successful. Please check your email for further instructions.') . EOL ) ;
+ goaway(z_root());
+ } else {
+ notice(
+ sprintf(
+ t('Failed to send email message. Here your accout details:
login: %s
password: %s
You can change your password after login.'),
+ $user['email'],
+ $result['password']
+ ). EOL
+ );
+ }
}
}
elseif($a->config['register_policy'] == REGISTER_APPROVE) {
@@ -235,6 +237,9 @@ function register_content(&$a) {
));
}
+ $r = q("SELECT count(*) AS `contacts` FROM `contact`");
+ $passwords = !$r[0]["contacts"];
+
$license = '';
$o = get_markup_template("register.tpl");
@@ -262,6 +267,9 @@ function register_content(&$a) {
'$openid' => $openid_url,
'$namelabel' => t('Your Full Name ' . "\x28" . 'e.g. Joe Smith' . "\x29" . ': '),
'$addrlabel' => t('Your Email Address: '),
+ '$passwords' => $passwords,
+ '$password1' => array('password1', t('New Password:'), '', t('Leave empty for an auto generated password.')),
+ '$password2' => array('confirm', t('Confirm:'), '', ''),
'$nickdesc' => str_replace('$sitename',$a->get_hostname(),t('Choose a profile nickname. This must begin with a text character. Your profile address on this site will then be \'nickname@$sitename\'.')),
'$nicklabel' => t('Choose a nickname: '),
'$photo' => $photo,
diff --git a/view/templates/register.tpl b/view/templates/register.tpl
index 8a941145a..dfc357361 100644
--- a/view/templates/register.tpl
+++ b/view/templates/register.tpl
@@ -44,6 +44,11 @@
{{$nickdesc}}