function onUserLogin($user, $options = array()) { $mainframe = JFactory::getApplication('site'); if (array_key_exists ('skip_joomdlehooks', $options)) return; if ($mainframe->isAdmin()) return; $username = $user['username']; $moodle_user = JoomdleHelperContent::call_method ("user_id", $username); // Do nothing if user does not exist in Moodle if (!$moodle_user) return; $comp_params = JComponentHelper::getParams( 'com_joomdle' ); $moodle_url = $comp_params->get( 'MOODLE_URL' ); $redirectless_sso = $comp_params->get( 'redirectless_sso' ); $session = JFactory::getSession(); $token = md5 ($session->getId()); /* Don't log in Moodle if user is blocked */ $user_id = JUserHelper::getUserId($username); $user_obj = JFactory::getUser($user_id); if ($user_obj->block) return; $app = JFactory::getApplication(); if (JRequest::getVar ('return')) { $return = JRequest::getVar ('return'); if (!strncmp ($return, 'B:', 2)) { /* CB login module */ $login_url = urlencode (base64_decode (substr ($return, 2))); } else { /* Normal login */ $login_url = urlencode (base64_decode (JRequest::getVar ('return'))); } } else if (array_key_exists ('url', $options)) $login_url = urlencode ($options['url']); else $login_url = urlencode (JRequest::getUri ()); // Set the remember me cookie if enabled // as we are redirecting and this would not be executed by Joomla if (isset($options['remember']) && $options['remember']) { jimport('joomla.utilities.simplecrypt'); jimport('joomla.utilities.utility'); //Create the encryption key, apply extra hardening using the user agent string $key = JApplication::getHash(@$_SERVER['HTTP_USER_AGENT']); $credentials = array ('username'=>$username, 'password'=>$user['password']); $crypt = new JSimpleCrypt($key); $rcookie = $crypt->encrypt(serialize($credentials)); $lifetime = time() + 365*24*60*60; setcookie( JApplication::getHash('JLOGIN_REMEMBER'), $rcookie, $lifetime, '/' ); } // Metodo nuevo con cURL if ($redirectless_sso) plgUserJoomdlehooks::log_into_moodle ($username, $token); else // Metodo normal usando redirect $app->redirect($moodle_url."/auth/joomdle/land.php?username=$username&token=$token&use_wrapper=0&create_user=0&wantsurl=$login_url" ); }
function do_login($username, $options = array()) { $mainframe = JFactory::getApplication('site'); if (array_key_exists('skip_joomdlehooks', $options)) { return; } if ($mainframe->isAdmin()) { return; } $moodle_user = JoomdleHelperContent::call_method("user_id", $username); // Do nothing if user does not exist in Moodle if (!$moodle_user) { return; } $comp_params = JComponentHelper::getParams('com_joomdle'); $moodle_url = $comp_params->get('MOODLE_URL'); $redirectless_sso = $comp_params->get('redirectless_sso'); $session = JFactory::getSession(); $token = md5($session->getId()); /* Don't log in Moodle if user is blocked */ $user_id = JUserHelper::getUserId($username); $user_obj = JFactory::getUser($user_id); if ($user_obj->block) { return; } $app = JFactory::getApplication(); if (JRequest::getVar('return')) { $return = JRequest::getVar('return'); if (!strncmp($return, 'B:', 2)) { /* CB login module */ $login_url = urlencode(base64_decode(substr($return, 2))); } else { /* Normal login */ $login_url = urlencode(base64_decode(JRequest::getVar('return'))); } } else { if (array_key_exists('url', $options)) { $login_url = urlencode($options['url']); } else { $login_url = urlencode(JRequest::getUri()); } } $username = urlencode($username); // Metodo nuevo con cURL if ($redirectless_sso) { plgUserJoomdlehooks::log_into_moodle($username, $token); } else { // Metodo normal usando redirect $app->redirect($moodle_url . "/auth/joomdle/land.php?username={$username}&token={$token}&use_wrapper=0&create_user=0&wantsurl={$login_url}"); } }