summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--actions/smssettings.php26
-rw-r--r--lib/mail.php16
2 files changed, 38 insertions, 4 deletions
diff --git a/actions/smssettings.php b/actions/smssettings.php
index 55ed1103f..632a30ba8 100644
--- a/actions/smssettings.php
+++ b/actions/smssettings.php
@@ -59,6 +59,9 @@ class SmssettingsAction extends EmailsettingsAction {
common_hidden('carrier', $user->carrier);
common_element_end('p');
common_submit('cancel', _('Cancel'));
+ common_input('code', _('Confirmation code'), NULL,
+ _('Enter the code you received on your phone.'));
+ common_submit('confirm', _('Confirm'));
} else {
common_input('sms', _('SMS Phone number'),
($this->arg('sms')) ? $this->arg('sms') : NULL,
@@ -125,6 +128,8 @@ class SmssettingsAction extends EmailsettingsAction {
$this->remove_incoming();
} else if ($this->arg('newincoming')) {
$this->new_incoming();
+ } else if ($this->arg('confirm')) {
+ $this->confirm_code();
} else {
$this->show_form(_('Unexpected form submission.'));
}
@@ -191,7 +196,7 @@ class SmssettingsAction extends EmailsettingsAction {
$confirm->address_extra = $carrier_id;
$confirm->address_type = 'sms';
$confirm->user_id = $user->id;
- $confirm->code = common_confirmation_code(64);
+ $confirm->code = common_confirmation_code(40);
$result = $confirm->insert();
@@ -203,9 +208,9 @@ class SmssettingsAction extends EmailsettingsAction {
$carrier = Sms_carrier::staticGet($carrier_id);
- mail_confirm_address($confirm->code,
- $user->nickname,
- $carrier->toEmailAddress($sms));
+ mail_confirm_sms($confirm->code,
+ $user->nickname,
+ $carrier->toEmailAddress($sms));
$msg = _('A confirmation code was sent to the phone number you added. Check your inbox (and spam box!) for the code and instructions on how to use it.');
@@ -300,4 +305,17 @@ class SmssettingsAction extends EmailsettingsAction {
'send email to let us know at %s.'),
common_config('site', 'email')));
}
+
+ function confirm_code() {
+
+ $code = $this->trimmed('code');
+
+ if (!$code) {
+ $this->show_form(_('No code entered'));
+ return;
+ }
+
+ common_redirect(common_local_url('confirmaddress',
+ array('code' => $this->code)));
+ }
}
diff --git a/lib/mail.php b/lib/mail.php
index 165b28b6a..001376bea 100644
--- a/lib/mail.php
+++ b/lib/mail.php
@@ -189,3 +189,19 @@ function mail_send_notice($notice, $user) {
$body = $notice->content;
mail_send($sms_email, $headers, $body);
}
+
+function mail_confirm_sms($code, $nickname, $address) {
+
+ $recipients = $address;
+
+ $headers['From'] = mail_notify_from();
+ $headers['To'] = $nickname . ' <' . $address . '>';
+ $headers['Subject'] = _('SMS confirmation');
+
+ $body = "$nickname: confirm you own this number with this code:";
+ $body .= "\n\n";
+ $body .= $code;
+ $body .= "\n\n";
+
+ mail_send($recipients, $headers, $body);
+}