<?php
/*
+--------------------------------------------------------------------+
- | CiviCRM version 4.3 |
+ | CiviCRM version 4.4 |
+--------------------------------------------------------------------+
| Copyright CiviCRM LLC (c) 2004-2013 |
+--------------------------------------------------------------------+
require_once 'DB.php';
$config = CRM_Core_Config::singleton();
+ $user = NULL;
if ($loadCMSBootstrap) {
$bootStrapParams = array();
jimport('joomla.application.component.helper');
jimport('joomla.database.table');
+ jimport('joomla.user.helper');
- $JUserTable = &JTable::getInstance('User', 'JTable');
+ $JUserTable = JTable::getInstance('User', 'JTable');
$db = $JUserTable->getDbo();
$query = $db->getQuery(TRUE);
- $query->select('id, username, email, password');
+ $query->select('id, name, username, email, password');
$query->from($JUserTable->getTableName());
$query->where('(LOWER(username) = LOWER(\'' . $name . '\')) AND (block = 0)');
$db->setQuery($query, 0, 0);
- $users = $db->loadAssocList();
+ $users = $db->loadObjectList();
- $row = array();;
+ $row = array();
if (count($users)) {
$row = $users[0];
}
- $user = NULL;
+ if ( !defined('JVERSION') ) {
+ $joomlaBase = dirname(dirname(dirname(dirname(dirname(dirname(dirname(dirname(__FILE__))))))));
+ require $joomlaBase . '/libraries/cms/version/version.php';
+ $jversion = new JVersion;
+ define('JVERSION', $jversion->getShortVersion());
+ }
+
if (!empty($row)) {
- $dbPassword = CRM_Utils_Array::value('password', $row);
- $dbId = CRM_Utils_Array::value('id', $row);
- $dbEmail = CRM_Utils_Array::value('email', $row);
-
- // now check password
- if (strpos($dbPassword, ':') === FALSE) {
- if ($dbPassword != md5($password)) {
- return FALSE;
+ $dbPassword = $row->password;
+ $dbId = $row->id;
+ $dbEmail = $row->email;
+
+ if ( version_compare(JVERSION, '2.5.18', 'lt') ||
+ ( version_compare(JVERSION, '3.0', 'ge') && version_compare(JVERSION, '3.2.1', 'lt') )
+ ) {
+ // now check password
+ if (strpos($dbPassword, ':') === FALSE) {
+ if ($dbPassword != md5($password)) {
+ return FALSE;
+ }
+ }
+ else {
+ list($hash, $salt) = explode(':', $dbPassword);
+ $cryptpass = md5($password . $salt);
+ if ($hash != $cryptpass) {
+ return FALSE;
+ }
}
}
else {
- list($hash, $salt) = explode(':', $dbPassword);
- $cryptpass = md5($password . $salt);
- if ($hash != $cryptpass) {
- return FALSE;
- }
+ if (!JUserHelper::verifyPassword($password, $dbPassword, $dbId)) return FALSE;
}
- CRM_Core_BAO_UFMatch::synchronizeUFMatch($user, $dbId, $dbEmail, 'Joomla');
+ CRM_Core_BAO_UFMatch::synchronizeUFMatch($row, $dbId, $dbEmail, 'Joomla');
$contactID = CRM_Core_BAO_UFMatch::getContactId($dbId);
if (!$contactID) {
return FALSE;
}
return array($contactID, $dbId, mt_rand());
}
+
return FALSE;
}
function setUserSession($data) {
list($userID, $ufID) = $data;
$user = new JUser( $ufID );
- $session = &JFactory::getSession();
+ $session = JFactory::getSession();
$session->set('user', $user);
parent::setUserSession($data);
function getUFLocale() {
if (defined('_JEXEC')) {
$conf = JFactory::getConfig();
- $locale = $conf->getValue('config.language');
+ $locale = $conf->get('language');
return str_replace('-', '_', $locale);
}
return NULL;
* @param $loadUser boolean load cms user?
* @param $throwError throw error on failure?
*/
- function loadBootStrap($params = array(), $loadUser = TRUE, $throwError = TRUE, $loadDefines = TRUE) {
+ function loadBootStrap($params = array(), $loadUser = TRUE, $throwError = TRUE, $realPath = NULL, $loadDefines = TRUE) {
// Setup the base path related constant.
$joomlaBase = dirname(dirname(dirname(dirname(dirname(dirname(dirname(dirname(__FILE__))))))));
}
// Get the framework.
+ if (file_exists($joomlaBase . '/libraries/import.legacy.php')) {
+ require $joomlaBase . '/libraries/import.legacy.php';
+ }
require $joomlaBase . '/libraries/import.php';
require $joomlaBase . '/libraries/joomla/event/dispatcher.php';
require $joomlaBase . '/configuration.php';
}
else {
require $joomlaBase . '/libraries/joomla/uri/uri.php';
- require $joomlaBase . '/libraries/legacy/component/helper.php';
}
jimport('joomla.application.cli');