diff --git a/UPGRADE b/UPGRADE index 602c334a..41e1f6e6 100644 --- a/UPGRADE +++ b/UPGRADE @@ -308,6 +308,10 @@ OTHER CHANGES: 67. Changed the example iax.conf and sip.conf to default to context=trunkinbound to prevent unauthenticated calls on insecure phone accounts +68. Added password strength grading for users, phones and servers. Added ability + to force a user password change on the next admin login. Added password + default settings to System Settings and added a first login setup screen + diff --git a/extras/MySQL_AST_CREATE_tables.sql b/extras/MySQL_AST_CREATE_tables.sql index bdada7f9..808dca12 100644 --- a/extras/MySQL_AST_CREATE_tables.sql +++ b/extras/MySQL_AST_CREATE_tables.sql @@ -558,7 +558,8 @@ agent_call_log_view_override ENUM('DISABLED','Y','N') default 'DISABLED', callcard_admin ENUM('1','0') default '0', agent_choose_blended ENUM('0','1') default '1', realtime_block_user_info ENUM('0','1') default '0', -custom_fields_modify ENUM('0','1') default '0' +custom_fields_modify ENUM('0','1') default '0', +force_change_password ENUM('Y','N') default 'N' ); CREATE UNIQUE INDEX user ON vicidial_users (user); @@ -1323,7 +1324,12 @@ label_email VARCHAR(40) default '', label_comments VARCHAR(40) default '', slave_db_server VARCHAR(50) default '', reports_use_slave_db VARCHAR(2000) default '', -webphone_systemkey VARCHAR(100) default '' +webphone_systemkey VARCHAR(100) default '', +first_login_trigger ENUM('Y','N') default 'N', +hosted_settings VARCHAR(100) default '', +default_phone_registration_password VARCHAR(20) default 'test', +default_phone_login_password VARCHAR(20) default 'test', +default_server_password VARCHAR(20) default 'test' ); CREATE TABLE vicidial_campaigns_list_mix ( @@ -2241,7 +2247,7 @@ INSERT INTO vicidial_inbound_groups(group_id,group_name,group_color,active,queue INSERT INTO vicidial_lists SET list_id='999',list_name='Default inbound list',campaign_id='TESTCAMP',active='N'; INSERT INTO vicidial_lists SET list_id='998',list_name='Default Manual list',campaign_id='TESTCAMP',active='N'; -INSERT INTO system_settings (version,install_date) values('2.4b0.5', CURDATE()); +INSERT INTO system_settings (version,install_date,first_login_trigger) values('2.4b0.5', CURDATE(), 'Y'); INSERT INTO vicidial_status_categories (vsc_id,vsc_name) values('UNDEFINED','Default Category'); @@ -2356,7 +2362,7 @@ ALTER TABLE vicidial_agent_log_archive MODIFY agent_log_id INT(9) UNSIGNED NOT N CREATE TABLE vicidial_carrier_log_archive LIKE vicidial_carrier_log; -UPDATE system_settings SET db_schema_version='1243',db_schema_update_date=NOW(); +UPDATE system_settings SET db_schema_version='1244',db_schema_update_date=NOW(); GRANT RELOAD ON *.* TO cron@'%'; GRANT RELOAD ON *.* TO cron@localhost; diff --git a/extras/upgrade_2.4.sql b/extras/upgrade_2.4.sql index ab9c5a40..138c7f3c 100644 --- a/extras/upgrade_2.4.sql +++ b/extras/upgrade_2.4.sql @@ -531,3 +531,13 @@ ALTER TABLE vicidial_user_groups ADD webphone_systemkey_override VARCHAR(100) de ALTER TABLE vicidial_user_groups ADD webphone_dialpad_override ENUM('DISABLED','Y','N','TOGGLE') default 'DISABLED'; UPDATE system_settings SET db_schema_version='1243',db_schema_update_date=NOW(); + +ALTER TABLE vicidial_users ADD force_change_password ENUM('Y','N') default 'N'; + +ALTER TABLE system_settings ADD first_login_trigger ENUM('Y','N') default 'N'; +ALTER TABLE system_settings ADD hosted_settings VARCHAR(100) default ''; +ALTER TABLE system_settings ADD default_phone_registration_password VARCHAR(20) default 'test'; +ALTER TABLE system_settings ADD default_phone_login_password VARCHAR(20) default 'test'; +ALTER TABLE system_settings ADD default_server_password VARCHAR(20) default 'test'; + +UPDATE system_settings SET db_schema_version='1244',db_schema_update_date=NOW(); diff --git a/translations/raw_translation_files/TO_BE_TRANSLATED_2.4.txt b/translations/raw_translation_files/TO_BE_TRANSLATED_2.4.txt index 434b247e..1fd43f9b 100644 --- a/translations/raw_translation_files/TO_BE_TRANSLATED_2.4.txt +++ b/translations/raw_translation_files/TO_BE_TRANSLATED_2.4.txt @@ -389,6 +389,50 @@ Webphone Dialpad|| This setting allows you to activate or deactivate the dialpad for this webphone. Default is Y for enabled. TOGGLE will allow the user to view and hide the dialpad by clicking a link. This feature is not available on all webphone versions|| Webphone System Key|| If your system or provider requires it, this is where the System Key for the webphone should be entered in. Default is empty|| + Strength|| +A strong registration password should be at least 8 characters in length and have lower case and upper case letters as well as at least one number|| +A strong conf file secret should be at least 8 characters in length and have lower case and upper case letters as well as at least one number|| +A strong user password should be at least 8 characters in length and have lower case and upper case letters as well as at least one number|| +Force Change Password|| +If this option is set to Y then the user will be prompted to change their password the next time they log in to the administration webpage. Default is N|| +First Login Trigger|| +This setting allows for the initial configuration of the server screen to be shown to the administrator when they first log into the system|| +Default Phone Registration Password|| +This is the default registration password used when new phones are added to the system. Default is test|| +Default Phone Login Password|| +This is the default phone web login password used when new phones are added to the system. Default is test|| +Default Server Password|| +This is the default server password used when new servers are added to the system. Default is test|| +CHANGE PASSWORD|| +INITIAL INSTALL WELCOME|| +COPYRIGHT TRADEMARK LICENSE|| +You are required to change your password before you can continue on to Administration. A strong password has both lower case and upper case letters as well as at least one number. Your password must be from 2 to 20 characters in length and cannot contain any characters that are not letters or numbers|| +Be sure that this password is something that you can remember, because as soon as you make this change you will be prompted to enter your new password to log back in to Administration|| +Password has not been changed, please try again|| +New Password|| +Password has been updated, you may now continue|| +Passwords have been updated, you may now continue on into Administration|| +You may want to start by reading the ViciDial Manager Manual available at|| +there is a free version available|| +Be sure that this password is something that you can remember, because as soon as you complete this initial setup screen you will be prompted to enter your new password in again to log back in to Administration|| +The next three default passwords are defined in the System Settings section, and you can change them after you define them here. It is a good idea to make these passwords strong so that no one can hack into your phone accounts and place phone calls without you knowing. The default registration password used when new phones are added to the system as the SIP or IAX VOIP phone password. The default phone web login password used when new phones are added to the system, as the phone password that an agent would use in the ViciDial Agent Interface. The default server password used when new servers are added to the system for servers to communicate with each other|| +Passwords have been updated, you may now continue on into Administration|| +You may want to start by reading the ViciDial Manager Manual available at|| +there is a free version available|| +Welcome to ViciDial|| +initial setup screen|| +copyright, trademark and license page|| +The ViciDial Call Center Suite is maintained by the|| +is a registered trademark of the|| +Here is our|| +trademark use policy|| +The ViciDial Call Center Suite is released under the|| +open source license|| +The ViciDial Call Center Suite software is available for download, and for use, free of cost. You can download the easy to install|| +ViciBox CD ISO version|| +or only the|| +source code|| +Continue on to the Initial Setup|| AST_VICIDIAL_ingrouplist.php diff --git a/www/agc/images/Thumbs.db b/www/agc/images/Thumbs.db deleted file mode 100644 index 0249725e..00000000 Binary files a/www/agc/images/Thumbs.db and /dev/null differ diff --git a/www/vicidial/admin.php b/www/vicidial/admin.php index 916fae6f..2c35be82 100644 --- a/www/vicidial/admin.php +++ b/www/vicidial/admin.php @@ -1443,6 +1443,16 @@ if (isset($_GET["webphone_systemkey_override"])) {$webphone_systemkey_override elseif (isset($_POST["webphone_systemkey_override"])) {$webphone_systemkey_override=$_POST["webphone_systemkey_override"];} if (isset($_GET["webphone_dialpad_override"])) {$webphone_dialpad_override=$_GET["webphone_dialpad_override"];} elseif (isset($_POST["webphone_dialpad_override"])) {$webphone_dialpad_override=$_POST["webphone_dialpad_override"];} +if (isset($_GET["force_change_password"])) {$force_change_password=$_GET["force_change_password"];} + elseif (isset($_POST["force_change_password"])) {$force_change_password=$_POST["force_change_password"];} +if (isset($_GET["first_login_trigger"])) {$first_login_trigger=$_GET["first_login_trigger"];} + elseif (isset($_POST["first_login_trigger"])) {$first_login_trigger=$_POST["first_login_trigger"];} +if (isset($_GET["default_phone_registration_password"])) {$default_phone_registration_password=$_GET["default_phone_registration_password"];} + elseif (isset($_POST["default_phone_registration_password"])) {$default_phone_registration_password=$_POST["default_phone_registration_password"];} +if (isset($_GET["default_phone_login_password"])) {$default_phone_login_password=$_GET["default_phone_login_password"];} + elseif (isset($_POST["default_phone_login_password"])) {$default_phone_login_password=$_POST["default_phone_login_password"];} +if (isset($_GET["default_server_password"])) {$default_server_password=$_GET["default_server_password"];} + elseif (isset($_POST["default_server_password"])) {$default_server_password=$_POST["default_server_password"];} if (isset($script_id)) {$script_id= strtoupper($script_id);} @@ -1456,28 +1466,34 @@ if (strlen($dial_status) > 0) ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,enable_queuemetrics_logging,enable_vtiger_integration,qc_features_active,outbound_autodial_active,sounds_central_control_active,enable_second_webform,user_territories_active,custom_fields_enabled,admin_web_directory,webphone_url FROM system_settings;"; +$stmt = "SELECT use_non_latin,enable_queuemetrics_logging,enable_vtiger_integration,qc_features_active,outbound_autodial_active,sounds_central_control_active,enable_second_webform,user_territories_active,custom_fields_enabled,admin_web_directory,webphone_url,first_login_trigger,hosted_settings,default_phone_registration_password,default_phone_login_password,default_server_password FROM system_settings;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); - $non_latin = $row[0]; - $SSenable_queuemetrics_logging = $row[1]; - $SSenable_vtiger_integration = $row[2]; - $SSqc_features_active = $row[3]; - $SSoutbound_autodial_active = $row[4]; - $SSsounds_central_control_active = $row[5]; - $SSenable_second_webform = $row[6]; - $SSuser_territories_active = $row[7]; - $SScustom_fields_enabled = $row[8]; - $SSadmin_web_directory = $row[9]; - $SSwebphone_url = $row[10]; + $non_latin = $row[0]; + $SSenable_queuemetrics_logging = $row[1]; + $SSenable_vtiger_integration = $row[2]; + $SSqc_features_active = $row[3]; + $SSoutbound_autodial_active = $row[4]; + $SSsounds_central_control_active = $row[5]; + $SSenable_second_webform = $row[6]; + $SSuser_territories_active = $row[7]; + $SScustom_fields_enabled = $row[8]; + $SSadmin_web_directory = $row[9]; + $SSwebphone_url = $row[10]; + $SSfirst_login_trigger = $row[11]; + $SShosted_settings = $row[12]; + $SSdefault_phone_registration_password =$row[13]; + $SSdefault_phone_login_password = $row[14]; + $SSdefault_server_password = $row[15]; } ##### END SETTINGS LOOKUP ##### ########################################### + ###################################################################################################### ###################################################################################################### ####### Form variable filtering for security and data integrity @@ -1748,6 +1764,8 @@ if ($non_latin < 1) $hold_time_option_no_block = ereg_replace("[^NY]","",$hold_time_option_no_block); $wait_time_option_no_block = ereg_replace("[^NY]","",$wait_time_option_no_block); $preset_hide_number = ereg_replace("[^NY]","",$preset_hide_number); + $force_change_password = ereg_replace("[^NY]","",$force_change_password); + $first_login_trigger = ereg_replace("[^NY]","",$first_login_trigger); $qc_enabled = ereg_replace("[^0-9NY]","",$qc_enabled); $active = ereg_replace("[^0-9NY]","",$active); @@ -1993,6 +2011,9 @@ if ($non_latin < 1) $webphone_dialpad = ereg_replace("[^-_0-9a-zA-Z]","",$webphone_dialpad); $webphone_systemkey_override = ereg_replace("[^-_0-9a-zA-Z]","",$webphone_systemkey_override); $webphone_dialpad_override = ereg_replace("[^-_0-9a-zA-Z]","",$webphone_dialpad_override); + $default_phone_registration_password = ereg_replace("[^-_0-9a-zA-Z]","",$default_phone_registration_password); + $default_phone_login_password = ereg_replace("[^-_0-9a-zA-Z]","",$default_phone_login_password); + $default_server_password = ereg_replace("[^-_0-9a-zA-Z]","",$default_server_password); ### ALPHA-NUMERIC and underscore and dash and slash and dot $menu_prompt = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$menu_prompt); @@ -2513,11 +2534,12 @@ else # 100817-1243 - Added checking for reserved menu_id on creation of Call Menus # 100823-1501 - Added CallCard search as an available User Group report option # 100827-1535 - Added webphone options for dialpad and systemkey +# 100901-2055 - Added password strength grading, force password change, password default settings and first login screen # # make sure you have added a user to the vicidial_users MySQL table with at least user_level 8 to access this page the first time -$admin_version = '2.4-277'; -$build = '100827-1535'; +$admin_version = '2.4-278'; +$build = '100901-2055'; $STARTtime = date("U"); $SQLdate = date("Y-m-d H:i:s"); @@ -2620,7 +2642,7 @@ if ( ($auth > 0) or ($reports_auth > 0) ) { $office_no=strtoupper($PHP_AUTH_USER); $password=strtoupper($PHP_AUTH_PW); - $stmt="SELECT user_id,user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,shift_override_flag,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts,callcard_admin from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW';"; + $stmt="SELECT user_id,user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,shift_override_flag,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts,callcard_admin,force_change_password from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW';"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $LOGfull_name =$row[3]; @@ -2656,7 +2678,8 @@ if ( ($auth > 0) or ($reports_auth > 0) ) $LOGmanager_shift_enforcement_override=$row[61]; $LOGexport_reports =$row[64]; $LOGdelete_from_dnc =$row[65]; - $LOGcallcard_admin =$row[66]; + $LOGcallcard_admin =$row[70]; + $LOGforce_change_password =$row[71]; $stmt="SELECT allowed_campaigns,allowed_reports from vicidial_user_groups where user_group='$LOGuser_group';"; $rslt=mysql_query($stmt, $link); @@ -2680,6 +2703,29 @@ if ( ($auth > 0) or ($reports_auth > 0) ) fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|XXXX|$ip|$browser|$LOGfull_name|\n"); fclose($fp); } + + $first_login_link=0; + + if ($LOGforce_change_password=='Y') + { + $ADD=999997; + $reports_only_user=1; + } + if ($SSfirst_login_trigger=='Y') + { + + if ($ADD==999996) + {$reports_only_user=1;} + else + { + $ADD=999995; + $first_login_link=1; + } + } + if ($ADD==999995) + { + $reports_only_user=1; + } } else { @@ -2997,6 +3043,9 @@ if ($ADD==661) {$hh='users'; echo "SEARCH PHONES RESULTS";} if ($ADD==99999) {$hh='users'; echo "HELP";} if ($ADD==999999) {$hh='reports'; echo "REPORTS";} if ($ADD==999998) {$hh='admin'; echo "ADMIN";} +if ($ADD==999997) {$hh='reports'; echo "CHANGE PASSWORD";} +if ($ADD==999996) {$hh='reports'; echo "INITIAL INSTALL WELCOME";} +if ($ADD==999995) {$hh='reports'; echo "COPYRIGHT TRADEMARK LICENSE";} if ( ($ADD>9) && ($ADD < 99998) ) @@ -3520,7 +3569,12 @@ if ($ADD==99999)

- Password - This field is where you put the VICIDIAL users password. Must be at least 2 characters in length. + Password - This field is where you put the VICIDIAL users password. Must be at least 2 characters in length. A strong user password should be at least 8 characters in length and have lower case and upper case letters as well as at least one number. + +
+
+
+ Force Change Password - If this option is set to Y then the user will be prompted to change their password the next time they log in to the administration webpage. Default is N.
@@ -6006,7 +6060,7 @@ if ($ADD==99999)

- Registration Password - This is the secret, or password, for the phone in the iax or sip auto-generated conf file for this phone. Limit is 20 characters alphanumeric dash and underscore accepted. Default is test. Formerly called Conf File Secret. + Registration Password - This is the secret, or password, for the phone in the iax or sip auto-generated conf file for this phone. Limit is 20 characters alphanumeric dash and underscore accepted. Default is test. Formerly called Conf File Secret. A strong registration password should be at least 8 characters in length and have lower case and upper case letters as well as at least one number.
@@ -6480,7 +6534,7 @@ if ($ADD==99999)

- Conf File Secret - This is the secret, or password, for the server in the iax auto-generated conf file for this server on other servers. Limit is 20 characters alphanumeric dash and underscore accepted. Default is test. + Conf File Secret - This is the secret, or password, for the server in the iax auto-generated conf file for this server on other servers. Limit is 20 characters alphanumeric dash and underscore accepted. Default is test. A strong conf file secret should be at least 8 characters in length and have lower case and upper case letters as well as at least one number.
@@ -6881,6 +6935,26 @@ if ($ADD==99999)
Enable Custom List Fields - This setting enables the custom list fields feature that allows for custom data fields to be defined in the administration web interface on a per-list basis and then have those fields available in a FORM tab to the agent in the agent web interface. Default is 0 for disabled. +
+
+
+ First Login Trigger - This setting allows for the initial configuration of the server screen to be shown to the administrator when they first log into the system. + +
+
+
+ Default Phone Registration Password - This is the default registration password used when new phones are added to the system. Default is test. + +
+
+
+ Default Phone Login Password - This is the default phone web login password used when new phones are added to the system. Default is test. + +
+
+
+ Default Server Password - This is the default server password used when new servers are added to the system. Default is test. +

@@ -7414,7 +7488,9 @@ if ($ADD=="1") { echo "User Number: $NWB#vicidial_users-user$NWE\n"; } - echo "Password: $NWB#vicidial_users-pass$NWE\n"; + + echo "Password: $NWB#vicidial_users-pass$NWE     Strength: \n"; + echo "Full Name: $NWB#vicidial_users-full_name$NWE\n"; echo "User Level: $NWB#vicidial_users-user$NWE\n"; } - echo "Password: $NWB#vicidial_users-pass$NWE\n"; + + echo "Password: $NWB#vicidial_users-pass$NWE     Strength: \n"; + echo "Full Name: $NWB#vicidial_users-full_name$NWE\n"; if ($LOGuser_level==9) {$levelMAX=10;} @@ -8814,8 +8892,8 @@ if ($ADD==11111111111) echo "$servers_list"; echo "$NWB#phones-server_ip$NWE\n"; echo "Login: $NWB#phones-login$NWE\n"; - echo "Login Password: $NWB#phones-pass$NWE\n"; - echo "Registration Password: $NWB#phones-conf_secret$NWE\n"; + echo "Login Password: $NWB#phones-pass$NWE\n"; + echo "Registration Password: $NWB#phones-conf_secret$NWE     Strength: \n"; echo "Status: $NWB#phones-status$NWE\n"; echo "Active Account: $NWB#phones-active$NWE\n"; echo "Phone Type: $NWB#phones-phone_type$NWE\n"; @@ -9588,7 +9666,7 @@ if ($ADD=="2A") $stmt="UPDATE system_settings SET auto_user_add_value='$user';"; $rslt=mysql_query($stmt, $link); } - $stmt="INSERT INTO vicidial_users (user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five,voicemail_id,agent_call_log_view_override,callcard_admin,agent_choose_blended,realtime_block_user_info,custom_fields_modify) SELECT \"$user\",\"$pass\",\"$full_name\",user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five,voicemail_id,agent_call_log_view_override,callcard_admin,agent_choose_blended,realtime_block_user_info,custom_fields_modify from vicidial_users where user=\"$source_user_id\";"; + $stmt="INSERT INTO vicidial_users (user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five,voicemail_id,agent_call_log_view_override,callcard_admin,agent_choose_blended,realtime_block_user_info,custom_fields_modify,force_change_password) SELECT \"$user\",\"$pass\",\"$full_name\",user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five,voicemail_id,agent_call_log_view_override,callcard_admin,agent_choose_blended,realtime_block_user_info,custom_fields_modify,force_change_password from vicidial_users where user=\"$source_user_id\";"; $rslt=mysql_query($stmt, $link); $stmtA="INSERT INTO vicidial_inbound_group_agents (user,group_id,group_rank,group_weight,calls_today) SELECT \"$user\",group_id,group_rank,group_weight,\"0\" from vicidial_inbound_group_agents where user=\"$source_user_id\";"; @@ -11393,7 +11471,7 @@ if ($ADD==211111111111) { echo "
SERVER ADDED\n"; - $stmt="INSERT INTO servers (server_id,server_description,server_ip,active,asterisk_version) values('$server_id','$server_description','$server_ip','$active','$asterisk_version');"; + $stmt="INSERT INTO servers (server_id,server_description,server_ip,active,asterisk_version,conf_secret) values('$server_id','$server_description','$server_ip','$active','$asterisk_version','$SSdefault_server_password');"; $rslt=mysql_query($stmt, $link); $stmtA="UPDATE servers SET rebuild_conf_files='Y',rebuild_music_on_hold='Y',sounds_update='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; @@ -11936,7 +12014,7 @@ if ($ADD=="4A") } echo "
USER MODIFIED - ADMIN: $user\n"; - $stmt="UPDATE vicidial_users set pass='$pass',full_name='$full_name',user_level='$user_level',user_group='$user_group',phone_login='$phone_login',phone_pass='$phone_pass',delete_users='$delete_users',delete_user_groups='$delete_user_groups',delete_lists='$delete_lists',delete_campaigns='$delete_campaigns',delete_ingroups='$delete_ingroups',delete_remote_agents='$delete_remote_agents',load_leads='$load_leads',campaign_detail='$campaign_detail',ast_admin_access='$ast_admin_access',ast_delete_phones='$ast_delete_phones',delete_scripts='$delete_scripts',modify_leads='$modify_leads',hotkeys_active='$hotkeys_active',change_agent_campaign='$change_agent_campaign',agent_choose_ingroups='$agent_choose_ingroups',closer_campaigns='$groups_value',scheduled_callbacks='$scheduled_callbacks',agentonly_callbacks='$agentonly_callbacks',agentcall_manual='$agentcall_manual',vicidial_recording='$vicidial_recording',vicidial_transfers='$vicidial_transfers',delete_filters='$delete_filters',alter_agent_interface_options='$alter_agent_interface_options',closer_default_blended='$closer_default_blended',delete_call_times='$delete_call_times',modify_call_times='$modify_call_times',modify_users='$modify_users',modify_campaigns='$modify_campaigns',modify_lists='$modify_lists',modify_scripts='$modify_scripts',modify_filters='$modify_filters',modify_ingroups='$modify_ingroups',modify_usergroups='$modify_usergroups',modify_remoteagents='$modify_remoteagents',modify_servers='$modify_servers',view_reports='$view_reports',vicidial_recording_override='$vicidial_recording_override',alter_custdata_override='$alter_custdata_override',qc_enabled='$qc_enabled',qc_user_level='$qc_user_level',qc_pass='$qc_pass',qc_finish='$qc_finish',qc_commit='$qc_commit',add_timeclock_log='$add_timeclock_log',modify_timeclock_log='$modify_timeclock_log',delete_timeclock_log='$delete_timeclock_log',alter_custphone_override='$alter_custphone_override',vdc_agent_api_access='$vdc_agent_api_access',modify_inbound_dids='$modify_inbound_dids',delete_inbound_dids='$delete_inbound_dids',active='$active',download_lists='$download_lists',agent_shift_enforcement_override='$agent_shift_enforcement_override',manager_shift_enforcement_override='$manager_shift_enforcement_override',export_reports='$export_reports',delete_from_dnc='$delete_from_dnc',email='$email',user_code='$user_code',territory='$territory',allow_alerts='$allow_alerts',agent_choose_territories='$agent_choose_territories',custom_one='$custom_one',custom_two='$custom_two',custom_three='$custom_three',custom_four='$custom_four',custom_five='$custom_five',voicemail_id='$voicemail_id',agent_call_log_view_override='$agent_call_log_view_override',callcard_admin='$callcard_admin',agent_choose_blended='$agent_choose_blended',realtime_block_user_info='$realtime_block_user_info',custom_fields_modify='$custom_fields_modify' where user='$user';"; + $stmt="UPDATE vicidial_users set pass='$pass',full_name='$full_name',user_level='$user_level',user_group='$user_group',phone_login='$phone_login',phone_pass='$phone_pass',delete_users='$delete_users',delete_user_groups='$delete_user_groups',delete_lists='$delete_lists',delete_campaigns='$delete_campaigns',delete_ingroups='$delete_ingroups',delete_remote_agents='$delete_remote_agents',load_leads='$load_leads',campaign_detail='$campaign_detail',ast_admin_access='$ast_admin_access',ast_delete_phones='$ast_delete_phones',delete_scripts='$delete_scripts',modify_leads='$modify_leads',hotkeys_active='$hotkeys_active',change_agent_campaign='$change_agent_campaign',agent_choose_ingroups='$agent_choose_ingroups',closer_campaigns='$groups_value',scheduled_callbacks='$scheduled_callbacks',agentonly_callbacks='$agentonly_callbacks',agentcall_manual='$agentcall_manual',vicidial_recording='$vicidial_recording',vicidial_transfers='$vicidial_transfers',delete_filters='$delete_filters',alter_agent_interface_options='$alter_agent_interface_options',closer_default_blended='$closer_default_blended',delete_call_times='$delete_call_times',modify_call_times='$modify_call_times',modify_users='$modify_users',modify_campaigns='$modify_campaigns',modify_lists='$modify_lists',modify_scripts='$modify_scripts',modify_filters='$modify_filters',modify_ingroups='$modify_ingroups',modify_usergroups='$modify_usergroups',modify_remoteagents='$modify_remoteagents',modify_servers='$modify_servers',view_reports='$view_reports',vicidial_recording_override='$vicidial_recording_override',alter_custdata_override='$alter_custdata_override',qc_enabled='$qc_enabled',qc_user_level='$qc_user_level',qc_pass='$qc_pass',qc_finish='$qc_finish',qc_commit='$qc_commit',add_timeclock_log='$add_timeclock_log',modify_timeclock_log='$modify_timeclock_log',delete_timeclock_log='$delete_timeclock_log',alter_custphone_override='$alter_custphone_override',vdc_agent_api_access='$vdc_agent_api_access',modify_inbound_dids='$modify_inbound_dids',delete_inbound_dids='$delete_inbound_dids',active='$active',download_lists='$download_lists',agent_shift_enforcement_override='$agent_shift_enforcement_override',manager_shift_enforcement_override='$manager_shift_enforcement_override',export_reports='$export_reports',delete_from_dnc='$delete_from_dnc',email='$email',user_code='$user_code',territory='$territory',allow_alerts='$allow_alerts',agent_choose_territories='$agent_choose_territories',custom_one='$custom_one',custom_two='$custom_two',custom_three='$custom_three',custom_four='$custom_four',custom_five='$custom_five',voicemail_id='$voicemail_id',agent_call_log_view_override='$agent_call_log_view_override',callcard_admin='$callcard_admin',agent_choose_blended='$agent_choose_blended',realtime_block_user_info='$realtime_block_user_info',custom_fields_modify='$custom_fields_modify',force_change_password='$force_change_password' where user='$user';"; $rslt=mysql_query($stmt, $link); ### LOG INSERTION Admin Log Table ### @@ -15024,7 +15102,7 @@ if ($ADD==411111111111111) } $reports_use_slave_db = preg_replace("/,$/","",$new_field_value); - $stmt="UPDATE system_settings set use_non_latin='$use_non_latin',webroot_writable='$webroot_writable',enable_queuemetrics_logging='$enable_queuemetrics_logging',queuemetrics_server_ip='$queuemetrics_server_ip',queuemetrics_dbname='$queuemetrics_dbname',queuemetrics_login='$queuemetrics_login',queuemetrics_pass='$queuemetrics_pass',queuemetrics_url='$queuemetrics_url',queuemetrics_log_id='$queuemetrics_log_id',queuemetrics_eq_prepend='$queuemetrics_eq_prepend',vicidial_agent_disable='$vicidial_agent_disable',allow_sipsak_messages='$allow_sipsak_messages',admin_home_url='$admin_home_url',enable_agc_xfer_log='$enable_agc_xfer_log',timeclock_end_of_day='$timeclock_end_of_day',vdc_header_date_format='$vdc_header_date_format',vdc_customer_date_format='$vdc_customer_date_format',vdc_header_phone_format='$vdc_header_phone_format',vdc_agent_api_active='$vdc_agent_api_active',enable_vtiger_integration='$enable_vtiger_integration',vtiger_server_ip='$vtiger_server_ip',vtiger_dbname='$vtiger_dbname',vtiger_login='$vtiger_login',vtiger_pass='$vtiger_pass',vtiger_url='$vtiger_url',qc_features_active='$qc_features_active',outbound_autodial_active='$outbound_autodial_active',outbound_calls_per_second='$outbound_calls_per_second',enable_tts_integration='$enable_tts_integration',agentonly_callback_campaign_lock='$agentonly_callback_campaign_lock',sounds_central_control_active='$sounds_central_control_active',sounds_web_server='$sounds_web_server',sounds_web_directory='$sounds_web_directory',active_voicemail_server='$active_voicemail_server',auto_dial_limit='$auto_dial_limit',user_territories_active='$user_territories_active',allow_custom_dialplan='$allow_custom_dialplan',enable_second_webform='$enable_second_webform',default_webphone='$default_webphone',default_external_server_ip='$default_external_server_ip',webphone_url='" . mysql_real_escape_string($webphone_url) . "',enable_agc_dispo_log='$enable_agc_dispo_log',custom_dialplan_entry='$custom_dialplan_entry',queuemetrics_loginout='$queuemetrics_loginout',callcard_enabled='$callcard_enabled',queuemetrics_callstatus='$queuemetrics_callstatus',default_codecs='$default_codecs',admin_web_directory='$admin_web_directory',label_title='$label_title',label_first_name='$label_first_name',label_middle_initial='$label_middle_initial',label_last_name='$label_last_name',label_address1='$label_address1',label_address2='$label_address2',label_address3='$label_address3',label_city='$label_city',label_state='$label_state',label_province='$label_province',label_postal_code='$label_postal_code',label_vendor_lead_code='$label_vendor_lead_code',label_gender='$label_gender',label_phone_number='$label_phone_number',label_phone_code='$label_phone_code',label_alt_phone='$label_alt_phone',label_security_phrase='$label_security_phrase',label_email='$label_email',label_comments='$label_comments',custom_fields_enabled='$custom_fields_enabled',slave_db_server='$slave_db_server',reports_use_slave_db='$reports_use_slave_db',webphone_systemkey='$webphone_systemkey';"; + $stmt="UPDATE system_settings set use_non_latin='$use_non_latin',webroot_writable='$webroot_writable',enable_queuemetrics_logging='$enable_queuemetrics_logging',queuemetrics_server_ip='$queuemetrics_server_ip',queuemetrics_dbname='$queuemetrics_dbname',queuemetrics_login='$queuemetrics_login',queuemetrics_pass='$queuemetrics_pass',queuemetrics_url='$queuemetrics_url',queuemetrics_log_id='$queuemetrics_log_id',queuemetrics_eq_prepend='$queuemetrics_eq_prepend',vicidial_agent_disable='$vicidial_agent_disable',allow_sipsak_messages='$allow_sipsak_messages',admin_home_url='$admin_home_url',enable_agc_xfer_log='$enable_agc_xfer_log',timeclock_end_of_day='$timeclock_end_of_day',vdc_header_date_format='$vdc_header_date_format',vdc_customer_date_format='$vdc_customer_date_format',vdc_header_phone_format='$vdc_header_phone_format',vdc_agent_api_active='$vdc_agent_api_active',enable_vtiger_integration='$enable_vtiger_integration',vtiger_server_ip='$vtiger_server_ip',vtiger_dbname='$vtiger_dbname',vtiger_login='$vtiger_login',vtiger_pass='$vtiger_pass',vtiger_url='$vtiger_url',qc_features_active='$qc_features_active',outbound_autodial_active='$outbound_autodial_active',outbound_calls_per_second='$outbound_calls_per_second',enable_tts_integration='$enable_tts_integration',agentonly_callback_campaign_lock='$agentonly_callback_campaign_lock',sounds_central_control_active='$sounds_central_control_active',sounds_web_server='$sounds_web_server',sounds_web_directory='$sounds_web_directory',active_voicemail_server='$active_voicemail_server',auto_dial_limit='$auto_dial_limit',user_territories_active='$user_territories_active',allow_custom_dialplan='$allow_custom_dialplan',enable_second_webform='$enable_second_webform',default_webphone='$default_webphone',default_external_server_ip='$default_external_server_ip',webphone_url='" . mysql_real_escape_string($webphone_url) . "',enable_agc_dispo_log='$enable_agc_dispo_log',custom_dialplan_entry='$custom_dialplan_entry',queuemetrics_loginout='$queuemetrics_loginout',callcard_enabled='$callcard_enabled',queuemetrics_callstatus='$queuemetrics_callstatus',default_codecs='$default_codecs',admin_web_directory='$admin_web_directory',label_title='$label_title',label_first_name='$label_first_name',label_middle_initial='$label_middle_initial',label_last_name='$label_last_name',label_address1='$label_address1',label_address2='$label_address2',label_address3='$label_address3',label_city='$label_city',label_state='$label_state',label_province='$label_province',label_postal_code='$label_postal_code',label_vendor_lead_code='$label_vendor_lead_code',label_gender='$label_gender',label_phone_number='$label_phone_number',label_phone_code='$label_phone_code',label_alt_phone='$label_alt_phone',label_security_phrase='$label_security_phrase',label_email='$label_email',label_comments='$label_comments',custom_fields_enabled='$custom_fields_enabled',slave_db_server='$slave_db_server',reports_use_slave_db='$reports_use_slave_db',webphone_systemkey='$webphone_systemkey',first_login_trigger='$first_login_trigger',default_phone_registration_password='$default_phone_registration_password',default_phone_login_password='$default_phone_login_password',default_server_password='$default_server_password';"; $rslt=mysql_query($stmt, $link); ### LOG INSERTION Admin Log Table ### @@ -17450,7 +17528,7 @@ if ($ADD==3) echo "
\n"; echo ""; - $stmt="SELECT user_id,user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,shift_override_flag,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five,voicemail_id,agent_call_log_view_override,callcard_admin,agent_choose_blended,realtime_block_user_info,custom_fields_modify from vicidial_users where user='$user';"; + $stmt="SELECT user_id,user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,shift_override_flag,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five,voicemail_id,agent_call_log_view_override,callcard_admin,agent_choose_blended,realtime_block_user_info,custom_fields_modify,force_change_password from vicidial_users where user='$user';"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $user_id = $row[0]; @@ -17533,6 +17611,7 @@ if ($ADD==3) $agent_choose_blended = $row[79]; $realtime_block_user_info = $row[80]; $custom_fields_modify = $row[81]; + $force_change_password = $row[82]; if ( ($user_level >= $LOGuser_level) and ($LOGuser_level < 9) ) { @@ -17558,7 +17637,10 @@ if ($ADD==3) echo "\n"; echo "
\n"; echo "\n"; - echo "\n"; + + echo "\n"; + + echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "\n"; @@ -24047,7 +24129,7 @@ if ($ADD==311111111111) echo "\n"; echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "\n"; @@ -24764,7 +24846,7 @@ if ($ADD==311111111111111) echo "
User Number: $user$NWB#vicidial_users-user$NWE
Password: $NWB#vicidial_users-pass$NWE
Password: $NWB#vicidial_users-pass$NWE     Strength:
Force Change Password: $NWB#vicidial_users-force_change_password$NWE
Full Name: $NWB#vicidial_users-full_name$NWE
User Level: $NWB#phones-server_ip$NWE
Login: $NWB#phones-login$NWE
Login Password: $NWB#phones-pass$NWE
Registration Password: $NWB#phones-conf_secret$NWE
Registration Password: $NWB#phones-conf_secret$NWE     Strength:
Set As Webphone: $NWB#phones-is_webphone$NWE
Webphone Dialpad: $NWB#phones-webphone_dialpad$NWE
Use External Server IP: $NWB#phones-use_external_server_ip$NWE
Manager Update User: $NWB#servers-ASTmgrUSERNAMEupdate$NWE
Manager Listen User: $NWB#servers-ASTmgrUSERNAMElisten$NWE
Manager Send User: $NWB#servers-ASTmgrUSERNAMEsend$NWE
Conf File Secret: $NWB#servers-conf_secret$NWE
Conf File Secret: $NWB#servers-conf_secret$NWE     Strength:
Local GMT: (Do NOT Adjust for DST)$NWB#servers-local_gmt$NWE
VMail Dump Exten: $NWB#servers-voicemail_dump_exten$NWE
VICIDIAL AD extension: $NWB#servers-answer_transfer_agent$NWE
\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; echo "
\n"; echo ""; - $stmt="SELECT version,install_date,use_non_latin,webroot_writable,enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_url,queuemetrics_log_id,queuemetrics_eq_prepend,vicidial_agent_disable,allow_sipsak_messages,admin_home_url,enable_agc_xfer_log,db_schema_version,auto_user_add_value,timeclock_end_of_day,timeclock_last_reset_date,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,vdc_agent_api_active,qc_last_pull_time,enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url,qc_features_active,outbound_autodial_active,outbound_calls_per_second,enable_tts_integration,agentonly_callback_campaign_lock,sounds_central_control_active,sounds_web_server,sounds_web_directory,active_voicemail_server,auto_dial_limit,user_territories_active,allow_custom_dialplan,db_schema_update_date,enable_second_webform,default_webphone,default_external_server_ip,webphone_url,enable_agc_dispo_log,custom_dialplan_entry,queuemetrics_loginout,callcard_enabled,queuemetrics_callstatus,default_codecs,admin_web_directory,label_title,label_first_name,label_middle_initial,label_last_name,label_address1,label_address2,label_address3,label_city,label_state,label_province,label_postal_code,label_vendor_lead_code,label_gender,label_phone_number,label_phone_code,label_alt_phone,label_security_phrase,label_email,label_comments,custom_fields_enabled,slave_db_server,reports_use_slave_db,webphone_systemkey from system_settings;"; + $stmt="SELECT version,install_date,use_non_latin,webroot_writable,enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_url,queuemetrics_log_id,queuemetrics_eq_prepend,vicidial_agent_disable,allow_sipsak_messages,admin_home_url,enable_agc_xfer_log,db_schema_version,auto_user_add_value,timeclock_end_of_day,timeclock_last_reset_date,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,vdc_agent_api_active,qc_last_pull_time,enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url,qc_features_active,outbound_autodial_active,outbound_calls_per_second,enable_tts_integration,agentonly_callback_campaign_lock,sounds_central_control_active,sounds_web_server,sounds_web_directory,active_voicemail_server,auto_dial_limit,user_territories_active,allow_custom_dialplan,db_schema_update_date,enable_second_webform,default_webphone,default_external_server_ip,webphone_url,enable_agc_dispo_log,custom_dialplan_entry,queuemetrics_loginout,callcard_enabled,queuemetrics_callstatus,default_codecs,admin_web_directory,label_title,label_first_name,label_middle_initial,label_last_name,label_address1,label_address2,label_address3,label_city,label_state,label_province,label_postal_code,label_vendor_lead_code,label_gender,label_phone_number,label_phone_code,label_alt_phone,label_security_phrase,label_email,label_comments,custom_fields_enabled,slave_db_server,reports_use_slave_db,webphone_systemkey,first_login_trigger,default_phone_registration_password,default_phone_login_password,default_server_password from system_settings;"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $version = $row[0]; @@ -24844,7 +24926,12 @@ if ($ADD==311111111111111) $custom_fields_enabled = $row[74]; $slave_db_server = $row[75]; $reports_use_slave_db = $row[76]; - $webphone_systemkey= $row[77]; + $webphone_systemkey = $row[77]; + $first_login_trigger = $row[78]; + $default_phone_registration_password = $row[79]; + $default_phone_login_password = $row[80]; + $default_server_password = $row[81]; + echo "
MODIFY VICIDIAL SYSTEM SETTINGS
\n"; echo "\n"; @@ -24983,6 +25070,14 @@ if ($ADD==311111111111111) echo "
Enable Custom List Fields: $NWB#settings-custom_fields_enabled$NWE
First Login Trigger: $first_login_trigger   $NWB#settings-first_login_trigger$NWE
Default Phone Registration Password: $NWB#settings-default_phone_registration_password$NWE     Strength:
Default Phone Login Password: $NWB#settings-default_phone_login_password$NWE     Strength:
Default Server Password: $NWB#settings-default_server_password$NWE     Strength:
Slave Database Server: $NWB#settings-slave_db_server$NWE
Reports to use Slave DB: \n"; echo "
\n"; + echo ""; + + echo "
CHANGE PASSWORD\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
New Password:     Strength:
You are required to change your password before you can continue on to Administration. A strong password has both lower case and upper case letters as well as at least one number. Your password must be from 2 to 20 characters in length and cannot contain any characters that are not letters or numbers. Be sure that this password is something that you can remember, because as soon as you make this change you will be prompted to enter your new password to log back in to Administration
\n"; + } + } +##### END user force change password page ##### + + +###################### +# ADD=999996 - initial install welcome page +###################### +if ($ADD==999996) + { + if ($SSfirst_login_trigger=='Y') + { + $show_form=1; + if ($stage=='SUBMIT') + { + if ( (strlen($pass) > 20) or (strlen($pass) < 2) or ($pass==$PHP_AUTH_PW) ) + {echo "Password has not been changed, please try again |1|" . strlen($pass);} + else + { + $stmt="select count(*) from vicidial_users where user='$user' and pass='$PHP_AUTH_PW' and active='Y' and user_level > 6;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $userpass_to_print = mysql_num_rows($rslt); + if ($userpass_to_print < 1) + {echo "Password has not been changed, please try again |2|$userpass_to_print";} + else + { + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + {echo "Password has not been changed, please try again |3|$row[0]";} + else + { + $show_form=0; + + if (strlen($default_phone_registration_password) < 2) {$default_phone_registration_password = $SSdefault_phone_registration_password;} + if (strlen($default_phone_login_password) < 2) {$default_phone_login_password = $SSdefault_phone_login_password;} + if (strlen($default_server_password) < 2) {$default_server_password = $SSdefault_server_password;} + + $stmt="UPDATE vicidial_users SET pass='$pass',force_change_password='N' where user='$user' and active='Y' and user_level > 6;"; + $rslt=mysql_query($stmt, $link); + + $stmtA="UPDATE system_settings SET first_login_trigger='N',default_phone_registration_password='$default_phone_registration_password',default_phone_login_password='$default_phone_login_password',default_server_password='$default_server_password';"; + $rslt=mysql_query($stmtA, $link); + + $stmtB="UPDATE phones SET conf_secret='$default_phone_registration_password',pass='$default_phone_login_password';"; + $rslt=mysql_query($stmtB, $link); + + $stmtC="UPDATE servers SET conf_secret='$default_server_password',rebuild_conf_files='Y';"; + $rslt=mysql_query($stmtC, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtA|$stmtB|$stmtC|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERS', event_type='MODIFY', record_id='$user', event_code='INITIAL SETTINGS UPDATE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "Passwords have been updated, you may now continue on into Administration.

You may want to start by reading the ViciDial Manager Manual available at vicidial.org (there is a free version available)\n"; + } + } + } + } + if ($show_form > 0) + { + echo "
\n"; + echo ""; + + echo "
Welcome to ViciDial, initial setup screen

\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
You are required to change your password before you can continue on to Administration. A strong password has both lower case and upper case letters as well as at least one number. Your password must be from 2 to 20 characters in length and cannot contain any characters that are not letters or numbers. Be sure that this password is something that you can remember, because as soon as you complete this initial setup screen you will be prompted to enter your new password in again to log back in to Administration
New Password:     Strength:
 
The next three default passwords are defined in the System Settings section, and you can change them after you define them here. It is a good idea to make these passwords strong so that no one can hack into your phone accounts and place phone calls without you knowing. The default registration password used when new phones are added to the system as the SIP or IAX VOIP phone password. The default phone web login password used when new phones are added to the system, as the phone password that an agent would use in the ViciDial Agent Interface. The default server password used when new servers are added to the system for servers to communicate with each other.
Default Phone Registration Password:     Strength:
Default Phone Login Password:     Strength:
Default Server Password:     Strength:
 
\n"; + } + } + } +##### END initial install welcome page ##### + + +###################### +# ADD=999995 - copyright trademark license page +###################### +if ($ADD==999995) + { + echo "
\n"; + echo ""; + + echo "
Welcome to ViciDial: copyright, trademark and license page

\n"; + echo "
\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "
Copyright:   The ViciDial Call Center Suite is maintained by the ViciDial Group, © 2010
Trademark:   \"VICIDIAL\" is a registered trademark of the ViciDial Group. Here is our trademark use policy
License:   The ViciDial Call Center Suite is released under the AGPLv2 open source license
Source Code:   The ViciDial Call Center Suite software is available for download, and for use, free of cost. You can download the easy to install ViciBox CD ISO version, or only the source code
\n"; + if ($first_login_link > 0) + { + echo "

"; + echo "
Continue on to the Initial Setup

  \n"; + } + } +##### END copyright trademark license page ##### + + echo "
\n"; echo "
\n"; @@ -27557,8 +27841,10 @@ echo "
\n"; echo "

"; echo "VERSION: $admin_version
"; -echo "BUILD: $build
\n"; - +echo "BUILD: $build\n"; +if (!preg_match("/_BUILD_/",$SShosted_settings)) + {echo "
© 2010 ViciDial Group
";} +echo "\n"; ?>
diff --git a/www/vicidial/admin_header.php b/www/vicidial/admin_header.php index f72f4372..13ea2be5 100644 --- a/www/vicidial/admin_header.php +++ b/www/vicidial/admin_header.php @@ -24,6 +24,7 @@ # 100616-2350 - Added VIDPROMPT call menu options # 100728-0904 - Changed Lead Loader link to the new 3rd gen lead loader # 100802-2127 - Changed Admin to point to links page instead of Phones listings +# 100831-2255 - Added password strength checking function # @@ -325,34 +326,72 @@ if ( ( ($ADD==34) or ($ADD==31) or ($ADD==49) ) and ($SUB==29) and ($LOGmodify_c + var weak = Image(); + weak.src = "images/weak.png"; + var medium = Image(); + medium.src = "images/medium.png"; + var strong = Image(); + strong.src = "images/strong.png"; - function openNewWindow(url) { - window.open (url,"",'width=620,height=300,scrollbars=yes,menubar=yes,address=yes'); - } - function scriptInsertField() { + function pwdChanged(pwd_field_str, pwd_img_str) + { + var pwd_field = document.getElementById(pwd_field_str); + var pwd_img = document.getElementById(pwd_img_str); + + var strong_regex = new RegExp( "^(?=.{8,})(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])", "g" ); + var medium_regex = new RegExp( "^(?=.{6,})(((?=.*[a-z])(?=.*[A-Z]))|((?=.*[a-z])(?=.*[0-9]))|((?=.*[A-Z])(?=.*[0-9]))).*$", "g" ); + + if (strong_regex.test(pwd_field.value) ) + { + if (pwd_img.src != strong.src) + {pwd_img.src = strong.src;} + } + else if (medium_regex.test( pwd_field.value) ) + { + if (pwd_img.src != medium.src) + {pwd_img.src = medium.src;} + } + else + { + if (pwd_img.src != weak.src) + {pwd_img.src = weak.src;} + } + } + + function openNewWindow(url) + { + window.open (url,"",'width=620,height=300,scrollbars=yes,menubar=yes,address=yes'); + } + function scriptInsertField() + { openField = '--A--'; closeField = '--B--'; var textBox = document.scriptForm.script_text; var scriptIndex = document.getElementById("selectedField").selectedIndex; var insValue = document.getElementById('selectedField').options[scriptIndex].value; - if (document.selection) { - //IE - textBox = document.scriptForm.script_text; - insValue = document.scriptForm.selectedField.options[document.scriptForm.selectedField.selectedIndex].text; - textBox.focus(); - sel = document.selection.createRange(); - sel.text = openField + insValue + closeField; - } else if (textBox.selectionStart || textBox.selectionStart == 0) { - //Mozilla - var startPos = textBox.selectionStart; - var endPos = textBox.selectionEnd; - textBox.value = textBox.value.substring(0, startPos) - + openField + insValue + closeField - + textBox.value.substring(endPos, textBox.value.length); - } else { - textBox.value += openField + insValue + closeField; - } - } + if (document.selection) + { + //IE + textBox = document.scriptForm.script_text; + insValue = document.scriptForm.selectedField.options[document.scriptForm.selectedField.selectedIndex].text; + textBox.focus(); + sel = document.selection.createRange(); + sel.text = openField + insValue + closeField; + } + else if (textBox.selectionStart || textBox.selectionStart == 0) + { + //Mozilla + var startPos = textBox.selectionStart; + var endPos = textBox.selectionEnd; + textBox.value = textBox.value.substring(0, startPos) + + openField + insValue + closeField + + textBox.value.substring(endPos, textBox.value.length); + } + else + { + textBox.value += openField + insValue + closeField; + } + }