Old ineffective sql_trail superseded by new improved db_trail logging only calls...
[fa-stable.git] / admin / db / users_db.inc
index 267029c96f2c2bd685fbbd60f6b5bd5d316c82de..1040930591988465f9a24a09e45d53a3e8eefced 100644 (file)
@@ -13,6 +13,7 @@
 function add_user($user_id, $real_name, $password, $phone, $email, $role_id, 
        $language, $profile, $rep_popup, $pos)
 {
+       begin_transaction(__FUNCTION__, func_get_args());
        $sql = "INSERT INTO ".TB_PREF."users (user_id, real_name, password"
                .", phone, email, role_id, language, pos, print_profile, rep_popup)
                VALUES (".db_escape($user_id).", 
@@ -21,17 +22,23 @@ function add_user($user_id, $real_name, $password, $phone, $email, $role_id,
                .", ".db_escape($pos).",".db_escape($profile).",".db_escape($rep_popup)
                ." )";
 
-       return db_query($sql, "could not add user for $user_id");
+       $result = db_query($sql, "could not add user for $user_id");
+       commit_transaction();
+       return $result;
 }
 
 //-----------------------------------------------------------------------------------------------
 
 function update_user_password($id, $user_id, $password)
 {
+       begin_transaction(__FUNCTION__, func_get_args());
+
        $sql = "UPDATE ".TB_PREF."users SET password=".db_escape($password) . ",
                user_id = ".db_escape($user_id). " WHERE id=".db_escape($id);
+       $result = db_query($sql, "could not update user password for $user_id");
 
-       return db_query($sql, "could not update user password for $user_id");
+       commit_transaction();
+       return $result;
 }
 
 //-----------------------------------------------------------------------------------------------
@@ -39,6 +46,7 @@ function update_user_password($id, $user_id, $password)
 function update_user($id, $user_id, $real_name, $phone, $email, $role_id, 
        $language, $profile, $rep_popup, $pos)
 {
+       begin_transaction(__FUNCTION__, func_get_args());
        $sql = "UPDATE ".TB_PREF."users SET real_name=".db_escape($real_name).
        ", phone=".db_escape($phone).",
                email=".db_escape($email).",
@@ -50,19 +58,25 @@ function update_user($id, $user_id, $real_name, $phone, $email, $role_id,
                user_id = " . db_escape($user_id)
                . " WHERE id=" . db_escape($id);
        return db_query($sql, "could not update user for $user_id");
+       commit_transaction();
 }
 
 //-----------------------------------------------------------------------------------------------
 
 function update_user_prefs($id, $prefs)
 {
+       begin_transaction(__FUNCTION__, func_get_args());
+
        $sql = "UPDATE ".TB_PREF."users SET ";
        foreach($prefs as $name => $value) {
                $prefs[$name] = $name.'='. db_escape($value);
        }
        $sql .= implode(',', $prefs) . " WHERE id=".db_escape($id);
 
-       return db_query($sql, "could not update user display prefs for $id");
+       $result = db_query($sql, "could not update user display prefs for $id");
+
+       commit_transaction();
+       return $result;
 }
 
 //-----------------------------------------------------------------------------------------------
@@ -101,28 +115,29 @@ function get_user_by_login($user_id)
 
 //-----------------------------------------------------------------------------------------------
 
-function delete_user($id)
+function get_user_by_email($email)
 {
-       $sql="DELETE FROM ".TB_PREF."users WHERE id=".db_escape($id);
+       $sql = "SELECT * FROM ".TB_PREF."users WHERE email=".db_escape($email);
 
-       db_query($sql, "could not delete user $id");
+       $result = db_query($sql, "could not get user for email $email");
+
+       if (db_num_rows($result) != 1)
+               return false;
+
+       return db_fetch($result);
 }
 
 //-----------------------------------------------------------------------------------------------
-//
-//     Obsolete, to be removed in 2.4. This function as been spleet into get_user_auth/get_user_by_login
-//     in FA 2.3.6
-//
-function get_user_for_login($user_id, $password)
+
+function delete_user($id)
 {
-       set_global_connection();
+       begin_transaction(__FUNCTION__, func_get_args());
 
-// do not exclude inactive records or you lost access after source upgrade
-// on sites using pre 2.2 database
-       $sql = "SELECT * FROM ".TB_PREF."users WHERE user_id = ".db_escape($user_id)." AND"
-               ." password=".db_escape($password);
+       $sql="DELETE FROM ".TB_PREF."users WHERE id=".db_escape($id);
 
-       return db_query($sql, "could not get validate user login for $user_id");
+       db_query($sql, "could not delete user $id");
+
+       commit_transaction();
 }
 
 //-----------------------------------------------------------------------------------------------
@@ -137,13 +152,19 @@ function get_user_auth($user_id, $password)
 }
 
 //-----------------------------------------------------------------------------------------------
-
-function update_user_visitdate($user_id)
+//
+//     Record user login. When logging is on also current FA state is recorded.
+//
+function update_user_visitdate($user_id, $src_version, $db_version, $extensions)
 {
+       begin_transaction(__FUNCTION__, func_get_args());
+
        $sql = "UPDATE ".TB_PREF."users SET last_visit_date='". date("Y-m-d H:i:s") ."'
                WHERE user_id=".db_escape($user_id);
 
        db_query($sql, "could not update last visit date for user $user_id");
+
+       commit_transaction();
 }
 
 //-----------------------------------------------------------------------------------------------
@@ -160,9 +181,9 @@ function check_user_activity($id)
 //-----------------------------------------------------------------------------------------------
 function show_users_online()
 {
-       global $show_users_online, $db, $GetText;
-       
-       if (!isset($show_users_online) || $show_users_online == 0 || !defined('TB_PREF') || 
+       global $db, $GetText, $SysPrefs;
+
+       if (!isset($SysPrefs->show_users_online) || $SysPrefs->show_users_online == 0 || !defined('TB_PREF') || 
                !isset($GetText) || !isset($db))
                return "";
        $result = db_query("SHOW TABLES LIKE '".TB_PREF."useronline'"); 
@@ -197,7 +218,7 @@ function show_users_online()
                }
 
                // Add user to database
-               db_query("INSERT INTO ".TB_PREF."useronline (timestamp, ip, file) VALUES ('". $timestamp ."','". $ip ."','". $_SERVER['PHP_SELF'] ."')");
+               db_query("INSERT INTO ".TB_PREF."useronline (timestamp, ip, file) VALUES ('". $timestamp ."',". db_escape($ip) .",". db_escape($_SERVER['PHP_SELF']) .")");
                //Remove users that were not online within $timeoutseconds.
                db_query("DELETE FROM ".TB_PREF."useronline WHERE timestamp<". $timeout);
 
@@ -210,4 +231,3 @@ function show_users_online()
        return "$users ".($users == 1 ? _("user online") : _("users online"));
 
 }
-?>
\ No newline at end of file