diff --git a/actions/confirmemail.php b/actions/confirmemail.php index 82e3a55378..8052452ae7 100644 --- a/actions/confirmemail.php +++ b/actions/confirmemail.php @@ -21,50 +21,51 @@ if (!defined('LACONICA')) { exit(1); } class ConfirmemailAction extends Action { - function handle($args) { - parent::handle($args); - if (!common_logged_in()) { - common_set_returnto($this->self_url()); - common_redirect(common_local_url('login')); - return; - } - $code = $this->trimmed('code'); - if (!$code) { - $this->client_error(_t('No confirmation code.')); - return; - } - $confirm_email = Confirm_email::staticGet('code', $code); - if (!$confirm_email) { - $this->client_error(_t('Confirmation code not found.')); - return; - } - $cur = common_current_user(); - if ($cur->id != $confirm_email->user_id) { - $this->client_error(_t('That confirmation code is not for you!')); - return; - } - if ($cur->email == $confirm_email->email) { - $this->client_error(_t('That email address is already confirmed.')); - return; - } - $cur->query('BEGIN'); - $orig_user = clone($cur); - $cur->email = $confirm_email->email; - $result = $cur->update($orig_user); - if (!$result) { - $this->server_error(_t('Error setting email address.')); - return; - } - $result = $confirm_email->delete(); - if (!$result) { - $this->server_error(_t('Error deleting code.')); - return; - } - $cur->query('COMMIT'); - common_show_header(_t('Confirm E-mail Address')); - common_element('p', NULL, - _t('The email address "') . $cur->email . - _t('" has been confirmed for your account.')); - common_show_footer(_t('Confirm E-mail Address')); - } + function handle($args) { + parent::handle($args); + if (!common_logged_in()) { + common_set_returnto($this->self_url()); + common_redirect(common_local_url('login')); + return; + } + $code = $this->trimmed('code'); + if (!$code) { + $this->client_error(_t('No confirmation code.')); + return; + } + $confirm_email = Confirm_email::staticGet('code', $code); + if (!$confirm_email) { + $this->client_error(_t('Confirmation code not found.')); + return; + } + $cur = common_current_user(); + if ($cur->id != $confirm_email->user_id) { + $this->client_error(_t('That confirmation code is not for you!')); + return; + } + if ($cur->email == $confirm_email->email) { + $this->client_error(_t('That email address is already confirmed.')); + return; + } + $cur->query('BEGIN'); + $orig_user = clone($cur); + $cur->email = $confirm_email->email; + common_debug('cur email = "' . $cur->email . '"', __FILE__); + $result = $cur->update($orig_user); + if (!$result) { + $this->server_error(_t('Error setting email address.')); + return; + } + $result = $confirm_email->delete(); + if (!$result) { + $this->server_error(_t('Error deleting code.')); + return; + } + $cur->query('COMMIT'); + common_show_header(_t('Confirm E-mail Address')); + common_element('p', NULL, + _t('The email address "') . $cur->email . + _t('" has been confirmed for your account.')); + common_show_footer(_t('Confirm E-mail Address')); + } } diff --git a/lib/mail.php b/lib/mail.php index 23fd24b258..c1332ab2ba 100644 --- a/lib/mail.php +++ b/lib/mail.php @@ -22,8 +22,8 @@ if (!defined('LACONICA')) { exit(1); } require_once('Mail.php'); function mail_backend() { - static $backend = NULL; - + static $backend = NULL; + if (!$backend) { global $config; $backend = Mail::factory($config['mail']['backend'], @@ -78,6 +78,6 @@ function mail_confirm_address($code, $nickname, $address) { $body .= "\n"; $body .= common_config('site', 'name'); $body .= "\n"; - + mail_send($recipients, $headers, $body); }