|
@@ -47,26 +47,9 @@ else {
|
|
|
}
|
|
|
|
|
|
//get data from the db
|
|
|
- if (strlen($_REQUEST["id"])> 0) {
|
|
|
+ if (strlen($_REQUEST["id"]) > 0) {
|
|
|
$user_uuid = $_REQUEST["id"];
|
|
|
}
|
|
|
- else {
|
|
|
- if (strlen($_SESSION["username"]) > 0) {
|
|
|
- $username = $_SESSION["username"];
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
-//get the username from v_users
|
|
|
- $sql = "select * from v_users ";
|
|
|
- $sql .= "where domain_uuid = '$domain_uuid' ";
|
|
|
- $sql .= "and user_uuid = '$user_uuid' ";
|
|
|
- $prep_statement = $db->prepare(check_sql($sql));
|
|
|
- $prep_statement->execute();
|
|
|
- $result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
|
|
|
- foreach ($result as &$row) {
|
|
|
- $username = $row["username"];
|
|
|
- }
|
|
|
- unset ($prep_statement);
|
|
|
|
|
|
//required to be a superadmin to update an account that is a member of the superadmin group
|
|
|
$superadmins = superadmin_list($db);
|
|
@@ -119,10 +102,11 @@ if (count($_POST) > 0 && $_POST["persistform"] != "1") {
|
|
|
|
|
|
//get the HTTP values and set as variables
|
|
|
$user_uuid = $_REQUEST["id"];
|
|
|
+ $username_old = check_str($_POST["username_old"]);
|
|
|
+ $username = check_str($_POST["username"]);
|
|
|
$password = check_str($_POST["password"]);
|
|
|
$confirm_password = check_str($_POST["confirm_password"]);
|
|
|
$user_status = check_str($_POST["user_status"]);
|
|
|
- //$user_template_name = check_str($_POST["user_template_name"]);
|
|
|
$user_language = check_str($_POST["user_language"]);
|
|
|
$user_time_zone = check_str($_POST["user_time_zone"]);
|
|
|
$contact_uuid = check_str($_POST["contact_uuid"]);
|
|
@@ -130,23 +114,26 @@ if (count($_POST) > 0 && $_POST["persistform"] != "1") {
|
|
|
$user_enabled = check_str($_POST["user_enabled"]);
|
|
|
$api_key = check_str($_POST["api_key"]);
|
|
|
|
|
|
- //set the required values
|
|
|
- if ($password != $confirm_password) { $msg_error .= $text['message-password_mismatch']."<br>\n"; }
|
|
|
- //if (strlen($contact_uuid) == 0) { $msg_error .= $text['message-required'].$text['label-email']."<br>\n"; }
|
|
|
- //if (strlen($user_time_zone) == 0) { $msg_error .= $text['message-required'].$text['label-time_zone']."<br>\n"; }
|
|
|
- if (strlen($user_enabled) == 0) { $msg_error .= $text['message-required'].$text['label-enabled']."<br>\n"; }
|
|
|
+ //check required values
|
|
|
+ if ($username != $username_old) {
|
|
|
+ $sql = "select count(*) as num_rows from v_users where domain_uuid = '".$domain_uuid."' and username = '".$username."'";
|
|
|
+ $prep_statement = $db->prepare(check_sql($sql));
|
|
|
+ if ($prep_statement) {
|
|
|
+ $prep_statement->execute();
|
|
|
+ $row = $prep_statement->fetch(PDO::FETCH_ASSOC);
|
|
|
+ if (0 < $row['num_rows']) {
|
|
|
+ $msg_error = $text['message-username_exists'];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ unset($sql);
|
|
|
+ }
|
|
|
+
|
|
|
+ if ($password != $confirm_password) { $msg_error = $text['message-password_mismatch']; }
|
|
|
+
|
|
|
if ($msg_error) {
|
|
|
- require_once "resources/header.php";
|
|
|
- echo "<div align='center'>";
|
|
|
- echo "<table><tr><td>";
|
|
|
- echo $msg_error;
|
|
|
- echo "</td></tr></table>";
|
|
|
- echo "<br />\n";
|
|
|
- require_once "resources/persist_form.php";
|
|
|
- echo persistform($_POST);
|
|
|
- echo "</div>";
|
|
|
- require_once "resources/footer.php";
|
|
|
- return;
|
|
|
+ $_SESSION["message"] = $msg_error;
|
|
|
+ header("Location: usersupdate.php?id=".$user_uuid);
|
|
|
+ exit;
|
|
|
}
|
|
|
|
|
|
//check to see if user language is set
|
|
@@ -239,6 +226,7 @@ if (count($_POST) > 0 && $_POST["persistform"] != "1") {
|
|
|
$sql .= "'".$user_uuid."' ";
|
|
|
$sql .= ")";
|
|
|
$db->exec(check_sql($sql));
|
|
|
+ unset($sql);
|
|
|
}
|
|
|
else {
|
|
|
if (strlen($user_time_zone) == 0) {
|
|
@@ -257,6 +245,7 @@ if (count($_POST) > 0 && $_POST["persistform"] != "1") {
|
|
|
$sql .= "and user_setting_subcategory = 'time_zone' ";
|
|
|
$sql .= "and user_uuid = '".$user_uuid."' ";
|
|
|
$db->exec(check_sql($sql));
|
|
|
+ unset($sql);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -288,17 +277,9 @@ if (count($_POST) > 0 && $_POST["persistform"] != "1") {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- //if the template has not been assigned by the superadmin
|
|
|
- //if (strlen($_SESSION['domain']['template']['name']) == 0) {
|
|
|
- //set the session theme for the active user
|
|
|
- // if ($_SESSION["username"] == $username) {
|
|
|
- // $_SESSION['domain']['template']['name'] = $user_template_name;
|
|
|
- // }
|
|
|
- //}
|
|
|
-
|
|
|
//sql update
|
|
|
$sql = "update v_users set ";
|
|
|
- if (if_group("admin") && strlen($_POST["username"])> 0) {
|
|
|
+ if (strlen($username) > 0 && $username != $username_old) {
|
|
|
$sql .= "username = '$username', ";
|
|
|
}
|
|
|
if (strlen($password) > 0 && $confirm_password == $password) {
|
|
@@ -322,63 +303,57 @@ if (count($_POST) > 0 && $_POST["persistform"] != "1") {
|
|
|
else {
|
|
|
$sql .= "contact_uuid = '$contact_uuid' ";
|
|
|
}
|
|
|
- if (strlen($user_uuid)> 0) {
|
|
|
- $sql .= "where domain_uuid = '$domain_uuid' ";
|
|
|
- $sql .= "and user_uuid = '$user_uuid' ";
|
|
|
- }
|
|
|
- else {
|
|
|
- $sql .= "where domain_uuid = '$domain_uuid' ";
|
|
|
- $sql .= "and username = '$username' ";
|
|
|
- }
|
|
|
+ $sql .= "where domain_uuid = '$domain_uuid' ";
|
|
|
+ $sql .= "and user_uuid = '$user_uuid' ";
|
|
|
$db->exec(check_sql($sql));
|
|
|
|
|
|
- //update the user_status
|
|
|
- $fp = event_socket_create($_SESSION['event_socket_ip_address'], $_SESSION['event_socket_port'], $_SESSION['event_socket_password']);
|
|
|
- $switch_cmd .= "callcenter_config agent set status ".$username."@".$_SESSION['domain_name']." '".$user_status."'";
|
|
|
- $switch_result = event_socket_request($fp, 'api '.$switch_cmd);
|
|
|
|
|
|
- //update the user state
|
|
|
- $cmd = "api callcenter_config agent set state ".$username."@".$_SESSION['domain_name']." Waiting";
|
|
|
- $response = event_socket_request($fp, $cmd);
|
|
|
+ // if call center installed
|
|
|
+ if (file_exists($_SERVER['DOCUMENT_ROOT'].PROJECT_PATH."/app/call_center/app_config.php")) {
|
|
|
+
|
|
|
+ // update agent and tiers tables
|
|
|
+ $sql = "update v_call_center_agents set agent_name = '".$username."' where domain_uuid = '".$domain_uuid."' and agent_name = '".$username_old."' ";
|
|
|
+ $db->exec(check_sql($sql));
|
|
|
+ unset($sql);
|
|
|
+
|
|
|
+ $sql = "update v_call_center_tiers set agent_name = '".$username."' where domain_uuid = '".$domain_uuid."' and agent_name = '".$username_old."' ";
|
|
|
+ $db->exec(check_sql($sql));
|
|
|
+ unset($sql);
|
|
|
+
|
|
|
+ //syncrhonize the configuration
|
|
|
+ save_call_center_xml();
|
|
|
+
|
|
|
+ //update the user_status
|
|
|
+ $fp = event_socket_create($_SESSION['event_socket_ip_address'], $_SESSION['event_socket_port'], $_SESSION['event_socket_password']);
|
|
|
+ $switch_cmd .= "callcenter_config agent set status ".$username."@".$_SESSION['domain_name']." '".$user_status."'";
|
|
|
+ $switch_result = event_socket_request($fp, 'api '.$switch_cmd);
|
|
|
|
|
|
- //clear the template so it will rebuild in case the template was changed
|
|
|
- //$_SESSION["template_content"] = '';
|
|
|
+ //update the user state
|
|
|
+ $cmd = "api callcenter_config agent set state ".$username."@".$_SESSION['domain_name']." Waiting";
|
|
|
+ $response = event_socket_request($fp, $cmd);
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
//redirect the browser
|
|
|
$_SESSION["message"] = $text['message-update'];
|
|
|
- if (if_group("admin") || if_group("superadmin")) {
|
|
|
- header("Location: usersupdate.php?id=".$user_uuid);
|
|
|
- }
|
|
|
- else {
|
|
|
- header("Location: usersupdate.php");
|
|
|
- }
|
|
|
+ header("Location: index.php");
|
|
|
return;
|
|
|
+
|
|
|
}
|
|
|
else {
|
|
|
+
|
|
|
$sql = "select * from v_users ";
|
|
|
//allow admin access
|
|
|
if (if_group("admin") || if_group("superadmin")) {
|
|
|
- if (strlen($user_uuid)> 0) {
|
|
|
- $sql .= "where domain_uuid = '$domain_uuid' ";
|
|
|
- $sql .= "and user_uuid = '$user_uuid' ";
|
|
|
- }
|
|
|
- else {
|
|
|
- $sql .= "where domain_uuid = '$domain_uuid' ";
|
|
|
- $sql .= "and username = '$username' ";
|
|
|
- }
|
|
|
- }
|
|
|
- else {
|
|
|
$sql .= "where domain_uuid = '$domain_uuid' ";
|
|
|
- $sql .= "and username = '$username' ";
|
|
|
+ $sql .= "and user_uuid = '$user_uuid' ";
|
|
|
}
|
|
|
$prep_statement = $db->prepare(check_sql($sql));
|
|
|
$prep_statement->execute();
|
|
|
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
|
|
|
foreach ($result as &$row) {
|
|
|
$user_uuid = $row["user_uuid"];
|
|
|
- if (if_group("admin")) {
|
|
|
- $username = $row["username"];
|
|
|
- }
|
|
|
+ $username = $row["username"];
|
|
|
$password = $row["password"];
|
|
|
$api_key = $row["api_key"];
|
|
|
$user_enabled = $row["user_enabled"];
|
|
@@ -389,6 +364,7 @@ else {
|
|
|
//get the groups the user is a member of
|
|
|
//group_members function defined in config.php
|
|
|
$group_members = group_members($db, $user_uuid);
|
|
|
+
|
|
|
}
|
|
|
|
|
|
//include the header
|
|
@@ -427,7 +403,14 @@ else {
|
|
|
|
|
|
echo " <tr>";
|
|
|
echo " <td width='30%' class='vncellreq'>".$text['label-username'].":</td>";
|
|
|
- echo " <td width='70%' class='vtable'>$username</td>";
|
|
|
+ echo " <td width='70%' class='vtable'>";
|
|
|
+ if (if_group("admin") || if_group("superadmin")) {
|
|
|
+ echo " <input type='txt' autocomplete='off' class='formfld' name='username' value='".$username."'>";
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ echo " ".$username;
|
|
|
+ }
|
|
|
+ echo " </td>";
|
|
|
echo " </tr>";
|
|
|
|
|
|
echo " <tr>";
|
|
@@ -463,6 +446,7 @@ else {
|
|
|
}
|
|
|
echo " </td>\n";
|
|
|
echo "</tr>\n";
|
|
|
+ $assigned_groups[] = $field['group_name'];
|
|
|
}
|
|
|
}
|
|
|
echo "</table>\n";
|
|
@@ -476,13 +460,8 @@ else {
|
|
|
echo "<option value=\"\"></option>\n";
|
|
|
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
|
|
|
foreach($result as $field) {
|
|
|
- if ($field['group_name'] == "superadmin") {
|
|
|
- //only show the superadmin group to other users in the superadmin group
|
|
|
- if (if_group("superadmin")) {
|
|
|
- echo "<option value='".$field['group_name']."'>".$field['group_name']."</option>\n";
|
|
|
- }
|
|
|
- }
|
|
|
- else {
|
|
|
+ if ($field['group_name'] == "superadmin" && !if_group("superadmin")) { continue; } //only show the superadmin group to other users in the superadmin group
|
|
|
+ if (!in_array($field["group_name"], $assigned_groups)) {
|
|
|
echo "<option value='".$field['group_name']."'>".$field['group_name']."</option>\n";
|
|
|
}
|
|
|
}
|
|
@@ -592,40 +571,6 @@ else {
|
|
|
echo " </tr>\n";
|
|
|
}
|
|
|
|
|
|
- //if the template has not been assigned by the superadmin
|
|
|
- /*
|
|
|
- if (strlen($_SESSION['domain']['template']['name']) == 0) {
|
|
|
- echo " <tr>\n";
|
|
|
- echo " <td width='20%' class=\"vncell\">\n";
|
|
|
- echo " Template: \n";
|
|
|
- echo " </td>\n";
|
|
|
- echo " <td class=\"vtable\">\n";
|
|
|
- echo " <select id='user_template_name' name='user_template_name' class='formfld' style=''>\n";
|
|
|
- echo " <option value=''></option>\n";
|
|
|
- $theme_dir = $_SERVER["DOCUMENT_ROOT"].PROJECT_PATH.'/themes';
|
|
|
- if ($handle = opendir($_SERVER["DOCUMENT_ROOT"].PROJECT_PATH.'/themes')) {
|
|
|
- while (false !== ($dir_name = readdir($handle))) {
|
|
|
- if ($dir_name != "." && $dir_name != ".." && $dir_name != ".svn" && is_dir($theme_dir.'/'.$dir_name)) {
|
|
|
- $dir_label = str_replace('_', ' ', $dir_name);
|
|
|
- $dir_label = str_replace('-', ' ', $dir_label);
|
|
|
- if ($dir_name == $user_settings['domain']['template']['name']) {
|
|
|
- echo " <option value='$dir_name' selected='selected'>$dir_label</option>\n";
|
|
|
- }
|
|
|
- else {
|
|
|
- echo " <option value='$dir_name'>$dir_label</option>\n";
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- closedir($handle);
|
|
|
- }
|
|
|
- echo " </select>\n";
|
|
|
- echo " <br />\n";
|
|
|
- echo " Select a template to set as the default and then press save.<br />\n";
|
|
|
- echo " </td>\n";
|
|
|
- echo " </tr>\n";
|
|
|
- }
|
|
|
- */
|
|
|
-
|
|
|
echo " <tr>\n";
|
|
|
echo " <td width='20%' class=\"vncell\">\n";
|
|
|
echo " ".$text['label-user_language'].": \n";
|
|
@@ -726,7 +671,7 @@ else {
|
|
|
echo " <tr>";
|
|
|
echo " <td colspan='2' align='right'>";
|
|
|
echo " <input type='hidden' name='id' value=\"$user_uuid\">";
|
|
|
- echo " <input type='hidden' name='username' value=\"$username\">";
|
|
|
+ echo " <input type='hidden' name='username_old' value=\"$username\">";
|
|
|
echo " <input type='submit' name='submit' class='btn' value='".$text['button-save']."'>";
|
|
|
echo " </td>";
|
|
|
echo " </tr>";
|