summaryrefslogtreecommitdiff
path: root/actions/login.php
diff options
context:
space:
mode:
Diffstat (limited to 'actions/login.php')
-rw-r--r--actions/login.php69
1 files changed, 35 insertions, 34 deletions
diff --git a/actions/login.php b/actions/login.php
index 12ded51ed..400957e05 100644
--- a/actions/login.php
+++ b/actions/login.php
@@ -24,7 +24,7 @@ class LoginAction extends Action {
function handle($args) {
parent::handle($args);
if (common_is_real_login()) {
- common_user_error(_t('Already logged in.'));
+ common_user_error(_('Already logged in.'));
} else if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$this->check_login();
} else {
@@ -37,17 +37,30 @@ class LoginAction extends Action {
# XXX: login throttle
$nickname = $this->arg('nickname');
$password = $this->arg('password');
- $user = common_check_user($nickname, $password);
-
- if (!$user) {
+ if (common_check_user($nickname, $password)) {
+ # success!
+ if (!common_set_user($nickname)) {
+ common_server_error(_t('Error setting user.'));
+ return;
+ }
+ common_real_login(true);
+ if ($this->boolean('rememberme')) {
+ common_debug('Adding rememberme cookie for ' . $nickname);
+ common_rememberme();
+ }
+ # success!
+ $url = common_get_returnto();
+ if ($url) {
+ # We don't have to return to it again
+ common_set_returnto(NULL);
+ } else {
+ $url = common_local_url('all',
+ array('nickname' =>
+ $nickname));
+ }
+ common_redirect($url);
+ } else {
$this->show_form(_t('Incorrect username or password.'));
- return;
- }
-
- # success!
- if (!common_set_user($user)) {
- common_server_error(_t('Error setting user.'));
- return;
}
common_real_login(true);
@@ -70,41 +83,29 @@ class LoginAction extends Action {
}
function show_form($error=NULL) {
- common_show_header(_t('Login'), NULL, $error, array($this, 'show_top'));
+ common_show_header(_('Login'), NULL, $error, array($this, 'show_top'));
common_element_start('form', array('method' => 'post',
'id' => 'login',
'action' => common_local_url('login')));
- common_input('nickname', _t('Nickname'));
- common_password('password', _t('Password'));
- common_checkbox('rememberme', _t('Remember me'), false,
- _t('Automatically login in the future; ' .
+ common_input('nickname', _('Nickname'));
+ common_password('password', _('Password'));
+ common_checkbox('rememberme', _('Remember me'), false,
+ _('Automatically login in the future; ' .
'not for shared computers!'));
- common_submit('submit', _t('Login'));
+ common_submit('submit', _('Login'));
common_element_end('form');
common_element_start('p');
common_element('a', array('href' => common_local_url('recoverpassword')),
- _t('Lost or forgotten password?'));
+ _('Lost or forgotten password?'));
common_element_end('p');
common_show_footer();
}
function get_instructions() {
- if (common_logged_in() &&
- !common_is_real_login() &&
- common_get_returnto())
- {
- # rememberme logins have to reauthenticate before
- # changing any profile settings (cookie-stealing protection)
- return _t('For security reasons, ' .
- 'please re-enter your ' .
- 'user name and password ' .
- 'before changing your settings. ');
- } else {
- return _t('Login with your username and password. ' .
- 'Don\'t have a username yet? ' .
- '[Register](%%action.register%%) a new account, or ' .
- 'try [OpenID](%%action.openidlogin%%). ');
- }
+ return _t('Login with your username and password. ' .
+ 'Don\'t have a username yet? ' .
+ '[Register](%%action.register%%) a new account, or ' .
+ 'try [OpenID](%%action.openidlogin%%). ');
}
function show_top($error=NULL) {