See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
***********************************************************************/
-function add_user($user_id, $real_name, $password, $phone, $email, $full_access,
+function add_user($user_id, $real_name, $password, $phone, $email, $role_id,
$language, $profile, $rep_popup, $pos)
{
$sql = "INSERT INTO ".TB_PREF."users (user_id, real_name, password"
- .", phone, email, full_access, language, pos, print_profile, rep_popup)
+ .", phone, email, role_id, language, pos, print_profile, rep_popup)
VALUES (".db_escape($user_id).",
- ".db_escape($real_name).", ".db_escape($password) .",".db_escape($phone).",
- ".db_escape($email).", $full_access, ".db_escape($language).",
- $pos,".db_escape($profile).",$rep_popup)";
+ ".db_escape($real_name).", ".db_escape($password) .",".db_escape($phone)
+ .",".db_escape($email).", ".db_escape($role_id).", ".db_escape($language)
+ .", ".db_escape($pos).",".db_escape($profile).",".db_escape($rep_popup)
+ ." )";
db_query($sql, "could not add user for $user_id");
}
//-----------------------------------------------------------------------------------------------
-function update_user($id, $user_id, $real_name, $phone, $email, $full_access,
+function update_user($id, $user_id, $real_name, $phone, $email, $role_id,
$language, $profile, $rep_popup, $pos)
{
$sql = "UPDATE ".TB_PREF."users SET real_name=".db_escape($real_name).
", phone=".db_escape($phone).",
email=".db_escape($email).",
- full_access=$full_access,
+ role_id=".db_escape($role_id).",
language=".db_escape($language).",
print_profile=".db_escape($profile).",
- rep_popup=$rep_popup,
- pos=$pos,
+ rep_popup=".db_escape($rep_popup).",
+ pos=".db_escape($pos).",
user_id = " . db_escape($user_id)
. " WHERE id=" . db_escape($id);
db_query($sql, "could not update user for $user_id");
dec_sep=".db_escape($dec_sep).",
theme=".db_escape($theme).",
page_size=".db_escape($pagesize).",
- show_hints=$show_hints,
+ show_hints=".db_escape($show_hints).",
print_profile=".db_escape($profile).",
- rep_popup=$rep_popup,
- query_size=$query_size,
- graphic_links=$graphic_links,
+ rep_popup=".db_escape($rep_popup).",
+ query_size=".db_escape($query_size).",
+ graphic_links=".db_escape($graphic_links).",
language=".db_escape($lang).",
sticky_doc_date=".db_escape($stickydate).",
startup_tab=".db_escape($startup_tab)."
function get_users($all=false)
{
- $sql = "SELECT * FROM ".TB_PREF."users";
- if (!$all) $sql .= " WHERE !inactive";
-
+ $sql = "SELECT u.*, r.role FROM ".TB_PREF."users u, ".TB_PREF."security_roles r
+ WHERE u.role_id=r.id";
+ if (!$all) $sql .= " AND !u.inactive";
+
return db_query($sql, "could not get users");
}
// 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 = '$user_id' AND"
- ." password='$password'";
+ $sql = "SELECT * FROM ".TB_PREF."users WHERE user_id = ".db_escape($user_id)." AND"
+ ." password=".db_escape($password);
return db_query($sql, "could not get validate user login for $user_id");
}
return $ret[0];
}
+
+//-----------------------------------------------------------------------------------------------
+function show_users_online()
+{
+ $timeoutseconds = 120;
+
+ $timestamp=time();
+ $timeout=$timestamp-$timeoutseconds;
+ /*
+ This will find out if user is from behind proxy server.
+ In that case, the script would count them all as 1 user.
+ This function tryes to get real IP address.
+ */
+ if (isset($_SERVER['HTTP_CLIENT_IP'])) {
+ $ip = $_SERVER['HTTP_CLIENT_IP'];
+ }
+ elseif (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
+ $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
+ }
+ elseif (isset($_SERVER['HTTP_X_FORWARDED'])) {
+ $ip = $_SERVER['HTTP_X_FORWARDED'];
+ }
+ elseif (isset($_SERVER['HTTP_FORWARDED_FOR'])) {
+ $ip = $_SERVER['HTTP_FORWARDED_FOR'];
+ }
+ elseif (isset($_SERVER['HTTP_FORWARDED'])) {
+ $ip = $_SERVER['HTTP_FORWARDED'];
+ }
+ else {
+ $ip = $_SERVER['REMOTE_ADDR'];
+ }
+
+ // Add user to database
+ db_query("INSERT INTO ".TB_PREF."useronline (timestamp, ip, file) VALUES ('". $timestamp ."','". $ip ."','". $_SERVER['PHP_SELF'] ."')");
+ //Remove users that were not online within $timeoutseconds.
+ db_query("DELETE FROM ".TB_PREF."useronline WHERE timestamp<". $timeout);
+
+ // Select online users
+ $result = db_query("SELECT DISTINCT ip FROM ".TB_PREF."useronline");
+ $users = db_num_rows($result);
+ return "$users ".($users == 1 ? _("user online") : _(" users online"));
+
+}
?>
\ No newline at end of file