diff --git a/plugins/cas_auth_unl/actions/login.php b/plugins/cas_auth_unl/actions/login.php index 9b469b2bdf3f1ac854fe07464e488b4484c66050..6026af10e7986d60ba05295a72eb510c789eb3f2 100644 --- a/plugins/cas_auth_unl/actions/login.php +++ b/plugins/cas_auth_unl/actions/login.php @@ -1,112 +1,95 @@ <?php - /** - * Elgg UNL CAS authentication login action - * - * @package cas_auth_unl - * @license BSD http://www1.unl.edu/wdn/wiki/Software_License - * @author University of Nebraska-Lincoln - * @copyright 2010 Regents of the University of Nebraska - * @link http://www.unl.edu/ - * - * Builds upon the original login action at elgg/actions/login.php by Curverider Ltd - * - */ - - // Safety first - action_gatekeeper(); - - // Get $_GET inputs - - $username = get_input('username'); - $password = get_input("password"); - $persistent = get_input("persistent", false); - $usecas = get_input('usecas'); - //this is available once they have given their email - $email = get_input('email'); - //look for view=mobile - $view = get_input('view'); - - // 1. Do the regular elgg login if username and password are set - $result = false; - if (!empty($username) && !empty($password)) { - if ($user = authenticate($username,$password)) { - $result = login($user, $persistent); - } - } +/** + * Elgg UNL CAS authentication login action + * + * @package cas_auth_unl + * @license BSD http://www1.unl.edu/wdn/wiki/Software_License + * @author University of Nebraska-Lincoln + * @copyright 2010 Regents of the University of Nebraska + * @link http://www.unl.edu/ + * + * Builds upon the original login action at elgg/actions/login.php by Curverider Ltd + * + */ + +// Get $_GET inputs +$username = get_input('username'); +$password = get_input("password"); +$persistent = get_input("persistent", false); +$usecas = get_input('usecas'); +//this is available once they have given their email +$email = get_input('email'); +//look for view=mobile +$view = get_input('view'); - // 2. Otherwise try CAS if that button was clicked - if ($usecas == 'yes') { - $casObject = new elggSimpleCas(); - if (!$casObject->checkCas()) { - global $CONFIG; - $ts = time(); - $token = generate_action_token($ts); - SimpleCAS::setURL($CONFIG->url.'action/login?usecas=yes&__elgg_ts='.$ts.'&__elgg_token='.$token.'&view='.$view); - $casObject->forceCas(); - } else { - $cas_user = $casObject->getUserCas(); - if ($user = $casObject->casAuthenticate($cas_user,$email,$view)) { - $result = login($user); - if ($result) - $_SESSION['loggedInWithCas'] = true; - } - } - - - } +// 1. Do the regular elgg login if username and password are set +$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 { - $lastlogin_date = $_SESSION['user']->last_login; - if (!$lastlogin_date && $view != 'mobile') - forward("mod/profile/edit.php?firstlogin=yes"); - else - forward("pg/dashboard/"); - } +// 2. Otherwise try CAS if that button was clicked +if ($usecas == 'yes') { + $casObject = new elggSimpleCas(); + if (!$casObject->checkCas()) { + global $CONFIG; + $ts = time(); + $token = generate_action_token($ts); + SimpleCAS::setURL($CONFIG->url.'action/login?usecas=yes&__elgg_ts='.$ts.'&__elgg_token='.$token.'&view='.$view); + $casObject->forceCas(); + } else { + $cas_user = $casObject->getUserCas(); + if ($user = $casObject->casAuthenticate($cas_user,$email,$view)) { + $result = login($user); + if ($result) + $_SESSION['loggedInWithCas'] = true; + } + } +} + +// Set the system_message as appropriate +if ($result) { + system_message(elgg_echo('loginok')); + if (isset($_SESSION['last_forward_from']) && $_SESSION['last_forward_from']) { + $forward_url = $_SESSION['last_forward_from']; + unset($_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 ($_SESSION['user']->last_login == '0' && $view != 'mobile') { + forward('mod/profile/edit.php?username='.$_SESSION['username'].'&firstlogin=yes'); + } 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 { - $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')); - } + register_error(elgg_echo('loginerror')); } - -?> \ No newline at end of file + access_show_hidden_entities($access_status); + } else { + register_error(elgg_echo('loginerror')); + } +}