From 055ee962c94675b7f1d02fe0fa50d6f2138bac97 Mon Sep 17 00:00:00 2001 From: Michael Vogel Date: Tue, 30 Jun 2015 23:37:31 +0200 Subject: [PATCH] Ability to enter a password when the first user is created --- include/user.php | 8 +++++++ mod/register.php | 44 ++++++++++++++++++++++--------------- view/templates/register.tpl | 5 +++++ 3 files changed, 39 insertions(+), 18 deletions(-) diff --git a/include/user.php b/include/user.php index f8b1578ceb..580af56f98 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 4c0860e6e3..f8e970855e 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:'), '', ''), + '$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 8a941145ab..dfc3573616 100644 --- a/view/templates/register.tpl +++ b/view/templates/register.tpl @@ -44,6 +44,11 @@
+{{if $passwords}} + {{include file="field_password.tpl" field=$password1}} + {{include file="field_password.tpl" field=$password2}} +{{/if}} +

{{$nickdesc}}