From 12d286988dbcdff5aad3620838e7ab777ac67a92 Mon Sep 17 00:00:00 2001 From: brettp Date: Wed, 14 Oct 2009 20:41:19 +0000 Subject: Standardized actions/* git-svn-id: http://code.elgg.org/elgg/trunk@3542 36083f99-b078-4883-b0ff-0f9b5a30f544 --- actions/login.php | 141 +++++++++++++++++++++++++----------------------------- 1 file changed, 64 insertions(+), 77 deletions(-) (limited to 'actions/login.php') diff --git a/actions/login.php b/actions/login.php index f3a60af6d..26a144045 100644 --- a/actions/login.php +++ b/actions/login.php @@ -1,82 +1,69 @@ validated) { - // give plugins a chance to respond - if (!trigger_plugin_hook('unvalidated_login_attempt','user',array('entity'=>$user))) { - // if plugins have not registered an action, the default action is to - // trigger the validation event again and assume that the validation - // event will display an appropriate message - trigger_elgg_event('validate', 'user', $user); - } - } else { - register_error(elgg_echo('loginerror')); - } - access_show_hidden_entities($access_status); - } else { - register_error(elgg_echo('loginerror')); - } - } - -?> \ No newline at end of file +// If all is present and correct, try to log in +$result = false; +if (!empty($username) && !empty($password)) { + if ($user = authenticate($username,$password)) { + $result = login($user, $persistent); + } +} + +// Set the system_message as appropriate +if ($result) { + system_message(elgg_echo('loginok')); + if ($_SESSION['last_forward_from']) { + $forward_url = $_SESSION['last_forward_from']; + $_SESSION['last_forward_from'] = ""; + forward($forward_url); + } else { + if ( (isadminloggedin()) && (!datalist_get('first_admin_login'))) { + system_message(elgg_echo('firstadminlogininstructions')); + datalist_set('first_admin_login', time()); + + forward('pg/admin/plugins'); + } else if (get_input('returntoreferer')) { + forward($_SERVER['HTTP_REFERER']); + } else { + forward("pg/dashboard/"); + } + } +} else { + $error_msg = elgg_echo('loginerror'); + // figure out why the login failed + if (!empty($username) && !empty($password)) { + // See if it exists and is disabled + $access_status = access_get_show_hidden_status(); + access_show_hidden_entities(true); + if (($user = get_user_by_username($username)) && !$user->validated) { + // give plugins a chance to respond + if (!trigger_plugin_hook('unvalidated_login_attempt','user',array('entity'=>$user))) { + // if plugins have not registered an action, the default action is to + // trigger the validation event again and assume that the validation + // event will display an appropriate message + trigger_elgg_event('validate', 'user', $user); + } + } else { + register_error(elgg_echo('loginerror')); + } + access_show_hidden_entities($access_status); + } else { + register_error(elgg_echo('loginerror')); + } +} \ No newline at end of file -- cgit v1.2.3