summaryrefslogtreecommitdiffstats
path: root/lib/class/user.class.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/class/user.class.php')
-rw-r--r--lib/class/user.class.php194
1 files changed, 24 insertions, 170 deletions
diff --git a/lib/class/user.class.php b/lib/class/user.class.php
index d678ad1c..c972d863 100644
--- a/lib/class/user.class.php
+++ b/lib/class/user.class.php
@@ -727,28 +727,24 @@ class User {
* If -1 is passed it also removes duplicates from the `preferences`
* table.
*/
- function fix_preferences($user_id=0) {
+ public static function fix_preferences($user_id) {
- if (!$user_id) {
- $user_id = $this->id;
- }
-
- $user_id = sql_escape($user_id);
+ $user_id = Dba::escape($user_id);
/* Get All Preferences for the current user */
$sql = "SELECT * FROM `user_preference` WHERE `user`='$user_id'";
- $db_results = mysql_query($sql,dbh());
+ $db_results = Dba::query($sql);
$results = array();
- while ($r = mysql_fetch_assoc($db_results)) {
+ while ($r = Dba::fetch_assoc($db_results)) {
$pref_id = $r['preference'];
/* Check for duplicates */
if (isset($results[$pref_id])) {
- $r['value'] = sql_escape($r['value']);
+ $r['value'] = Dba::escape($r['value']);
$sql = "DELETE FROM `user_preference` WHERE `user`='$user_id' AND `preference`='" . $r['preference'] . "' AND" .
- " `value`='" . sql_escape($r['value']) . "'";
- $delete_results = mysql_query($sql,dbh());
+ " `value`='" . Dba::escape($r['value']) . "'";
+ $delete_results = Dba::query($sql);
} // if its set
else {
$results[$pref_id] = 1;
@@ -759,10 +755,11 @@ class User {
if ($user_id != '-1') {
$sql = "SELECT `user_preference`.`preference`,`user_preference`.`value` FROM `user_preference`,`preferences` " .
"WHERE `user_preference`.`preference` = `preferences`.`id` AND `user_preference`.`user`='-1' AND `preferences`.`catagory` !='system'";
- $db_results = mysql_query($sql, dbh());
+ $db_results = Dba::query($sql);
/* While through our base stuff */
- while ($r = mysql_fetch_object($db_results)) {
- $zero_results[$r->preference] = $r->value;
+ while ($r = Dba::fetch_assoc($db_results)) {
+ $key = $r['preference'];
+ $zero_results[$key] = $r['value'];
}
} // if not user -1
@@ -773,18 +770,20 @@ class User {
if ($user_id != '-1') {
$sql .= " WHERE catagory !='system'";
}
- $db_results = mysql_query($sql, dbh());
+ $db_results = Dba::query($sql);
- while ($r = mysql_fetch_object($db_results)) {
+ while ($r = Dba::fetch_assoc($db_results)) {
+
+ $key = $r['id'];
/* Check if this preference is set */
- if (!isset($results[$r->id])) {
- if (isset($zero_results[$r->id])) {
- $r->value = $zero_results[$r->id];
+ if (!isset($results[$key])) {
+ if (isset($zero_results[$key])) {
+ $r['value'] = $zero_results[$key];
}
- $value = sql_escape($r->value);
- $sql = "INSERT INTO user_preference (`user`,`preference`,`value`) VALUES ('$user_id','$r->id','$value')";
- $insert_db = mysql_query($sql, dbh());
+ $value = Dba::escape($r['value']);
+ $sql = "INSERT INTO user_preference (`user`,`preference`,`value`) VALUES ('$user_id','$key','$value')";
+ $insert_db = Dba::query($sql);
}
} // while preferences
@@ -792,166 +791,21 @@ class User {
$sql = "SELECT DISTINCT(user_preference.user) FROM user_preference " .
"LEFT JOIN user ON user_preference.user = user.id " .
"WHERE user_preference.user!='-1' AND user.id IS NULL";
- $db_results = mysql_query($sql, dbh());
+ $db_results = Dba::query($sql);
$results = array();
- while ($r = mysql_fetch_assoc($db_results)) {
+ while ($r = Dba::fetch_assoc($db_results)) {
$results[] = $r['user'];
}
foreach ($results as $data) {
$sql = "DELETE FROM user_preference WHERE user='$data'";
- $db_results = mysql_query($sql, dbh());
+ $db_results = Dba::query($sql);
}
-
} // fix_preferences
- /**
- * username_fix_preferences
- * this is an old function that takes a username
- * and fixes the preferences based on that it is no longer
- * used by has to be maintained due to the update class
- */
- function username_fix_preferences($user_id=0) {
-
- if (!$user_id) {
- $user_id = $this->username;
- }
- /* Get All Preferences */
- $sql = "SELECT * FROM user_preference WHERE user='$user_id'";
- $db_results = mysql_query($sql, dbh());
-
- while ($r = mysql_fetch_object($db_results)) {
- /* Check for duplicates */
- if (isset($results[$r->preference])) {
- $r->value = sql_escape($r->value);
- $sql = "DELETE FROM user_preference WHERE user='$user_id' AND preference='$r->preference' AND value='$r->value'";
- $delete_results = mysql_query($sql, dbh());
- } // duplicate
- else {
- $results[$r->preference] = $r;
- }
- } // while results
-
- /*
- If we aren't the -1 user before we continue then grab the
- -1 user's values
- */
- if ($user_id != '-1') {
- $sql = "SELECT user_preference.preference,user_preference.value FROM user_preference,preferences " .
- "WHERE user_preference.preference = preferences.id AND user_preference.user='-1' AND preferences.catagory !='system'";
- $db_results = mysql_query($sql, dbh());
- while ($r = mysql_fetch_object($db_results)) {
- $zero_results[$r->preference] = $r->value;
- }
- } // if not user -1
-
-
- $sql = "SELECT * FROM preferences";
- if ($user_id != '-1') {
- $sql .= " WHERE catagory !='system'";
- }
- $db_results = mysql_query($sql, dbh());
-
- while ($r = mysql_fetch_object($db_results)) {
-
- /* Check if this preference is set */
- if (!isset($results[$r->id])) {
- if (isset($zero_results[$r->id])) {
- $r->value = $zero_results[$r->id];
- }
- $sql = "INSERT INTO user_preference (`user`,`preference`,`value`) VALUES ('$user_id','$r->id','$r->value')";
- $insert_db = mysql_query($sql, dbh());
- }
- } // while preferences
-
- /* Let's also clean out any preferences garbage left over */
- $sql = "SELECT DISTINCT(user_preference.user) FROM user_preference " .
- "LEFT JOIN user ON user_preference.user = user.username " .
- "WHERE user_preference.user!='-1' AND user.username IS NULL";
- $db_results = mysql_query($sql, dbh());
-
- $results = array();
-
- while ($r = mysql_fetch_assoc($db_results)) {
- $results[] = $r['user'];
- }
-
- foreach ($results as $data) {
- $sql = "DELETE FROM user_preference WHERE user='$data'";
- $db_results = mysql_query($sql, dbh());
- }
-
- } // fix_preferences
-
- /**
- * This function is specificly for the update script
- * it's maintained simply because we have to in order to previous updates to
- * work correctly
- * @package Update
- * @catagory Legacy Function
- * @depreciated If working with a new db please use the fix_preferences
- */
- function old_fix_preferences($user_id = 0) {
-
- if (!$user_id) {
- $user_id = $this->id;
- }
-
- /* Get All Preferences */
- $sql = "SELECT * FROM user_preference WHERE user='$user_id'";
- $db_results = mysql_query($sql, dbh());
-
- while ($r = mysql_fetch_object($db_results)) {
- /* Check for duplicates */
- if (isset($results[$r->preference])) {
- $r->value = sql_escape($r->value);
- $sql = "DELETE FROM user_preference WHERE user='$user_id' AND preference='$r->preference' AND value='$r->value'";
- $delete_results = mysql_query($sql, dbh());
- } // duplicate
- else {
- $results[$r->preference] = $r;
- }
- } // while results
-
- /*
- If we aren't the 0 user before we continue then grab the
- 0 user's values
- */
- if ($user_id != '0') {
- $sql = "SELECT user_preference.preference,user_preference.value FROM user_preference,preferences " .
- "WHERE user_preference.preference = preferences.id AND user_preference.user='0' AND preferences.type='user'";
- $db_results = mysql_query($sql, dbh());
- while ($r = mysql_fetch_object($db_results)) {
- $zero_results[$r->preference] = $r->value;
- }
- } // if not user 0
-
-
- $sql = "SELECT * FROM preferences";
- if ($user_id != '0') {
- $sql .= " WHERE type='user'";
- }
- $db_results = mysql_query($sql, dbh());
-
-
- while ($r = mysql_fetch_object($db_results)) {
-
- /* Check if this preference is set */
- if (!isset($results[$r->id])) {
- if (isset($zero_results[$r->id])) {
- $r->value = $zero_results[$r->id];
- }
- $sql = "INSERT INTO user_preference (`user`,`preference`,`value`) VALUES ('$user_id','$r->id','$r->value')";
- $insert_db = mysql_query($sql, dbh());
- }
- } // while preferences
-
- } // old_fix_preferences
-
-
/*!
@function delete_stats
@discussion deletes the stats for this user