\n";
$MAIN.="\n";
$MAIN.="\n";
@@ -371,7 +400,7 @@ $CSV_text1.="\"Inbound Call Stats:\",\"$group_string\",\"$NOW_TIME\"\n";
if ($DID=='Y')
{
- $stmt="select did_id from vicidial_inbound_dids where did_pattern IN($group_SQL);";
+ $stmt="select did_id from vicidial_inbound_dids where did_pattern IN($group_SQL) $LOGadmin_viewable_groupsSQL;";
$rslt=mysql_query($stmt, $link);
if ($DB) {$MAIN.="$stmt\n";}
$dids_to_print = mysql_num_rows($rslt);
diff --git a/www/vicidial/AST_CLOSERsummary_hourly.php b/www/vicidial/AST_CLOSERsummary_hourly.php
index 8c09b55b..bce912e6 100644
--- a/www/vicidial/AST_CLOSERsummary_hourly.php
+++ b/www/vicidial/AST_CLOSERsummary_hourly.php
@@ -13,6 +13,7 @@
# 100802-2347 - Added User Group Allowed Reports option validation
# 100914-1326 - Added lookup for user_level 7 users to set to reports only which will remove other admin links
# 110703-1806 - Added download option
+# 111103-2315 - Added user_group restrictions for selecting in-groups
#
require("dbconnect.php");
@@ -126,12 +127,14 @@ $rslt=mysql_query($stmt, $link);
$row=mysql_fetch_row($rslt);
$LOGuser_group = $row[0];
-$stmt="SELECT allowed_campaigns,allowed_reports from vicidial_user_groups where user_group='$LOGuser_group';";
+$stmt="SELECT allowed_campaigns,allowed_reports,admin_viewable_groups,admin_viewable_call_times from vicidial_user_groups where user_group='$LOGuser_group';";
if ($DB) {$MAIN.="|$stmt|\n";}
$rslt=mysql_query($stmt, $link);
$row=mysql_fetch_row($rslt);
-$LOGallowed_campaigns = $row[0];
-$LOGallowed_reports = $row[1];
+$LOGallowed_campaigns = $row[0];
+$LOGallowed_reports = $row[1];
+$LOGadmin_viewable_groups = $row[2];
+$LOGadmin_viewable_call_times = $row[3];
if ( (!preg_match("/$report_name/",$LOGallowed_reports)) and (!preg_match("/ALL REPORTS/",$LOGallowed_reports)) )
{
@@ -141,6 +144,26 @@ if ( (!preg_match("/$report_name/",$LOGallowed_reports)) and (!preg_match("/ALL
exit;
}
+$LOGadmin_viewable_groupsSQL='';
+$whereLOGadmin_viewable_groupsSQL='';
+if ( (!eregi("--ALL--",$LOGadmin_viewable_groups)) and (strlen($LOGadmin_viewable_groups) > 3) )
+ {
+ $rawLOGadmin_viewable_groupsSQL = preg_replace("/ -/",'',$LOGadmin_viewable_groups);
+ $rawLOGadmin_viewable_groupsSQL = preg_replace("/ /","','",$rawLOGadmin_viewable_groupsSQL);
+ $LOGadmin_viewable_groupsSQL = "and user_group IN('---ALL---','$rawLOGadmin_viewable_groupsSQL')";
+ $whereLOGadmin_viewable_groupsSQL = "where user_group IN('---ALL---','$rawLOGadmin_viewable_groupsSQL')";
+ }
+
+$LOGadmin_viewable_call_timesSQL='';
+$whereLOGadmin_viewable_call_timesSQL='';
+if ( (!eregi("--ALL--",$LOGadmin_viewable_call_times)) and (strlen($LOGadmin_viewable_call_times) > 3) )
+ {
+ $rawLOGadmin_viewable_call_timesSQL = preg_replace("/ -/",'',$LOGadmin_viewable_call_times);
+ $rawLOGadmin_viewable_call_timesSQL = preg_replace("/ /","','",$rawLOGadmin_viewable_call_timesSQL);
+ $LOGadmin_viewable_call_timesSQL = "and call_time_id IN('---ALL---','$rawLOGadmin_viewable_call_timesSQL')";
+ $whereLOGadmin_viewable_call_timesSQL = "where call_time_id IN('---ALL---','$rawLOGadmin_viewable_call_timesSQL')";
+ }
+
$NOW_DATE = date("Y-m-d");
$NOW_TIME = date("Y-m-d H:i:s");
$STARTtime = date("U");
@@ -148,14 +171,15 @@ if (!isset($group)) {$group = '';}
if (!isset($query_date)) {$query_date = $NOW_DATE;}
if (!isset($end_date)) {$end_date = $NOW_DATE;}
-$exclude_rolloverSQL='';
+$exclude_rolloverSQL="$whereLOGadmin_viewable_groupsSQL";
if (eregi("YES",$exclude_rollover))
- {$exclude_rolloverSQL = " where group_id NOT IN(SELECT drop_inbound_group from vicidial_campaigns)";}
+ {$exclude_rolloverSQL = " where group_id NOT IN(SELECT drop_inbound_group from vicidial_campaigns) $LOGadmin_viewable_groupsSQL";}
$stmt="select group_id,group_name from vicidial_inbound_groups $exclude_rolloverSQL order by group_id;";
$rslt=mysql_query($stmt, $link);
if ($DB) {$MAIN.="$stmt\n";}
$groups_to_print = mysql_num_rows($rslt);
$i=0;
+$groups_string='|';
#$LISTgroups[$i]='---NONE---';
#$i++;
#$groups_to_print++;
@@ -164,6 +188,7 @@ while ($i < $groups_to_print)
$row=mysql_fetch_row($rslt);
$LISTgroups[$i] = $row[0];
$LISTgroup_names[$i] = $row[1];
+ $groups_string .= "$LISTgroups[$i]|";
$i++;
}
@@ -172,9 +197,12 @@ $group_string='|';
$group_ct = count($group);
while($i < $group_ct)
{
- $group_string .= "$group[$i]|";
- $group_SQL .= "'$group[$i]',";
- $groupQS .= "&group[]=$group[$i]";
+ if ( (strlen($group[$i]) > 0) and (preg_match("/\|$group[$i]\|/",$groups_string)) )
+ {
+ $group_string .= "$group[$i]|";
+ $group_SQL .= "'$group[$i]',";
+ $groupQS .= "&group[]=$group[$i]";
+ }
$i++;
}
if ( (ereg("--NONE--",$group_string) ) or ($group_ct < 1) )
@@ -187,6 +215,7 @@ else
$group_SQL = eregi_replace(",$",'',$group_SQL);
# $group_SQL = "group_id IN($group_SQL)";
}
+if (strlen($group_SQL)<3) {$group_SQL="''";}
$stmt="select vsc_id,vsc_name from vicidial_status_categories;";
@@ -203,7 +232,7 @@ while ($i < $statcats_to_print)
$i++;
}
-$stmt="select call_time_id,call_time_name from vicidial_call_times order by call_time_id;";
+$stmt="select call_time_id,call_time_name from vicidial_call_times $whereLOGadmin_viewable_call_timesSQL order by call_time_id;";
$rslt=mysql_query($stmt, $link);
if ($DB) {$MAIN.="$stmt\n";}
$times_to_print = mysql_num_rows($rslt);
diff --git a/www/vicidial/AST_DIDstats.php b/www/vicidial/AST_DIDstats.php
index 2c801e5f..ea448fb8 100644
--- a/www/vicidial/AST_DIDstats.php
+++ b/www/vicidial/AST_DIDstats.php
@@ -13,6 +13,7 @@
# 100802-2347 - Added User Group Allowed Reports option validation
# 100914-1326 - Added lookup for user_level 7 users to set to reports only which will remove other admin links
# 110703-1809 - Added download option
+# 111104-1133 - Added user_group restrictions for selecting in-groups
#
require("dbconnect.php");
@@ -99,12 +100,14 @@ $rslt=mysql_query($stmt, $link);
$row=mysql_fetch_row($rslt);
$LOGuser_group = $row[0];
-$stmt="SELECT allowed_campaigns,allowed_reports from vicidial_user_groups where user_group='$LOGuser_group';";
+$stmt="SELECT allowed_campaigns,allowed_reports,admin_viewable_groups,admin_viewable_call_times from vicidial_user_groups where user_group='$LOGuser_group';";
if ($DB) {$MAIN.="|$stmt|\n";}
$rslt=mysql_query($stmt, $link);
$row=mysql_fetch_row($rslt);
-$LOGallowed_campaigns = $row[0];
-$LOGallowed_reports = $row[1];
+$LOGallowed_campaigns = $row[0];
+$LOGallowed_reports = $row[1];
+$LOGadmin_viewable_groups = $row[2];
+$LOGadmin_viewable_call_times = $row[3];
if ( (!preg_match("/$report_name/",$LOGallowed_reports)) and (!preg_match("/ALL REPORTS/",$LOGallowed_reports)) )
{
@@ -114,6 +117,26 @@ if ( (!preg_match("/$report_name/",$LOGallowed_reports)) and (!preg_match("/ALL
exit;
}
+$LOGadmin_viewable_groupsSQL='';
+$whereLOGadmin_viewable_groupsSQL='';
+if ( (!eregi("--ALL--",$LOGadmin_viewable_groups)) and (strlen($LOGadmin_viewable_groups) > 3) )
+ {
+ $rawLOGadmin_viewable_groupsSQL = preg_replace("/ -/",'',$LOGadmin_viewable_groups);
+ $rawLOGadmin_viewable_groupsSQL = preg_replace("/ /","','",$rawLOGadmin_viewable_groupsSQL);
+ $LOGadmin_viewable_groupsSQL = "and user_group IN('---ALL---','$rawLOGadmin_viewable_groupsSQL')";
+ $whereLOGadmin_viewable_groupsSQL = "where user_group IN('---ALL---','$rawLOGadmin_viewable_groupsSQL')";
+ }
+
+$LOGadmin_viewable_call_timesSQL='';
+$whereLOGadmin_viewable_call_timesSQL='';
+if ( (!eregi("--ALL--",$LOGadmin_viewable_call_times)) and (strlen($LOGadmin_viewable_call_times) > 3) )
+ {
+ $rawLOGadmin_viewable_call_timesSQL = preg_replace("/ -/",'',$LOGadmin_viewable_call_times);
+ $rawLOGadmin_viewable_call_timesSQL = preg_replace("/ /","','",$rawLOGadmin_viewable_call_timesSQL);
+ $LOGadmin_viewable_call_timesSQL = "and call_time_id IN('---ALL---','$rawLOGadmin_viewable_call_timesSQL')";
+ $whereLOGadmin_viewable_call_timesSQL = "where call_time_id IN('---ALL---','$rawLOGadmin_viewable_call_timesSQL')";
+ }
+
$NOW_DATE = date("Y-m-d");
$NOW_TIME = date("Y-m-d H:i:s");
$STARTtime = date("U");
@@ -121,10 +144,11 @@ if (!isset($group)) {$group = '';}
if (!isset($query_date)) {$query_date = $NOW_DATE;}
if (!isset($end_date)) {$end_date = $NOW_DATE;}
-$stmt="select did_id,did_pattern,did_description from vicidial_inbound_dids order by did_pattern;";
+$stmt="select did_id,did_pattern,did_description from vicidial_inbound_dids $whereLOGadmin_viewable_groupsSQL order by did_pattern;";
$rslt=mysql_query($stmt, $link);
if ($DB) {$MAIN.="$stmt\n";}
$groups_to_print = mysql_num_rows($rslt);
+$groups_string='|';
$i=0;
while ($i < $groups_to_print)
{
@@ -132,6 +156,7 @@ while ($i < $groups_to_print)
$groups[$i] = $row[0];
$group_patterns[$i] = $row[1];
$group_names[$i] = $row[2];
+ $groups_string .= "$groups[$i]|";
$i++;
}
@@ -140,9 +165,12 @@ $group_string='|';
$group_ct = count($group);
while($i < $group_ct)
{
- $group_string .= "$group[$i]|";
- $group_SQL .= "'$group[$i]',";
- $groupQS .= "&group[]=$group[$i]";
+ if ( (strlen($group[$i]) > 0) and (preg_match("/\|$group[$i]\|/",$groups_string)) )
+ {
+ $group_string .= "$group[$i]|";
+ $group_SQL .= "'$group[$i]',";
+ $groupQS .= "&group[]=$group[$i]";
+ }
$i++;
}
if ( (ereg("--NONE--",$group_string) ) or ($group_ct < 1) )
@@ -155,6 +183,7 @@ else
$group_SQL = eregi_replace(",$",'',$group_SQL);
# $group_SQL = "group_id IN($group_SQL)";
}
+if (strlen($group_SQL)<3) {$group_SQL="''";}
@@ -187,7 +216,7 @@ if ($DB > 0)
$MAIN.="";
-$MAIN.="\n";
echo "
\n";
diff --git a/www/vicidial/admin_search_lead.php b/www/vicidial/admin_search_lead.php
index c490a958..1fb8ea1a 100644
--- a/www/vicidial/admin_search_lead.php
+++ b/www/vicidial/admin_search_lead.php
@@ -25,6 +25,7 @@
# 100405-1331 - Added log search ability
# 100622-0928 - Added field labels
# 110218-1237 - Added vicidial_lead_search_log logging
+# 111103-1239 - Added admin_hide_phone_data and admin_hide_lead_data options
#
require("dbconnect.php");
@@ -98,11 +99,13 @@ else
{
$office_no=strtoupper($PHP_AUTH_USER);
$password=strtoupper($PHP_AUTH_PW);
- $stmt="SELECT full_name,modify_leads from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'";
+ $stmt="SELECT full_name,modify_leads,admin_hide_lead_data,admin_hide_phone_data 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];
- $LOGmodify_leads = $row[1];
+ $LOGfullname = $row[0];
+ $LOGmodify_leads = $row[1];
+ $LOGadmin_hide_lead_data = $row[2];
+ $LOGadmin_hide_phone_data = $row[3];
if ($WeBRooTWritablE > 0)
{
@@ -316,6 +319,22 @@ else
while ($results_to_print > $o)
{
$row=mysql_fetch_row($rslt);
+ if ($LOGadmin_hide_phone_data != '0')
+ {
+ if ($DB > 0) {echo "HIDEPHONEDATA|$row[1]|$LOGadmin_hide_phone_data|\n";}
+ $phone_temp = $row[1];
+ if (strlen($phone_temp) > 0)
+ {
+ if ($LOGadmin_hide_phone_data == '4_DIGITS')
+ {$row[1] = str_repeat("X", (strlen($phone_temp) - 4)) . substr($phone_temp,-4,4);}
+ elseif ($LOGadmin_hide_phone_data == '3_DIGITS')
+ {$row[1] = str_repeat("X", (strlen($phone_temp) - 3)) . substr($phone_temp,-3,3);}
+ elseif ($LOGadmin_hide_phone_data == '2_DIGITS')
+ {$row[1] = str_repeat("X", (strlen($phone_temp) - 2)) . substr($phone_temp,-2,2);}
+ else
+ {$row[1] = preg_replace("/./",'X',$phone_temp);}
+ }
+ }
$o++;
$search_lead = $row[0];
if (eregi("1$|3$|5$|7$|9$", $o))
@@ -365,6 +384,22 @@ else
while ($results_to_print > $o)
{
$row=mysql_fetch_row($rslt);
+ if ($LOGadmin_hide_phone_data != '0')
+ {
+ if ($DB > 0) {echo "HIDEPHONEDATA|$row[1]|$LOGadmin_hide_phone_data|\n";}
+ $phone_temp = $row[1];
+ if (strlen($phone_temp) > 0)
+ {
+ if ($LOGadmin_hide_phone_data == '4_DIGITS')
+ {$row[1] = str_repeat("X", (strlen($phone_temp) - 4)) . substr($phone_temp,-4,4);}
+ elseif ($LOGadmin_hide_phone_data == '3_DIGITS')
+ {$row[1] = str_repeat("X", (strlen($phone_temp) - 3)) . substr($phone_temp,-3,3);}
+ elseif ($LOGadmin_hide_phone_data == '2_DIGITS')
+ {$row[1] = str_repeat("X", (strlen($phone_temp) - 2)) . substr($phone_temp,-2,2);}
+ else
+ {$row[1] = preg_replace("/./",'X',$phone_temp);}
+ }
+ }
$o++;
$search_lead = $row[0];
if (eregi("1$|3$|5$|7$|9$", $o))
@@ -411,6 +446,22 @@ else
while ($results_to_print > $o)
{
$row=mysql_fetch_row($rslt);
+ if ($LOGadmin_hide_phone_data != '0')
+ {
+ if ($DB > 0) {echo "HIDEPHONEDATA|$row[1]|$LOGadmin_hide_phone_data|\n";}
+ $phone_temp = $row[1];
+ if (strlen($phone_temp) > 0)
+ {
+ if ($LOGadmin_hide_phone_data == '4_DIGITS')
+ {$row[1] = str_repeat("X", (strlen($phone_temp) - 4)) . substr($phone_temp,-4,4);}
+ elseif ($LOGadmin_hide_phone_data == '3_DIGITS')
+ {$row[1] = str_repeat("X", (strlen($phone_temp) - 3)) . substr($phone_temp,-3,3);}
+ elseif ($LOGadmin_hide_phone_data == '2_DIGITS')
+ {$row[1] = str_repeat("X", (strlen($phone_temp) - 2)) . substr($phone_temp,-2,2);}
+ else
+ {$row[1] = preg_replace("/./",'X',$phone_temp);}
+ }
+ }
$o++;
$search_lead = $row[0];
if (eregi("1$|3$|5$|7$|9$", $o))
@@ -600,6 +651,59 @@ else
while ($results_to_print > $o)
{
$row=mysql_fetch_row($rslt);
+ if ($LOGadmin_hide_phone_data != '0')
+ {
+ if ($DB > 0) {echo "HIDEPHONEDATA|$row[11]|$LOGadmin_hide_phone_data|\n";}
+ $phone_temp = $row[11];
+ if (strlen($phone_temp) > 0)
+ {
+ if ($LOGadmin_hide_phone_data == '4_DIGITS')
+ {$row[11] = str_repeat("X", (strlen($phone_temp) - 4)) . substr($phone_temp,-4,4);}
+ elseif ($LOGadmin_hide_phone_data == '3_DIGITS')
+ {$row[11] = str_repeat("X", (strlen($phone_temp) - 3)) . substr($phone_temp,-3,3);}
+ elseif ($LOGadmin_hide_phone_data == '2_DIGITS')
+ {$row[11] = str_repeat("X", (strlen($phone_temp) - 2)) . substr($phone_temp,-2,2);}
+ else
+ {$row[11] = preg_replace("/./",'X',$phone_temp);}
+ }
+ }
+ if ($LOGadmin_hide_lead_data != '0')
+ {
+ if ($DB > 0) {echo "HIDELEADDATA|$row[5]|$row[6]|$row[12]|$row[13]|$row[14]|$row[15]|$row[16]|$row[17]|$row[18]|$row[19]|$row[20]|$row[21]|$row[22]|$row[26]|$row[27]|$row[28]|$LOGadmin_hide_lead_data|\n";}
+ if (strlen($row[5]) > 0)
+ {$data_temp = $row[5]; $row[5] = preg_replace("/./",'X',$data_temp);}
+ if (strlen($row[6]) > 0)
+ {$data_temp = $row[6]; $row[6] = preg_replace("/./",'X',$data_temp);}
+ if (strlen($row[12]) > 0)
+ {$data_temp = $row[12]; $row[12] = preg_replace("/./",'X',$data_temp);}
+ if (strlen($row[13]) > 0)
+ {$data_temp = $row[13]; $row[13] = preg_replace("/./",'X',$data_temp);}
+ if (strlen($row[14]) > 0)
+ {$data_temp = $row[14]; $row[14] = preg_replace("/./",'X',$data_temp);}
+ if (strlen($row[15]) > 0)
+ {$data_temp = $row[15]; $row[15] = preg_replace("/./",'X',$data_temp);}
+ if (strlen($row[16]) > 0)
+ {$data_temp = $row[16]; $row[16] = preg_replace("/./",'X',$data_temp);}
+ if (strlen($row[17]) > 0)
+ {$data_temp = $row[17]; $row[17] = preg_replace("/./",'X',$data_temp);}
+ if (strlen($row[18]) > 0)
+ {$data_temp = $row[18]; $row[18] = preg_replace("/./",'X',$data_temp);}
+ if (strlen($row[19]) > 0)
+ {$data_temp = $row[19]; $row[19] = preg_replace("/./",'X',$data_temp);}
+ if (strlen($row[20]) > 0)
+ {$data_temp = $row[20]; $row[20] = preg_replace("/./",'X',$data_temp);}
+ if (strlen($row[21]) > 0)
+ {$data_temp = $row[21]; $row[21] = preg_replace("/./",'X',$data_temp);}
+ if (strlen($row[22]) > 0)
+ {$data_temp = $row[22]; $row[22] = preg_replace("/./",'X',$data_temp);}
+ if (strlen($row[26]) > 0)
+ {$data_temp = $row[26]; $row[26] = preg_replace("/./",'X',$data_temp);}
+ if (strlen($row[27]) > 0)
+ {$data_temp = $row[27]; $row[27] = preg_replace("/./",'X',$data_temp);}
+ if (strlen($row[28]) > 0)
+ {$data_temp = $row[28]; $row[28] = preg_replace("/./",'X',$data_temp);}
+ }
+
$o++;
$search_lead = $row[0];
if (eregi("1$|3$|5$|7$|9$", $o))
diff --git a/www/vicidial/call_report_export.php b/www/vicidial/call_report_export.php
index 29fe28e5..6c2ee790 100644
--- a/www/vicidial/call_report_export.php
+++ b/www/vicidial/call_report_export.php
@@ -32,6 +32,7 @@
# 110721-2027 - Added IVR export options
# 110911-1445 - Added did fields to the EXTENDED format
# 111010-1930 - Added ALTERNATE_1 format
+# 111104-1240 - Added user_group restrictions for selecting in-groups
#
require("dbconnect.php");
@@ -136,12 +137,14 @@ $rslt=mysql_query($stmt, $link);
$row=mysql_fetch_row($rslt);
$LOGuser_group = $row[0];
-$stmt="SELECT allowed_campaigns,allowed_reports from vicidial_user_groups where user_group='$LOGuser_group';";
+$stmt="SELECT allowed_campaigns,allowed_reports,admin_viewable_groups,admin_viewable_call_times from vicidial_user_groups where user_group='$LOGuser_group';";
if ($DB) {echo "|$stmt|\n";}
$rslt=mysql_query($stmt, $link);
$row=mysql_fetch_row($rslt);
-$LOGallowed_campaigns = $row[0];
-$LOGallowed_reports = $row[1];
+$LOGallowed_campaigns = $row[0];
+$LOGallowed_reports = $row[1];
+$LOGadmin_viewable_groups = $row[2];
+$LOGadmin_viewable_call_times = $row[3];
if ( (!preg_match("/$report_name/",$LOGallowed_reports)) and (!preg_match("/ALL REPORTS/",$LOGallowed_reports)) )
{
@@ -162,6 +165,25 @@ if ( (!eregi("-ALL",$LOGallowed_campaigns)) )
}
$regexLOGallowed_campaigns = " $LOGallowed_campaigns ";
+$LOGadmin_viewable_groupsSQL='';
+$whereLOGadmin_viewable_groupsSQL='';
+if ( (!eregi("--ALL--",$LOGadmin_viewable_groups)) and (strlen($LOGadmin_viewable_groups) > 3) )
+ {
+ $rawLOGadmin_viewable_groupsSQL = preg_replace("/ -/",'',$LOGadmin_viewable_groups);
+ $rawLOGadmin_viewable_groupsSQL = preg_replace("/ /","','",$rawLOGadmin_viewable_groupsSQL);
+ $LOGadmin_viewable_groupsSQL = "and user_group IN('---ALL---','$rawLOGadmin_viewable_groupsSQL')";
+ $whereLOGadmin_viewable_groupsSQL = "where user_group IN('---ALL---','$rawLOGadmin_viewable_groupsSQL')";
+ }
+
+$LOGadmin_viewable_call_timesSQL='';
+$whereLOGadmin_viewable_call_timesSQL='';
+if ( (!eregi("--ALL--",$LOGadmin_viewable_call_times)) and (strlen($LOGadmin_viewable_call_times) > 3) )
+ {
+ $rawLOGadmin_viewable_call_timesSQL = preg_replace("/ -/",'',$LOGadmin_viewable_call_times);
+ $rawLOGadmin_viewable_call_timesSQL = preg_replace("/ /","','",$rawLOGadmin_viewable_call_timesSQL);
+ $LOGadmin_viewable_call_timesSQL = "and call_time_id IN('---ALL---','$rawLOGadmin_viewable_call_timesSQL')";
+ $whereLOGadmin_viewable_call_timesSQL = "where call_time_id IN('---ALL---','$rawLOGadmin_viewable_call_timesSQL')";
+ }
##### START RUN THE EXPORT AND OUTPUT FLAT DATA FILE #####
if ($run_export > 0)
@@ -780,7 +802,7 @@ else
$i++;
}
- $stmt="select group_id from vicidial_inbound_groups order by group_id;";
+ $stmt="select group_id from vicidial_inbound_groups $whereLOGadmin_viewable_groupsSQL order by group_id;";
$rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";}
$groups_to_print = mysql_num_rows($rslt);
@@ -795,7 +817,7 @@ else
$i++;
}
- $stmt="select user_group from vicidial_user_groups order by user_group;";
+ $stmt="select user_group from vicidial_user_groups $whereLOGadmin_viewable_groupsSQL order by user_group;";
$rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";}
$user_groups_to_print = mysql_num_rows($rslt);
diff --git a/www/vicidial/fcstats.php b/www/vicidial/fcstats.php
index fdc24d02..fe1de355 100644
--- a/www/vicidial/fcstats.php
+++ b/www/vicidial/fcstats.php
@@ -18,6 +18,7 @@
# 100802-2347 - Added User Group Allowed Reports option validation
# 100914-1326 - Added lookup for user_level 7 users to set to reports only which will remove other admin links
# 110703-1828 - Added download option
+# 111104-1213 - Added user_group restrictions for selecting in-groups
#
require("dbconnect.php");
@@ -101,12 +102,14 @@ $rslt=mysql_query($stmt, $link);
$row=mysql_fetch_row($rslt);
$LOGuser_group = $row[0];
-$stmt="SELECT allowed_campaigns,allowed_reports from vicidial_user_groups where user_group='$LOGuser_group';";
+$stmt="SELECT allowed_campaigns,allowed_reports,admin_viewable_groups,admin_viewable_call_times from vicidial_user_groups where user_group='$LOGuser_group';";
if ($DB) {$HTML_text.="|$stmt|\n";}
$rslt=mysql_query($stmt, $link);
$row=mysql_fetch_row($rslt);
-$LOGallowed_campaigns = $row[0];
-$LOGallowed_reports = $row[1];
+$LOGallowed_campaigns = $row[0];
+$LOGallowed_reports = $row[1];
+$LOGadmin_viewable_groups = $row[2];
+$LOGadmin_viewable_call_times = $row[3];
if ( (!preg_match("/$report_name/",$LOGallowed_reports)) and (!preg_match("/ALL REPORTS/",$LOGallowed_reports)) )
{
@@ -116,21 +119,43 @@ if ( (!preg_match("/$report_name/",$LOGallowed_reports)) and (!preg_match("/ALL
exit;
}
+$LOGadmin_viewable_groupsSQL='';
+$whereLOGadmin_viewable_groupsSQL='';
+if ( (!eregi("--ALL--",$LOGadmin_viewable_groups)) and (strlen($LOGadmin_viewable_groups) > 3) )
+ {
+ $rawLOGadmin_viewable_groupsSQL = preg_replace("/ -/",'',$LOGadmin_viewable_groups);
+ $rawLOGadmin_viewable_groupsSQL = preg_replace("/ /","','",$rawLOGadmin_viewable_groupsSQL);
+ $LOGadmin_viewable_groupsSQL = "and user_group IN('---ALL---','$rawLOGadmin_viewable_groupsSQL')";
+ $whereLOGadmin_viewable_groupsSQL = "where user_group IN('---ALL---','$rawLOGadmin_viewable_groupsSQL')";
+ }
+
+$LOGadmin_viewable_call_timesSQL='';
+$whereLOGadmin_viewable_call_timesSQL='';
+if ( (!eregi("--ALL--",$LOGadmin_viewable_call_times)) and (strlen($LOGadmin_viewable_call_times) > 3) )
+ {
+ $rawLOGadmin_viewable_call_timesSQL = preg_replace("/ -/",'',$LOGadmin_viewable_call_times);
+ $rawLOGadmin_viewable_call_timesSQL = preg_replace("/ /","','",$rawLOGadmin_viewable_call_timesSQL);
+ $LOGadmin_viewable_call_timesSQL = "and call_time_id IN('---ALL---','$rawLOGadmin_viewable_call_timesSQL')";
+ $whereLOGadmin_viewable_call_timesSQL = "where call_time_id IN('---ALL---','$rawLOGadmin_viewable_call_timesSQL')";
+ }
+
$NOW_DATE = date("Y-m-d");
$NOW_TIME = date("Y-m-d H:i:s");
$STARTtime = date("U");
if (!isset($group)) {$group = 'CL_TEST_L';}
if (!isset($query_date)) {$query_date = $NOW_DATE;}
-$stmt="select group_id from vicidial_inbound_groups order by group_id;";
+$stmt="select group_id from vicidial_inbound_groups $whereLOGadmin_viewable_groupsSQL order by group_id;";
$rslt=mysql_query($stmt, $link);
if ($DB) {$HTML_text.="$stmt\n";}
$groups_to_print = mysql_num_rows($rslt);
$i=0;
+$groups_string='|';
while ($i < $groups_to_print)
{
$row=mysql_fetch_row($rslt);
$groups[$i] =$row[0];
+ $groups_string .= "$groups[$i]|";
$i++;
}
@@ -148,6 +173,19 @@ $HTML_head.="\n";
$HTML_head.="\n";
$HTML_head.="\n";
+#if (strlen($group) > 0)
+# {
+# if (preg_match("/\|$group\|/i",$groups_string))
+# {
+# # $HTML_head.="\n";
+# }
+# else
+# {
+# # $HTML_head.="\n";
+# $group='';
+# }
+# }
+
$HTML_head.="\n";
$HTML_head.="$report_name\n";
@@ -313,7 +351,7 @@ while ($i < $users_to_print)
$i=0;
while ($i < $users_to_print)
{
- $stmt="select full_name from vicidial_users where user='$userRAW[$i]';";
+ $stmt="select full_name from vicidial_users where user='$userRAW[$i]' $LOGadmin_viewable_groupsSQL;";
if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
$rslt=mysql_query($stmt, $link);
if ($DB) {$HTML_text.="$stmt\n";}
@@ -502,7 +540,7 @@ while ($i < $users_to_print)
$i=0;
while ($i < $users_to_print)
{
- $stmt="select full_name from vicidial_users where user='$userRAW[$i]';";
+ $stmt="select full_name from vicidial_users where user='$userRAW[$i]' $LOGadmin_viewable_groupsSQL;";
if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
$rslt=mysql_query($stmt, $link);
if ($DB) {$HTML_text.="$stmt\n";}
diff --git a/www/vicidial/lead_report_export.php b/www/vicidial/lead_report_export.php
index f6d855cb..6a1ef5e5 100644
--- a/www/vicidial/lead_report_export.php
+++ b/www/vicidial/lead_report_export.php
@@ -10,6 +10,7 @@
# CHANGES
#
# 110624-0834 - First build, based upon calls_report_export.php
+# 111104-1245 - Added user_group restrictions for selecting in-groups
#
require("dbconnect.php");
@@ -112,12 +113,15 @@ $rslt=mysql_query($stmt, $link);
$row=mysql_fetch_row($rslt);
$LOGuser_group = $row[0];
-$stmt="SELECT allowed_campaigns,allowed_reports from vicidial_user_groups where user_group='$LOGuser_group';";
+$stmt="SELECT allowed_campaigns,allowed_reports,admin_viewable_groups,admin_viewable_call_times from vicidial_user_groups where user_group='$LOGuser_group';";
if ($DB) {echo "|$stmt|\n";}
$rslt=mysql_query($stmt, $link);
$row=mysql_fetch_row($rslt);
-$LOGallowed_campaigns = $row[0];
-$LOGallowed_reports = $row[1];
+$LOGallowed_campaigns = $row[0];
+$LOGallowed_reports = $row[1];
+$LOGadmin_viewable_groups = $row[2];
+$LOGadmin_viewable_call_times = $row[3];
+
if ( (!preg_match("/$report_name/",$LOGallowed_reports)) and (!preg_match("/ALL REPORTS/",$LOGallowed_reports)) )
{
@@ -138,6 +142,25 @@ if ( (!eregi("-ALL",$LOGallowed_campaigns)) )
}
$regexLOGallowed_campaigns = " $LOGallowed_campaigns ";
+$LOGadmin_viewable_groupsSQL='';
+$whereLOGadmin_viewable_groupsSQL='';
+if ( (!eregi("--ALL--",$LOGadmin_viewable_groups)) and (strlen($LOGadmin_viewable_groups) > 3) )
+ {
+ $rawLOGadmin_viewable_groupsSQL = preg_replace("/ -/",'',$LOGadmin_viewable_groups);
+ $rawLOGadmin_viewable_groupsSQL = preg_replace("/ /","','",$rawLOGadmin_viewable_groupsSQL);
+ $LOGadmin_viewable_groupsSQL = "and user_group IN('---ALL---','$rawLOGadmin_viewable_groupsSQL')";
+ $whereLOGadmin_viewable_groupsSQL = "where user_group IN('---ALL---','$rawLOGadmin_viewable_groupsSQL')";
+ }
+
+$LOGadmin_viewable_call_timesSQL='';
+$whereLOGadmin_viewable_call_timesSQL='';
+if ( (!eregi("--ALL--",$LOGadmin_viewable_call_times)) and (strlen($LOGadmin_viewable_call_times) > 3) )
+ {
+ $rawLOGadmin_viewable_call_timesSQL = preg_replace("/ -/",'',$LOGadmin_viewable_call_times);
+ $rawLOGadmin_viewable_call_timesSQL = preg_replace("/ /","','",$rawLOGadmin_viewable_call_timesSQL);
+ $LOGadmin_viewable_call_timesSQL = "and call_time_id IN('---ALL---','$rawLOGadmin_viewable_call_timesSQL')";
+ $whereLOGadmin_viewable_call_timesSQL = "where call_time_id IN('---ALL---','$rawLOGadmin_viewable_call_timesSQL')";
+ }
##### START RUN THE EXPORT AND OUTPUT FLAT DATA FILE #####
if ($run_export > 0)
@@ -661,7 +684,7 @@ else
$i++;
}
- $stmt="select group_id from vicidial_inbound_groups order by group_id;";
+ $stmt="select group_id from vicidial_inbound_groups $whereLOGadmin_viewable_groupsSQL order by group_id;";
$rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";}
$groups_to_print = mysql_num_rows($rslt);
@@ -676,7 +699,7 @@ else
$i++;
}
- $stmt="select user_group from vicidial_user_groups order by user_group;";
+ $stmt="select user_group from vicidial_user_groups $whereLOGadmin_viewable_groupsSQL order by user_group;";
$rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";}
$user_groups_to_print = mysql_num_rows($rslt);
diff --git a/www/vicidial/non_agent_api.php b/www/vicidial/non_agent_api.php
index d824b6d1..64f3cfc2 100644
--- a/www/vicidial/non_agent_api.php
+++ b/www/vicidial/non_agent_api.php
@@ -59,10 +59,11 @@
# 110705-1928 - Added options for USACAN 4th digit prefix(no 0 or 1) and valid areacode filtering to add_lead
# 110821-2318 - Added update_phone, add_phone_alias, update_phone_alias functions
# 110928-2110 - Added callback options to add_lead and update_lead
+# 111106-0959 - Added user_group restrictions to some functions
#
-$version = '2.4-38';
-$build = '110928-2110';
+$version = '2.4-39';
+$build = '111106-0959';
$startMS = microtime();
@@ -283,6 +284,8 @@ if (isset($_GET["callback_user"])) {$callback_user=$_GET["callback_user"];}
elseif (isset($_POST["callback_user"])) {$callback_user=$_POST["callback_user"];}
if (isset($_GET["callback_comments"])) {$callback_comments=$_GET["callback_comments"];}
elseif (isset($_POST["callback_comments"])) {$callback_comments=$_POST["callback_comments"];}
+if (isset($_GET["admin_user_group"])) {$admin_user_group=$_GET["admin_user_group"];}
+ elseif (isset($_POST["admin_user_group"])) {$admin_user_group=$_POST["admin_user_group"];}
header ("Content-type: text/html; charset=utf-8");
@@ -423,6 +426,7 @@ if ($non_latin < 1)
$callback_type = ereg_replace("[^A-Z]","",$callback_type);
$callback_user = ereg_replace("[^-\_0-9a-zA-Z]","",$callback_user);
$callback_comments = ereg_replace("[^- \+\.\:\/\@\_0-9a-zA-Z]","",$callback_comments);
+ $admin_user_group = ereg_replace("[^-\_0-9a-zA-Z]","",$admin_user_group);
}
else
{
@@ -729,6 +733,29 @@ if ($function == 'moh_list')
}
else
{
+ $stmt="SELECT user_group from vicidial_users where user='$user' and pass='$pass' and user_level > 6;";
+ if ($DB>0) {echo "|$stmt|\n";}
+ $rslt=mysql_query($stmt, $link);
+ $row=mysql_fetch_row($rslt);
+ $LOGuser_group = $row[0];
+
+ $stmt="SELECT allowed_campaigns,admin_viewable_groups from vicidial_user_groups where user_group='$LOGuser_group';";
+ if ($DB>0) {echo "|$stmt|\n";}
+ $rslt=mysql_query($stmt, $link);
+ $row=mysql_fetch_row($rslt);
+ $LOGallowed_campaigns = $row[0];
+ $LOGadmin_viewable_groups = $row[1];
+
+ $LOGadmin_viewable_groupsSQL='';
+ $whereLOGadmin_viewable_groupsSQL='';
+ if ( (!eregi("--ALL--",$LOGadmin_viewable_groups)) and (strlen($LOGadmin_viewable_groups) > 3) )
+ {
+ $rawLOGadmin_viewable_groupsSQL = preg_replace("/ -/",'',$LOGadmin_viewable_groups);
+ $rawLOGadmin_viewable_groupsSQL = preg_replace("/ /","','",$rawLOGadmin_viewable_groupsSQL);
+ $LOGadmin_viewable_groupsSQL = "and user_group IN('---ALL---','$rawLOGadmin_viewable_groupsSQL')";
+ $whereLOGadmin_viewable_groupsSQL = "where user_group IN('---ALL---','$rawLOGadmin_viewable_groupsSQL')";
+ }
+
echo "\n";
echo "NON-AGENT API\n";
echo " |
|