fixed bug in timeclock.php script git-svn-id: svn://192.168.202.10@886 3d104415-ff17-0410-8863-d5cf3c621b8a
296 lines
8.1 KiB
PHP
296 lines
8.1 KiB
PHP
<?
|
|
# user_status.php
|
|
#
|
|
# Copyright (C) 2008 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2
|
|
#
|
|
# CHANGES
|
|
#
|
|
# 60619-1738 - Added variable filtering to eliminate SQL injection attack threat
|
|
#
|
|
|
|
header ("Content-type: text/html; charset=utf-8");
|
|
|
|
require("dbconnect.php");
|
|
|
|
$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER'];
|
|
$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW'];
|
|
$PHP_SELF=$_SERVER['PHP_SELF'];
|
|
if (isset($_GET["begin_date"])) {$begin_date=$_GET["begin_date"];}
|
|
elseif (isset($_POST["begin_date"])) {$begin_date=$_POST["begin_date"];}
|
|
if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];}
|
|
elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];}
|
|
if (isset($_GET["user"])) {$user=$_GET["user"];}
|
|
elseif (isset($_POST["user"])) {$user=$_POST["user"];}
|
|
if (isset($_GET["group"])) {$group=$_GET["group"];}
|
|
elseif (isset($_POST["group"])) {$group=$_POST["group"];}
|
|
if (isset($_GET["stage"])) {$stage=$_GET["stage"];}
|
|
elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];}
|
|
if (isset($_GET["submit"])) {$submit=$_GET["submit"];}
|
|
elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];}
|
|
if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];}
|
|
elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];}
|
|
|
|
#############################################
|
|
##### START SYSTEM_SETTINGS LOOKUP #####
|
|
$stmt = "SELECT use_non_latin,webroot_writable FROM system_settings;";
|
|
$rslt=mysql_query($stmt, $link);
|
|
if ($DB) {echo "$stmt\n";}
|
|
$qm_conf_ct = mysql_num_rows($rslt);
|
|
$i=0;
|
|
while ($i < $qm_conf_ct)
|
|
{
|
|
$row=mysql_fetch_row($rslt);
|
|
$non_latin = $row[0];
|
|
$webroot_writable = $row[1];
|
|
$i++;
|
|
}
|
|
##### END SETTINGS LOOKUP #####
|
|
###########################################
|
|
|
|
$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER);
|
|
$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW);
|
|
|
|
$STARTtime = date("U");
|
|
$TODAY = date("Y-m-d");
|
|
|
|
if (!isset($begin_date)) {$begin_date = $TODAY;}
|
|
if (!isset($end_date)) {$end_date = $TODAY;}
|
|
|
|
$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and view_reports='1';";
|
|
if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");}
|
|
$rslt=mysql_query($stmt, $link);
|
|
$row=mysql_fetch_row($rslt);
|
|
$auth=$row[0];
|
|
|
|
$fp = fopen ("./project_auth_entries.txt", "a");
|
|
$date = date("r");
|
|
$ip = getenv("REMOTE_ADDR");
|
|
$browser = getenv("HTTP_USER_AGENT");
|
|
|
|
if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth))
|
|
{
|
|
Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\"");
|
|
Header("HTTP/1.0 401 Unauthorized");
|
|
echo "Invalid Username/Password: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n";
|
|
exit;
|
|
}
|
|
else
|
|
{
|
|
|
|
if($auth>0)
|
|
{
|
|
$stmt="SELECT full_name,change_agent_campaign from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'";
|
|
$rslt=mysql_query($stmt, $link);
|
|
$row=mysql_fetch_row($rslt);
|
|
$LOGfullname=$row[0];
|
|
$change_agent_campaign=$row[1];
|
|
if ($webroot_writable > 0)
|
|
{
|
|
fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n");
|
|
fclose($fp);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if ($webroot_writable > 0)
|
|
{
|
|
fwrite ($fp, "VICIDIAL|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n");
|
|
fclose($fp);
|
|
}
|
|
}
|
|
|
|
$stmt="SELECT full_name,user_group from vicidial_users where user='" . mysql_real_escape_string($user) . "';";
|
|
$rslt=mysql_query($stmt, $link);
|
|
$row=mysql_fetch_row($rslt);
|
|
$full_name = $row[0];
|
|
$user_group = $row[1];
|
|
|
|
$stmt="SELECT * from vicidial_live_agents where user='" . mysql_real_escape_string($user) . "';";
|
|
$rslt=mysql_query($stmt, $link);
|
|
if ($DB) {echo "$stmt\n";}
|
|
$agents_to_print = mysql_num_rows($rslt);
|
|
$i=0;
|
|
while ($i < $agents_to_print)
|
|
{
|
|
$row=mysql_fetch_row($rslt);
|
|
$Aserver_ip = $row[2];
|
|
$Asession_id = $row[3];
|
|
$Aextension = $row[4];
|
|
$Astatus = $row[5];
|
|
$Acampaign = $row[7];
|
|
$Alast_call = $row[14];
|
|
$Acl_campaigns = $row[15];
|
|
$i++;
|
|
}
|
|
|
|
$stmt="SELECT event_date,status,ip_address from vicidial_timeclock_status where user='" . mysql_real_escape_string($user) . "';";
|
|
$rslt=mysql_query($stmt, $link);
|
|
if ($DB) {echo "$stmt\n";}
|
|
$tc_logs_to_print = mysql_num_rows($rslt);
|
|
if ($tc_logs_to_print > 0)
|
|
{
|
|
$row=mysql_fetch_row($rslt);
|
|
$Tevent_date = $row[0];
|
|
$Tstatus = $row[1];
|
|
$Tip_address = $row[2];
|
|
$i++;
|
|
}
|
|
|
|
}
|
|
|
|
$stmt="select * from vicidial_campaigns;";
|
|
$rslt=mysql_query($stmt, $link);
|
|
if ($DB) {echo "$stmt\n";}
|
|
$groups_to_print = mysql_num_rows($rslt);
|
|
$i=0;
|
|
while ($i < $groups_to_print)
|
|
{
|
|
$row=mysql_fetch_row($rslt);
|
|
$groups[$i] =$row[0];
|
|
$i++;
|
|
}
|
|
|
|
|
|
|
|
?>
|
|
<html>
|
|
<head>
|
|
<title>VICIDIAL ADMIN: User Status</title>
|
|
<?
|
|
echo "<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=utf-8\">\n";
|
|
?>
|
|
</head>
|
|
<BODY BGCOLOR=white marginheight=0 marginwidth=0 leftmargin=0 topmargin=0>
|
|
<CENTER>
|
|
<TABLE WIDTH=620 BGCOLOR=#D9E6FE cellpadding=2 cellspacing=0><TR BGCOLOR=#015B91><TD ALIGN=LEFT><? echo "<a href=\"./admin.php\">" ?><FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B> VICIDIAL ADMIN</a>: User Status for <? echo $user ?></TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B><? echo date("l F j, Y G:i:s A") ?> </TD></TR>
|
|
|
|
|
|
|
|
|
|
<?
|
|
|
|
echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=3><B> \n";
|
|
|
|
if ($stage == "live_campaign_change")
|
|
{
|
|
$stmt="UPDATE vicidial_live_agents set campaign_id='" . mysql_real_escape_string($group) . "' where user='" . mysql_real_escape_string($user) . "';";
|
|
$rslt=mysql_query($stmt, $link);
|
|
|
|
echo "Agent $user - $full_name changed to $group campaign<BR>\n";
|
|
|
|
exit;
|
|
}
|
|
|
|
if ($stage == "log_agent_out")
|
|
{
|
|
$stmt="DELETE from vicidial_live_agents where user='" . mysql_real_escape_string($user) . "';";
|
|
$rslt=mysql_query($stmt, $link);
|
|
|
|
echo "Agent $user - $full_name has been emergency logged out, make sure they close their web browser<BR>\n";
|
|
|
|
exit;
|
|
}
|
|
|
|
if ($agents_to_print > 0)
|
|
{
|
|
echo "<PRE>";
|
|
echo "Agent Logged in at server: $Aserver_ip\n";
|
|
echo " in session: $Asession_id\n";
|
|
echo " from phone: $Aextension\n";
|
|
echo "Agent is in campaign: $Acampaign\n";
|
|
echo " status: $Astatus\n";
|
|
echo " hungup last call at: $Alast_call\n";
|
|
echo " Closer groups: $Acl_campaigns\n\n";
|
|
|
|
echo "</PRE>";
|
|
|
|
|
|
if ($change_agent_campaign > 0)
|
|
{
|
|
echo "<form action=$PHP_SELF method=POST>\n";
|
|
echo "<input type=hidden name=user value=\"$user\">\n";
|
|
echo "<input type=hidden name=stage value=\"live_campaign_change\">\n";
|
|
echo "Current Campaign: <SELECT SIZE=1 NAME=group>\n";
|
|
$o=0;
|
|
while ($groups_to_print > $o)
|
|
{
|
|
if ($groups[$o] == "$Acampaign") {echo "<option selected value=\"$groups[$o]\">$groups[$o]</option>\n";}
|
|
else {echo "<option value=\"$groups[$o]\">$groups[$o]</option>\n";}
|
|
$o++;
|
|
}
|
|
echo "</SELECT>\n";
|
|
echo "<input type=submit name=submit value=CHANGE><BR></form>\n";
|
|
|
|
|
|
echo "<form action=$PHP_SELF method=POST>\n";
|
|
echo "<input type=hidden name=user value=\"$user\">\n";
|
|
echo "<input type=hidden name=stage value=\"log_agent_out\">\n";
|
|
echo "<input type=submit name=submit value=\"EMERGENCY LOG AGENT OUT\"><BR></form>\n";
|
|
}
|
|
}
|
|
|
|
else
|
|
{
|
|
echo "Agent is not logged in to VICIDIAL\n<BR>";
|
|
|
|
}
|
|
|
|
echo "\n<BR>";
|
|
|
|
if ( ($Tstatus == "LOGIN") or ($Tstatus == "START") )
|
|
{
|
|
echo "User $user - is logged in to the timeclock. <BR>Login time: $Tevent_date from $Tip_address<BR>\n";
|
|
|
|
exit;
|
|
}
|
|
else
|
|
{
|
|
echo "User $user - is NOT logged in to the timeclock. <BR>Last logout time: $Tevent_date from $Tip_address<BR>\n";
|
|
|
|
exit;
|
|
}
|
|
|
|
|
|
|
|
echo " $user - $full_name \n";
|
|
echo " GROUP: $user_group <BR><BR>\n";
|
|
|
|
echo "<a href=\"./AST_agent_time_sheet.php?agent=$user\">VICIDIAL Time Sheet</a>\n";
|
|
echo " - <a href=\"./user_stats.php?user=$user\">User Stats</a>\n";
|
|
echo " - <a href=\"./admin.php?ADD=3&user=$user\">Modify User</a>\n";
|
|
|
|
echo "</B></TD></TR>\n";
|
|
echo "<TR><TD ALIGN=LEFT COLSPAN=2>\n";
|
|
|
|
|
|
$ENDtime = date("U");
|
|
|
|
$RUNtime = ($ENDtime - $STARTtime);
|
|
|
|
echo "\n\n\n<br><br><br>\n\n";
|
|
|
|
|
|
echo "<font size=0>\n\n\n<br><br><br>\nscript runtime: $RUNtime seconds</font>";
|
|
|
|
echo "|$stage|$group|";
|
|
|
|
?>
|
|
|
|
|
|
</TD></TR><TABLE>
|
|
</body>
|
|
</html>
|
|
|
|
<?
|
|
|
|
exit;
|
|
|
|
|
|
|
|
?>
|
|
|
|
|
|
|
|
|
|
|