}
$sql = "
-SELECT name, mail
- FROM {$config->userFrameworkUsersTableName}
- WHERE (LOWER(name) = LOWER('$name')) OR (LOWER(mail) = LOWER('$email'))";
-
- $db_cms = DB::connect($config->userFrameworkDSN);
- if (DB::isError($db_cms)) {
- die("Cannot connect to UF db via $dsn, " . $db_cms->getMessage());
+ SELECT name, mail
+ FROM {users}
+ WHERE (LOWER(name) = LOWER('$name')) OR (LOWER(mail) = LOWER('$email'))
+ ";
+
+ $result = db_query($sql);
+ $row = db_fetch_array($result);
+ if (!$row) {
+ return;
}
- $query = $db_cms->query($sql);
- $row = $query->fetchRow();
+
+ $user = NULL;
+
if (!empty($row)) {
- $dbName = CRM_Utils_Array::value(0, $row);
- $dbEmail = CRM_Utils_Array::value(1, $row);
+ $dbName = CRM_Utils_Array::value('name', $row);
+ $dbEmail = CRM_Utils_Array::value('mail', $row);
if (strtolower($dbName) == strtolower($name)) {
$errors['cms_name'] = ts('The username %1 is already taken. Please select another username.',
array(1 => $name)
);
}
if (strtolower($dbEmail) == strtolower($email)) {
- $resetUrl = $config->userFrameworkBaseURL . 'user/password';
- $errors[$emailName] = ts('The email address %1 is already registered. <a href="%2">Have you forgotten your password?</a>',
- array(1 => $email, 2 => $resetUrl)
- );
+ if(empty($email)) {
+ $errors[$emailName] = ts('You cannot create an email account for a contact with no email',
+ array(1 => $email)
+ );
+ }
+ else{
+ $errors[$emailName] = ts('This email %1 is already registered. Please select another email.',
+ array(1 => $email)
+ );
+ }
}
}
}
return FALSE;
}
// If the path is within the drupal directory we can add in the normal way
- if (CRM_Utils_System_Drupal::formatResourceUrl($url)) {
+ if ($this->formatResourceUrl($url)) {
drupal_add_js($url, 'module', $scope);
return TRUE;
}
* @access public
*/
public function addStyleUrl($url, $region) {
- if ($region != 'html-header' || !CRM_Utils_System_Drupal::formatResourceUrl($url)) {
+ if ($region != 'html-header' || !$this->formatResourceUrl($url)) {
return FALSE;
}
drupal_add_css($url);
* @access public
*/
function authenticate($name, $password, $loadCMSBootstrap = FALSE, $realPath = NULL) {
+ //@todo this 'PEAR-y' stuff is only required when bookstrap is not being loaded which is rare
+ // if ever now.
+ // probably if bootstrap is loaded this call
+ // CRM_Utils_System::loadBootStrap($bootStrapParams, TRUE, TRUE, $realPath); would be
+ // sufficient to do what this fn does. It does exist as opposed to return which might need some hanky-panky to make
+ // safe in the unknown situation where authenticate might be called & it is important that
+ // false is returned
require_once 'DB.php';
$config = CRM_Core_Config::singleton();
if (!$loadUser) {
return TRUE;
}
-
+ global $user;
// If $uid is passed in, authentication has been done already.
$uid = CRM_Utils_Array::value('uid', $params);
if (!$uid) {
$pass = CRM_Utils_Array::value('pass', $params, FALSE) ? $params['pass'] : trim(CRM_Utils_Array::value('pass', $_REQUEST));
if ($name) {
- $uid = user_authenticate(array('name' => $name, 'pass' => $pass));
- if (!$uid) {
+ $user = user_authenticate(array('name' => $name, 'pass' => $pass));
+ if (!$user->uid) {
if ($throwError) {
echo '<br />Sorry, unrecognized username or password.';
exit();
}
return FALSE;
}
+ else {
+ return TRUE;
+ }
}
}
if ($uid) {
$account = user_load($uid);
if ($account && $account->uid) {
- global $user;
$user = $account;
return TRUE;
}
og_delete_subscription( $ogID, $drupalID );
}
+ /**
+ * Get timezone from Drupal
+ * @return boolean|string
+ */
+ function getTimeZoneOffset(){
+ global $user;
+ if (variable_get('configurable_timezones', 1) && $user->uid && strlen($user->timezone)) {
+ $timezone = $user->timezone;
+ } else {
+ $timezone = variable_get('date_default_timezone', null);
+ }
+ if(empty($timezone)){
+ return false;
+ }
+ $hour = $user->timezone / 3600;
+ $timeZoneOffset = sprintf("%02d:%02d", $timezone / 3600, ($timezone/60)%60 );
+ if($timeZoneOffset > 0){
+ $timeZoneOffset = '+' . $timeZoneOffset;
+ }
+ return $timeZoneOffset;
+ }
+
+
/**
* Reset any system caches that may be required for proper CiviCRM
* integration.