Fixed user group permission bug in manager chat, Issue #1240

git-svn-id: svn://192.168.202.10@3343 3d104415-ff17-0410-8863-d5cf3c621b8a
This commit is contained in:
mattf
2021-01-14 20:46:01 +00:00
parent 18828322df
commit e490c96693
+25 -5
View File
@@ -15,10 +15,11 @@
# 161217-0819 - Added chat-type to allow for multi-user internal chat sessions
# 170409-1551 - Added IP List validation code
# 180508-2215 - Added new help display
# 210114-1338 - Fixed user group permission bug, Issue #1240
#
$admin_version = '2.14-8';
$build = '170409-1551';
$admin_version = '2.14-10';
$build = '210114-1338';
$sh="managerchats";
@@ -155,7 +156,7 @@ if ($auth < 1)
exit;
}
$user_stmt="select full_name,user_level,selected_language,qc_enabled from vicidial_users where user='$PHP_AUTH_USER'";
$user_stmt="select full_name,user_level,selected_language,qc_enabled,user_group from vicidial_users where user='$PHP_AUTH_USER'";
$user_level=0;
$user_rslt=mysql_to_mysqli($user_stmt, $link);
if (mysqli_num_rows($user_rslt)>0)
@@ -165,6 +166,7 @@ if (mysqli_num_rows($user_rslt)>0)
$user_level = $user_row[1];
$VUselected_language = $user_row[2];
$qc_auth = $user_row[3];
$LOGuser_group = $user_row[4];
}
if ($SSallow_chats < 1)
{
@@ -293,13 +295,15 @@ if ($active_chats<1 && $manager_message && ($submit_chat== _QXZ("ALL LIVE AGENTS
if (($LOGuser_level < 9) and ($SSlevel_8_disable_add > 0))
{$add_copy_disabled++;}
$stmt="SELECT allowed_campaigns,allowed_reports,admin_viewable_groups,admin_viewable_call_times from vicidial_user_groups where user_group='$LOGuser_group';";
$stmt="SELECT allowed_campaigns,allowed_reports,admin_viewable_groups,admin_viewable_call_times,agent_allowed_chat_groups from vicidial_user_groups where user_group='$LOGuser_group';";
if ($DB) {echo $stmt;}
$rslt=mysql_to_mysqli($stmt, $link);
$row=mysqli_fetch_row($rslt);
$LOGallowed_campaigns = $row[0];
$LOGallowed_reports = $row[1];
$LOGadmin_viewable_groups = $row[2];
$LOGadmin_viewable_call_times = $row[3];
$LOGagent_allowed_chat_groups = $row[4];
$admin_viewable_groupsALL=0;
$LOGadmin_viewable_groupsSQL='';
$whereLOGadmin_viewable_groupsSQL='';
@@ -332,6 +336,21 @@ while ($UUgroups_to_print > $o)
$o++;
}
if ( (!preg_match("/\-\-ALL\-GROUPS\-\-/i",$LOGagent_allowed_chat_groups)) and (strlen($LOGagent_allowed_chat_groups) > 3) )
{
$rawLOGagent_allowed_chat_groupsSQL = preg_replace("/ -/",'',$LOGagent_allowed_chat_groups);
$rawLOGagent_allowed_chat_groupsSQL = preg_replace("/ /","','",$rawLOGagent_allowed_chat_groupsSQL);
$LOGagent_allowed_chat_groupsSQL = "and user_group IN('---ALL---','$rawLOGagent_allowed_chat_groupsSQL')";
$whereLOGagent_allowed_chat_groupsSQL = "where user_group IN('---ALL---','$rawLOGagent_allowed_chat_groupsSQL')";
$vuLOGagent_allowed_chat_groupsSQL = "and vu.user_group IN('---ALL---','$rawLOGagent_allowed_chat_groupsSQL')";
$valLOGagent_allowed_chat_groupsSQL = "and val.user_group IN('---ALL---','$rawLOGagent_allowed_chat_groupsSQL')";
$vmLOGagent_allowed_chat_groupsSQL = "and vm.user_group IN('---ALL---','$rawLOGagent_allowed_chat_groupsSQL')";
}
else
{$agent_allowed_chat_groupsALL=1;}
header ("Content-type: text/html; charset=utf-8");
header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header ("Pragma: no-cache"); // HTTP/1.0
@@ -732,7 +751,8 @@ $NWE = "')\" WIDTH=20 HEIGHT=20 BORDER=0 ALT=\"HELP\" ALIGN=TOP>";
echo "<span id='ManagerChatDisplay'>";
if (!$manager_chat_id) { # DO NOT ALLOW NEW CHATS WHILE AN OLD ONE IS OPEN!!!
$stmt="select vla.user, vu.full_name, vu.user_group, vla.campaign_id, vc.campaign_name, vug.group_name from vicidial_users vu, vicidial_live_agents vla, vicidial_campaigns vc, vicidial_user_groups vug where vla.user=vu.user and vla.campaign_id=vc.campaign_id and vu.user_group=vug.user_group";
$stmt="select vla.user, vu.full_name, vu.user_group, vla.campaign_id, vc.campaign_name, vug.group_name from vicidial_users vu, vicidial_live_agents vla, vicidial_campaigns vc, vicidial_user_groups vug where vla.user=vu.user and vla.campaign_id=vc.campaign_id and vu.user_group=vug.user_group $vuLOGagent_allowed_chat_groupsSQL";
if ($DB) {echo $stmt;}
$rslt=mysql_to_mysqli($stmt, $link);
$user_array=array();
$user_group_array=array();