LICENSE: AGPLv2 # # This script sends an email to an agent with a link that will log them # into their vicidial account when clicked. # # changes: # 200324-1543 - Initial Build # 220228-1055 - Added allow_web_debug system setting # $version = '2.14-2'; $build = '220228-1055'; require("dbconnect_mysqli.php"); require("functions.php"); $PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; $PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; $PHP_SELF=$_SERVER['PHP_SELF']; $PHP_SELF = preg_replace('/\.php.*/i','.php',$PHP_SELF); $ip = getenv("REMOTE_ADDR"); $SQLdate = date("Y-m-d H:i:s"); $DB=0; $preview=""; $agent_id=""; if (isset($_GET["DB"])) {$DB=$_GET["DB"];} elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} if (isset($_GET["preview"])) {$preview=$_GET["preview"];} elseif (isset($_POST["preview"])) {$preview=$_POST["preview"];} if (isset($_GET["agent_id"])) {$agent_id=$_GET["agent_id"];} elseif (isset($_POST["agent_id"])) {$agent_id=$_POST["agent_id"];} $DB = preg_replace('/[^0-9]/','',$DB); if ( $preview == "" ) { $preview == 1; } ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### $sys_settings_stmt = "SELECT use_non_latin,outbound_autodial_active,sounds_central_control_active,enable_languages,language_method,admin_screen_colors,report_default_format,allow_manage_active_lists,user_account_emails,pass_hash_enabled,allow_web_debug FROM system_settings;"; $sys_settings_rslt=mysql_to_mysqli($sys_settings_stmt, $link); #if ($DB) {echo "$sys_settings_stmt\n";} $num_rows = mysqli_num_rows($sys_settings_rslt); if ($num_rows > 0) { $sys_settings_row=mysqli_fetch_row($sys_settings_rslt); $non_latin = $sys_settings_row[0]; $SSoutbound_autodial_active = $sys_settings_row[1]; $sounds_central_control_active = $sys_settings_row[2]; $SSenable_languages = $sys_settings_row[3]; $SSlanguage_method = $sys_settings_row[4]; $SSadmin_screen_colors = $sys_settings_row[5]; $SSreport_default_format = $sys_settings_row[6]; $SSallow_manage_active_lists = $sys_settings_row[7]; $user_account_emails = $sys_settings_row[8]; $pass_hash_enabled = $sys_settings_row[9]; $SSallow_web_debug = $sys_settings_row[10]; } else { # there is something really weird if there are no system settings exit; } if ($SSallow_web_debug < 1) {$DB=0;} ##### END SETTINGS LOOKUP ##### ########################################### $preview = preg_replace('/[^-_0-9a-zA-Z]/','',$preview); $agent_id = preg_replace('/[^-_0-9a-zA-Z]/','',$agent_id); if ($non_latin < 1) { $PHP_AUTH_USER = preg_replace('/[^-_0-9a-zA-Z]/', '', $PHP_AUTH_USER); $PHP_AUTH_PW = preg_replace('/[^-_0-9a-zA-Z]/', '', $PHP_AUTH_PW); } else { $PHP_AUTH_USER = preg_replace('/[^-_0-9\p{L}]/u', '', $PHP_AUTH_USER); $PHP_AUTH_PW = preg_replace('/[^-_0-9\p{L}]/u', '', $PHP_AUTH_PW); } $stmt="SELECT selected_language from vicidial_users where user='$PHP_AUTH_USER';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_to_mysqli($stmt, $link); $sl_ct = mysqli_num_rows($rslt); if ($sl_ct > 0) { $row=mysqli_fetch_row($rslt); $VUselected_language = $row[0]; } $auth=0; $auth_message = user_authorization($PHP_AUTH_USER,$PHP_AUTH_PW,'',1,0); if ( ($auth_message == 'GOOD') or ($auth_message == '2FA') ) { $auth=1; if ($auth_message == '2FA') { header ("Content-type: text/html; charset=utf-8"); echo _QXZ("Your session is expired").". "._QXZ("Click here to log in").".\n"; exit; } } if ($auth > 0) { $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and user_level = 9 and modify_users='1';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_to_mysqli($stmt, $link); $row=mysqli_fetch_row($rslt); $users_auth=$row[0]; if ($users_auth < 1) { $VDdisplayMESSAGE = _QXZ("You are not allowed to modify users"); Header ("Content-type: text/html; charset=utf-8"); echo "$VDdisplayMESSAGE: |$PHP_AUTH_USER|$auth_message|\n"; exit; } } else { $VDdisplayMESSAGE = _QXZ("Login incorrect, please try again"); if ($auth_message == 'LOCK') { $VDdisplayMESSAGE = _QXZ("Too many login attempts, try again in 15 minutes"); Header ("Content-type: text/html; charset=utf-8"); echo "$VDdisplayMESSAGE: |$PHP_AUTH_USER|$auth_message|\n"; exit; } if ($auth_message == 'IPBLOCK') { $VDdisplayMESSAGE = _QXZ("Your IP Address is not allowed") . ": $ip"; Header ("Content-type: text/html; charset=utf-8"); echo "$VDdisplayMESSAGE: |$PHP_AUTH_USER|$auth_message|\n"; exit; } Header("WWW-Authenticate: Basic realm=\"CONTACT-CENTER-ADMIN\""); Header("HTTP/1.0 401 Unauthorized"); echo "$VDdisplayMESSAGE: |$PHP_AUTH_USER|$PHP_AUTH_PW|$auth_message|\n"; exit; } #### this feature is disabled in system settings if ( $user_account_emails == 'DISABLED') { $VDdisplayMESSAGE = _QXZ("ERROR: This feature is disabled. How did you event get here?"); Header ("Content-type: text/html; charset=utf-8"); echo "$VDdisplayMESSAGE: |$PHP_AUTH_USER|$auth_message|\n"; exit; } 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 $SSmenu_background='015B91'; $SSframe_background='D9E6FE'; $SSstd_row1_background='9BB9FB'; $SSstd_row2_background='B9CBFD'; $SSstd_row3_background='8EBCFD'; $SSstd_row4_background='B6D3FC'; $SSstd_row5_background='A3C3D6'; $SSalt_row1_background='BDFFBD'; $SSalt_row2_background='99FF99'; $SSalt_row3_background='CCFFCC'; if ($SSadmin_screen_colors != 'default') { $stmt = "SELECT menu_background,frame_background,std_row1_background,std_row2_background,std_row3_background,std_row4_background,std_row5_background,alt_row1_background,alt_row2_background,alt_row3_background,web_logo FROM vicidial_screen_colors where colors_id='$SSadmin_screen_colors';"; $rslt=mysql_to_mysqli($stmt, $link); if ($DB) {echo "$stmt\n";} $colors_ct = mysqli_num_rows($rslt); if ($colors_ct > 0) { $row=mysqli_fetch_row($rslt); $SSmenu_background = $row[0]; $SSframe_background = $row[1]; $SSstd_row1_background = $row[2]; $SSstd_row2_background = $row[3]; $SSstd_row3_background = $row[4]; $SSstd_row4_background = $row[5]; $SSstd_row5_background = $row[6]; $SSalt_row1_background = $row[7]; $SSalt_row2_background = $row[8]; $SSalt_row3_background = $row[9]; $SSweb_logo = $row[10]; } } $Mhead_color = $SSstd_row5_background; $Mmain_bgcolor = $SSmenu_background; $Mhead_color = $SSstd_row5_background; $selected_logo = "./images/vicidial_admin_web_logo.png"; $selected_small_logo = "./images/vicidial_admin_web_logo.png"; $logo_new=0; $logo_old=0; $logo_small_old=0; if (file_exists('./images/vicidial_admin_web_logo.png')) {$logo_new++;} if (file_exists('vicidial_admin_web_logo_small.gif')) {$logo_small_old++;} if (file_exists('vicidial_admin_web_logo.gif')) {$logo_old++;} if ($SSweb_logo=='default_new') { $selected_logo = "./images/vicidial_admin_web_logo.png"; $selected_small_logo = "./images/vicidial_admin_web_logo.png"; } if ( ($SSweb_logo=='default_old') and ($logo_old > 0) ) { $selected_logo = "./vicidial_admin_web_logo.gif"; $selected_small_logo = "./vicidial_admin_web_logo_small.gif"; } if ( ($SSweb_logo!='default_new') and ($SSweb_logo!='default_old') ) { if (file_exists("./images/vicidial_admin_web_logo$SSweb_logo")) { $selected_logo = "./images/vicidial_admin_web_logo$SSweb_logo"; $selected_small_logo = "./images/vicidial_admin_web_logo$SSweb_logo"; } } echo "\n"; echo "
\n"; echo "\n"; echo "\n"; echo "| \n"; echo "\n"; echo " "._QXZ("Send Agent Login As Email.")." \n"; echo "\n"; echo " | \n"; echo "\n"; echo " | |
\n"; if ($preview == 1) { ##### Preview the email if ( $error_msg == "" ) { echo _QXZ("Here is the email you are about to send to ")." $full_name: | ||
| \n";
echo _QXZ("TO").": $email "; echo _QXZ("FROM").": $from_email "; echo _QXZ("SUBJECT").": $subject "; echo _QXZ("BODY").": $body | ||
"; echo _QXZ("If you are positive you want to send out this email click "); echo ""; echo _QXZ("here"); echo ", "; echo _QXZ("otherwise you can click "); echo ""; echo _QXZ(" here "); echo ""; echo _QXZ("to go back."); echo " | "; } } else { if ( $error_msg == "" ) { ##### Send the email // To send HTML mail, the Content-type header must be set $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; // Create email headers $headers .= 'From: ' . $from_email . "\r\n" . 'Reply-To: ' . $from_email . "\r\n" . 'X-Mailer: PHP/' . phpversion(); $body = "" . $body . ""; $success = mail($email, $subject, $body, $headers ); if ($success) { $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERS', event_type='OTHER', record_id='$agent_id', event_code='USER EMAIL LINK SENT', event_sql=\"\", event_notes='$full_name ($email)';"; echo _QXZ("Your email to ") . "$full_name ($email)" . _QXZ(" has been sent successfully."); } else { $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERS', event_type='OTHER', record_id='$agent_id', event_code='USER EMAIL LINK FAILED', event_sql=\"\", event_notes='$full_name ($email)';"; $error_msg = error_get_last()['message']; echo "error_msg"; } ### LOG INSERTION Admin Log Table ### if ($DB) {echo "|$stmt|\n";} $rslt=mysql_to_mysqli($stmt, $link); } } echo "\n"; echo " | |