summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvan Prodromou <evan@prodromou.name>2008-11-17 21:49:47 -0500
committerEvan Prodromou <evan@prodromou.name>2008-11-17 21:49:47 -0500
commit67340ce11c773287a4807ddc4567add775a3fcd7 (patch)
tree996b77f20cd1d10892c98f8238522eb87f558dda
parent4b5158dd4db75f3c277d7b2ed383615ecf3c5117 (diff)
♫ Don't you forget about me ♫
darcs-hash:20081118024947-84dde-46f68dff10cd2b5665fbd482f90ac83601df4228.gz
-rw-r--r--actions/finishopenidlogin.php12
-rw-r--r--actions/openidlogin.php11
2 files changed, 23 insertions, 0 deletions
diff --git a/actions/finishopenidlogin.php b/actions/finishopenidlogin.php
index f09027e9e..b8008afb2 100644
--- a/actions/finishopenidlogin.php
+++ b/actions/finishopenidlogin.php
@@ -134,6 +134,10 @@ class FinishopenidloginAction extends Action {
# oid_update_user($user, $sreg);
common_set_user($user->nickname);
common_real_login(true);
+ if ($_SESSION['openid_rememberme']) {
+ common_rememberme($user);
+ }
+ unset($_SESSION['openid_rememberme']);
$this->go_home($user->nickname);
} else {
$this->save_values($display, $canonical, $sreg);
@@ -229,6 +233,10 @@ class FinishopenidloginAction extends Action {
oid_set_last($display);
common_set_user($user->nickname);
common_real_login(true);
+ if ($_SESSION['openid_rememberme']) {
+ common_rememberme($user);
+ }
+ unset($_SESSION['openid_rememberme']);
common_redirect(common_local_url('showstream', array('nickname' => $user->nickname)));
}
@@ -264,6 +272,10 @@ class FinishopenidloginAction extends Action {
oid_set_last($display);
common_set_user($user->nickname);
common_real_login(true);
+ if ($_SESSION['openid_rememberme']) {
+ common_rememberme($user);
+ }
+ unset($_SESSION['openid_rememberme']);
$this->go_home($user->nickname);
}
diff --git a/actions/openidlogin.php b/actions/openidlogin.php
index b066b9aa4..1b289dbea 100644
--- a/actions/openidlogin.php
+++ b/actions/openidlogin.php
@@ -37,9 +37,17 @@ class OpenidloginAction extends Action {
return;
}
+ $rememberme = $this->boolean('rememberme');
+
+ common_ensure_session();
+
+ $_SESSION['openid_rememberme'] = $rememberme;
+
$result = oid_authenticate($openid_url,
'finishopenidlogin');
+
if (is_string($result)) { # error message
+ unset($_SESSION['openid_rememberme']);
$this->show_form($result, $openid_url);
}
} else {
@@ -74,6 +82,9 @@ class OpenidloginAction extends Action {
common_input('openid_url', _('OpenID URL'),
$openid_url,
_('Your OpenID URL'));
+ common_checkbox('rememberme', _('Remember me'), false,
+ _('Automatically login in the future; ' .
+ 'not for shared computers!'));
common_submit('submit', _('Login'));
common_element_end('form');
common_show_footer();