mirror of
https://github.com/e107inc/e107.git
synced 2025-07-31 11:50:30 +02:00
Update DB access
This commit is contained in:
@@ -12,8 +12,8 @@
|
|||||||
| GNU General Public License (http://gnu.org).
|
| GNU General Public License (http://gnu.org).
|
||||||
|
|
|
|
||||||
| $Source: /cvs_backup/e107_0.8/e107_handlers/login.php,v $
|
| $Source: /cvs_backup/e107_0.8/e107_handlers/login.php,v $
|
||||||
| $Revision: 1.20 $
|
| $Revision: 1.21 $
|
||||||
| $Date: 2009-01-04 16:00:19 $
|
| $Date: 2009-01-17 21:42:54 $
|
||||||
| $Author: e107steved $
|
| $Author: e107steved $
|
||||||
+----------------------------------------------------------------------------+
|
+----------------------------------------------------------------------------+
|
||||||
*/
|
*/
|
||||||
@@ -43,6 +43,9 @@ define ('LOGIN_CHAP_FAIL', -11); // CHAP login failed
|
|||||||
|
|
||||||
class userlogin
|
class userlogin
|
||||||
{
|
{
|
||||||
|
var $userMethods; // Pointer to user handler
|
||||||
|
|
||||||
|
|
||||||
function userlogin($username, $userpass, $autologin, $response = '')
|
function userlogin($username, $userpass, $autologin, $response = '')
|
||||||
{
|
{
|
||||||
/* Constructor
|
/* Constructor
|
||||||
@@ -137,7 +140,7 @@ class userlogin
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Now check password
|
// Now check password
|
||||||
$user_info = new UserHandler();
|
$this->userMethods = new UserHandler;
|
||||||
if ($forceLogin)
|
if ($forceLogin)
|
||||||
{
|
{
|
||||||
if (md5($lode['user_name'].$lode['user_password'].$lode['user_join']) != $userpass)
|
if (md5($lode['user_name'].$lode['user_password'].$lode['user_join']) != $userpass)
|
||||||
@@ -150,7 +153,7 @@ class userlogin
|
|||||||
if ((($pref['password_CHAP'] > 0) && ($response && isset($_SESSION['challenge'])) && ($response != $_SESSION['challenge'])) || ($pref['password_CHAP'] == 2))
|
if ((($pref['password_CHAP'] > 0) && ($response && isset($_SESSION['challenge'])) && ($response != $_SESSION['challenge'])) || ($pref['password_CHAP'] == 2))
|
||||||
{ // Verify using CHAP
|
{ // Verify using CHAP
|
||||||
// $admin_log->e_log_event(4,__FILE__."|".__FUNCTION__."@".__LINE__,"DBG","CHAP login","U: {$username}, P: {$userpass}, C: {$_SESSION['challenge']} R:{$response} S: {$lode['user_password']}",FALSE,LOG_TO_ROLLING);
|
// $admin_log->e_log_event(4,__FILE__."|".__FUNCTION__."@".__LINE__,"DBG","CHAP login","U: {$username}, P: {$userpass}, C: {$_SESSION['challenge']} R:{$response} S: {$lode['user_password']}",FALSE,LOG_TO_ROLLING);
|
||||||
if (($pass_result = $user_info->CheckCHAP($_SESSION['challenge'], $response, $username, $requiredPassword)) === PASSWORD_INVALID)
|
if (($pass_result = $this->userMethods->CheckCHAP($_SESSION['challenge'], $response, $username, $requiredPassword)) === PASSWORD_INVALID)
|
||||||
{
|
{
|
||||||
return $this->invalidLogin($username,LOGIN_CHAP_FAIL,$fip);
|
return $this->invalidLogin($username,LOGIN_CHAP_FAIL,$fip);
|
||||||
}
|
}
|
||||||
@@ -158,7 +161,7 @@ class userlogin
|
|||||||
else
|
else
|
||||||
{ // Plaintext password
|
{ // Plaintext password
|
||||||
// $admin_log->e_log_event(4,__FILE__."|".__FUNCTION__."@".__LINE__,"DBG","Plaintext login","U: {$username}, P: {$userpass}, C: {$_SESSION['challenge']} R:{$response} S: {$lode['user_password']}",FALSE,LOG_TO_ROLLING);
|
// $admin_log->e_log_event(4,__FILE__."|".__FUNCTION__."@".__LINE__,"DBG","Plaintext login","U: {$username}, P: {$userpass}, C: {$_SESSION['challenge']} R:{$response} S: {$lode['user_password']}",FALSE,LOG_TO_ROLLING);
|
||||||
if (($pass_result = $user_info->CheckPassword($userpass,($lookemail ? $lode['user_loginname'] : $username),$requiredPassword)) === PASSWORD_INVALID)
|
if (($pass_result = $this->userMethods->CheckPassword($userpass,($lookemail ? $lode['user_loginname'] : $username),$requiredPassword)) === PASSWORD_INVALID)
|
||||||
{
|
{
|
||||||
return $this->invalidLogin($username,LOGIN_BAD_PW,$fip);
|
return $this->invalidLogin($username,LOGIN_BAD_PW,$fip);
|
||||||
}
|
}
|
||||||
@@ -221,12 +224,12 @@ class userlogin
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$cookieval = $user_info->makeUserCookie($lode,$autologin);
|
$cookieval = $this->userMethods->makeUserCookie($lode,$autologin);
|
||||||
|
|
||||||
|
|
||||||
// Calculate class membership - needed for a couple of things
|
// Calculate class membership - needed for a couple of things
|
||||||
// Problem is that USERCLASS_LIST just contains 'guest' and 'everyone' at this point
|
// Problem is that USERCLASS_LIST just contains 'guest' and 'everyone' at this point
|
||||||
$class_list = $user_info->addCommonClasses($lode, TRUE);
|
$class_list = $this->userMethods->addCommonClasses($lode, TRUE);
|
||||||
|
|
||||||
$user_logging_opts = array_flip(explode(',',varset($pref['user_audit_opts'],'')));
|
$user_logging_opts = array_flip(explode(',',varset($pref['user_audit_opts'],'')));
|
||||||
if (isset($user_logging_opts[USER_AUDIT_LOGIN]) && in_array(varset($pref['user_audit_class'],''),$class_list))
|
if (isset($user_logging_opts[USER_AUDIT_LOGIN]) && in_array(varset($pref['user_audit_class'],''),$class_list))
|
||||||
@@ -248,7 +251,7 @@ class userlogin
|
|||||||
{ // 'New user' probationary period expired - we can take them out of the class
|
{ // 'New user' probationary period expired - we can take them out of the class
|
||||||
$lode['user_class'] = $e107->user_class->ucRemove(e_UC_NEWUSER, $lode['user_class']);
|
$lode['user_class'] = $e107->user_class->ucRemove(e_UC_NEWUSER, $lode['user_class']);
|
||||||
// $admin_log->e_log_event(4,__FILE__."|".__FUNCTION__."@".__LINE__,"DBG","Login new user complete",$lode['user_class'],FALSE,FALSE);
|
// $admin_log->e_log_event(4,__FILE__."|".__FUNCTION__."@".__LINE__,"DBG","Login new user complete",$lode['user_class'],FALSE,FALSE);
|
||||||
$sql->db_UpdateArray('user',array('user_class' => $lode['user_class']), 'WHERE `user_id`='.$lode['user_id']);
|
$sql->db_Update('user',"`user_class` = '".$lode['user_class']."'", 'WHERE `user_id`='.$lode['user_id']);
|
||||||
unset($class_list[e_UC_NEWUSER]);
|
unset($class_list[e_UC_NEWUSER]);
|
||||||
$edata_li = array('user_id' => $user_id, 'user_name' => $username, 'class_list' => implode(',',$class_list));
|
$edata_li = array('user_id' => $user_id, 'user_name' => $username, 'class_list' => implode(',',$class_list));
|
||||||
$e_event->trigger('userNotNew', $edata_li);
|
$e_event->trigger('userNotNew', $edata_li);
|
||||||
@@ -393,17 +396,19 @@ class userlogin
|
|||||||
function update_xup($user_id, $user_xup = "")
|
function update_xup($user_id, $user_xup = "")
|
||||||
{
|
{
|
||||||
global $sql, $tp;
|
global $sql, $tp;
|
||||||
|
$user_id = intval($user_id); // Should already be an integer - but just in case...
|
||||||
if($user_xup)
|
if($user_xup)
|
||||||
{
|
{
|
||||||
require_once(e_HANDLER."xml_class.php");
|
require_once(e_HANDLER.'xml_class.php');
|
||||||
$xml = new xmlClass;
|
$xml = new xmlClass;
|
||||||
|
$xupData = array();
|
||||||
if($rawData = $xml -> getRemoteFile($user_xup))
|
if($rawData = $xml -> getRemoteFile($user_xup))
|
||||||
{
|
{
|
||||||
preg_match_all("#\<meta name=\"(.*?)\" content=\"(.*?)\" \/\>#si", $rawData, $match);
|
preg_match_all("#\<meta name=\"(.*?)\" content=\"(.*?)\" \/\>#si", $rawData, $match);
|
||||||
$count = 0;
|
$count = 0;
|
||||||
foreach($match[1] as $value)
|
foreach($match[1] as $value)
|
||||||
{
|
{ // Process all the data into an array
|
||||||
$$value = $tp -> toDB($match[2][$count]);
|
$xupData[$value] = $tp -> toDB($match[2][$count]);
|
||||||
$count++;
|
$count++;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -417,46 +422,51 @@ class userlogin
|
|||||||
$new_values = array();
|
$new_values = array();
|
||||||
foreach ($main_fields as $f => $v)
|
foreach ($main_fields as $f => $v)
|
||||||
{
|
{
|
||||||
if (isset($$v) && $$v)
|
if (isset($xupData[$v]) && $xupData[$v])
|
||||||
{
|
{
|
||||||
$new_values[$f] = $$v;
|
$new_values['data'][$f] = $xupData[$v];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Use of db_updateArray() ensures only non-empty fields are changed
|
if (count($new_values['data']))
|
||||||
$sql -> db_UpdateArray("user", $new_values, "WHERE user_id='".intval($user_id)."'");
|
{
|
||||||
// $sql -> db_Update("user", "user_realname='{$FN}', user_hideemail='{$EMAILHIDE}', user_signature='{$SIG}', user_sess='{$PHOTO}', user_image='{$AV}', user_timezone='{$TZ}' WHERE user_id='".intval($user_id)."'");
|
if (!is_object($this->userMethods))
|
||||||
|
{
|
||||||
|
$this->userMethods = new userHandler;
|
||||||
|
}
|
||||||
|
require_once(e_HANDLER.'validator_class.php');
|
||||||
|
$this->userMethods($new_values);
|
||||||
|
$new_values['WHERE'] = 'user_id='.$user_id;
|
||||||
|
validatorClass::addFieldTypes($this->userMethods->userVettingInfo,$new_values);
|
||||||
|
$sql -> db_Update('user', $new_values);
|
||||||
|
}
|
||||||
|
|
||||||
$ue_fields = "";
|
$ueList = array();
|
||||||
$fields = array("URL" => "homepage",
|
$fields = array('URL' => 'user_homepage',
|
||||||
"ICQ" => "icq",
|
'ICQ' => 'user_icq',
|
||||||
"AIM" => "aim",
|
'AIM' => 'user_aim',
|
||||||
"MSN" => "msn",
|
'MSN' => 'user_msn',
|
||||||
"YAHOO" => "yahoo",
|
'YAHOO' => 'user_yahoo',
|
||||||
"GEO" => "location",
|
'GEO' => 'user_location',
|
||||||
"TZ" => 'timezone',
|
'TZ' => 'user_timezone',
|
||||||
"BDAY" => "birthday");
|
'BDAY' => 'user_birthday');
|
||||||
include_once(e_HANDLER."user_extended_class.php");
|
include_once(e_HANDLER.'user_extended_class.php');
|
||||||
$usere = new e107_user_extended;
|
$usere = new e107_user_extended;
|
||||||
$extList = $usere->user_extended_get_fieldList();
|
|
||||||
$extName = array();
|
$extName = array();
|
||||||
foreach($extList as $ext)
|
foreach ($fields as $keyxup => $keydb)
|
||||||
{
|
{
|
||||||
$extName[] = $ext['user_extended_struct_name'];
|
if (in_array($keydb, $usere->nameIndex) && in_array($keyxup,$xupData))
|
||||||
}
|
|
||||||
foreach($fields as $keyxup => $keydb)
|
|
||||||
{
|
{
|
||||||
if (in_array($keydb, $extName))
|
$ueList['data'][$keydb] = $tp->toDB($xupData[$keyxup]);
|
||||||
{
|
|
||||||
$key = "user_".$keydb;
|
|
||||||
$key = $tp->toDB($key);
|
|
||||||
$val = $tp->toDB($$keyxup);
|
|
||||||
$ue_fields .= ($ue_fields) ? ", " : "";
|
|
||||||
$ue_fields .= $key."='".$val."'";
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$sql -> db_Select_gen("INSERT INTO #user_extended (user_extended_id) values ('".intval($user_id)."')");
|
if (count($ueList['data']))
|
||||||
$sql -> db_Update("user_extended", $ue_fields." WHERE user_extended_id = '".intval($user_id)."'");
|
{
|
||||||
|
$usere->addFieldTypes($ueList);
|
||||||
|
$ueList['WHERE'] = 'user_extended_id = '.$user_id;
|
||||||
|
$sql -> db_Select_gen('INSERT INTO #user_extended (user_extended_id) values ('.$user_id.')');
|
||||||
|
$sql -> db_Update('user_extended', $ueList);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user