Portions created by the Initial Developer are Copyright (C) 2008-2012 the Initial Developer. All Rights Reserved. Contributor(s): Mark J Crane */ include "root.php"; require_once "resources/require.php"; require_once "resources/check_auth.php"; include "app_languages.php"; if (permission_exists("user_account_settings_view")) { //access granted } else { echo "access denied"; return; } //add multi-lingual support require_once "app_languages.php"; foreach($text as $key => $value) { $text[$key] = $value[$_SESSION['domain']['language']['code']]; } //set the username from v_users $username = $_SESSION["username"]; $user_uuid = $_SESSION["user_uuid"]; //required to be a superadmin to update an account that is a member of the superadmin group $superadmin_list = superadmin_list($db); if (if_superadmin($superadmin_list, $user_uuid)) { if (!if_group("superadmin")) { echo "access denied"; return; } } //get the user settings $sql = "select * from v_user_settings "; $sql .= "where user_uuid = '".$user_uuid."' "; $sql .= "and user_setting_enabled = 'true' "; $prep_statement = $db->prepare($sql); if ($prep_statement) { $prep_statement->execute(); $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); foreach($result as $row) { $name = $row['user_setting_name']; $category = $row['user_setting_category']; $subcategory = $row['user_setting_subcategory']; if (strlen($subcategory) == 0) { //$$category[$name] = $row['domain_setting_value']; $user_settings[$category][$name] = $row['user_setting_value']; } else { $user_settings[$category][$subcategory][$name] = $row['user_setting_value']; } } } if (count($_POST)>0 && $_POST["persistform"] != "1") { $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_time_zone = check_str($_POST["user_time_zone"]); $group_member = check_str($_POST["group_member"]); $msg = ''; //if (strlen($password) == 0) { $msg .= "Password cannot be blank.
\n"; } if ($password != $confirm_password) { $msg .= "".$text['confirm-password']."
\n"; } //if (strlen($user_time_zone) == 0) { $msg .= "Please provide an time zone.
\n"; } if (strlen($msg) > 0) { require_once "resources/header.php"; echo "
"; echo "
"; echo $msg; echo "
"; echo "
\n"; require_once "resources/persist_form.php"; echo persistform($_POST); echo "
"; require_once "resources/footer.php"; return; } //get the number of rows in v_user_settings $sql = "select count(*) as num_rows from v_user_settings "; $sql .= "where user_setting_category = 'domain' "; $sql .= "and user_setting_subcategory = 'time_zone' "; $sql .= "and user_uuid = '".$user_uuid."' "; $prep_statement = $db->prepare(check_sql($sql)); if ($prep_statement) { $prep_statement->execute(); $row = $prep_statement->fetch(PDO::FETCH_ASSOC); if ($row['num_rows'] == 0) { $user_setting_uuid = uuid(); $sql = "insert into v_user_settings "; $sql .= "("; $sql .= "domain_uuid, "; $sql .= "user_setting_uuid, "; $sql .= "user_setting_category, "; $sql .= "user_setting_subcategory, "; $sql .= "user_setting_name, "; $sql .= "user_setting_value, "; $sql .= "user_setting_enabled, "; $sql .= "user_uuid "; $sql .= ") "; $sql .= "values "; $sql .= "("; $sql .= "'".$_SESSION["domain_uuid"]."', "; $sql .= "'".$user_setting_uuid."', "; $sql .= "'domain', "; $sql .= "'time_zone', "; $sql .= "'name', "; $sql .= "'".$user_time_zone."', "; $sql .= "'true', "; $sql .= "'".$user_uuid."' "; $sql .= ")"; $db->exec(check_sql($sql)); } else { if (strlen($user_time_zone) == 0) { $sql = "delete from v_user_settings "; $sql .= "where user_setting_category = 'domain' "; $sql .= "and user_setting_subcategory = 'time_zone' "; $sql .= "and user_uuid = '".$user_uuid."' "; $db->exec(check_sql($sql)); unset($sql); } else { $sql = "update v_user_settings set "; $sql .= "user_setting_value = '".$user_time_zone."', "; $sql .= "user_setting_enabled = 'true' "; $sql .= "where user_setting_category = 'domain' "; $sql .= "and user_setting_subcategory = 'time_zone' "; $sql .= "and user_uuid = '".$user_uuid."' "; $db->exec(check_sql($sql)); } } } //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 // $_SESSION['domain']['template']['name'] = $user_template_name; //} //sql update $sql = "update v_users set "; if (strlen($password) > 0 && $confirm_password == $password) { //salt used with the password to create a one way hash $salt = generate_password('20', '4'); //set the password $sql .= "password = '".md5($salt.$password)."', "; $sql .= "salt = '".$salt."', "; } $sql .= "user_status = '$user_status' "; $sql .= "where domain_uuid = '$domain_uuid' "; $sql .= "and user_uuid = '$user_uuid' "; if (permission_exists("user_account_settings_edit")) { $count = $db->exec(check_sql($sql)); } //if call center app is installed then update the user_status if (is_dir($_SERVER["DOCUMENT_ROOT"].PROJECT_PATH.'/app/call_center')) { //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); } //clear the template so it will rebuild in case the template was changed //$_SESSION["template_content"] = ''; //redirect the browser require_once "resources/header.php"; echo "\n"; echo "
".$text['confirm-update']."
"; require_once "resources/footer.php"; return; } else { $sql = "select * from v_users "; $sql .= "where domain_uuid = '$domain_uuid' "; $sql .= "and user_uuid = '$user_uuid' "; $sql .= "and user_enabled = 'true' "; $prep_statement = $db->prepare(check_sql($sql)); $prep_statement->execute(); $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); foreach ($result as $row) { //$password = $row["password"]; $user_status = $row["user_status"]; break; //limit to 1 row } //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 require_once "resources/header.php"; //show the content $table_width ='width="100%"'; echo "
"; echo "
"; echo "\n"; echo "\n"; echo ""; echo " "; echo "
\n"; echo ""; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "
".$text['title']."\n"; echo " "; echo " "; echo "
\n"; echo " ".$text['description']." \n"; echo "
\n"; echo "
\n"; echo ""; echo "\n"; echo " \n"; echo "\n"; echo " "; echo " "; echo " "; echo " "; echo " "; echo " "; echo " "; echo " "; echo " "; echo " "; echo " "; echo " "; echo " "; echo " "; echo "
".$text['table-title']."
".$text['label-username'].":$username
".$text['label-password'].":
".$text['label-confirm-password'].":
"; echo "
"; echo "
"; echo ""; echo " \n"; echo " \n"; echo " \n"; if ($_SESSION['user_status_display'] == "false") { //hide the user_status when it is set to false } else { echo " \n"; echo " \n"; echo " \n"; echo " \n"; } //if the template has not been assigned by the superadmin /* if (strlen($_SESSION['domain']['template']['name']) == 0) { echo " \n"; echo " \n"; echo " \n"; echo " \n"; } */ echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo "
".$text['table2-title']."
\n"; echo " ".$text['label-status'].":\n"; echo " \n"; echo " \n"; echo "
\n"; echo " ".$text['description-status']."
\n"; echo "
\n"; echo " Template: \n"; echo " \n"; echo " \n"; echo "
\n"; echo " Select a template to set as the default and then press save.
\n"; echo "
\n"; echo " ".$text['label-time'].": \n"; echo " \n"; echo " \n"; echo "
\n"; echo " ".$text['description-timezone']."
\n"; echo "
"; echo "
"; echo "
\n"; echo ""; echo " "; echo " "; echo " "; echo "
"; echo " "; echo "
"; echo "
"; echo "
"; echo "
"; //include the footer require_once "resources/footer.php"; ?>