mirror of
https://github.com/fusionpbx/fusionpbx.git
synced 2026-01-06 11:43:50 +00:00
Voicemail password complexity enforced in the web interface (#2767)
* Update app_config.php * Update voicemail_edit.php * Update app_languages.php * Update app_config.php
This commit is contained in:
@@ -184,6 +184,22 @@
|
||||
$apps[$x]['default_settings'][$y]['default_setting_value'] = 'asc';
|
||||
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = 'true';
|
||||
$apps[$x]['default_settings'][$y]['default_setting_description'] = 'Set the message order to asc or desc.';
|
||||
$y++;
|
||||
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = 'b31bcf2d-cb43-41c3-8fb3-36ef74d079b0';
|
||||
$apps[$x]['default_settings'][$y]['default_setting_category'] = 'voicemail';
|
||||
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = 'password_complexity';
|
||||
$apps[$x]['default_settings'][$y]['default_setting_name'] = 'boolean';
|
||||
$apps[$x]['default_settings'][$y]['default_setting_value'] = 'true';
|
||||
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = 'false';
|
||||
$apps[$x]['default_settings'][$y]['default_setting_description'] = 'Enforce voicemail password complexity.';
|
||||
$y++;
|
||||
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = '95f9d770-0fb0-4e2c-93b1-d2a140568058';
|
||||
$apps[$x]['default_settings'][$y]['default_setting_category'] = 'voicemail';
|
||||
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = 'password_min_length';
|
||||
$apps[$x]['default_settings'][$y]['default_setting_name'] = 'numeric';
|
||||
$apps[$x]['default_settings'][$y]['default_setting_value'] = '4';
|
||||
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = 'false';
|
||||
$apps[$x]['default_settings'][$y]['default_setting_description'] = 'Minimum voicemail password length.';
|
||||
|
||||
//schema details
|
||||
$y=0;
|
||||
|
||||
@@ -201,6 +201,98 @@ $text['message-messages_not_found']['ru-ru'] = "Сообщений не найд
|
||||
$text['message-messages_not_found']['sv-se'] = "Inga meddelanden hittades.";
|
||||
$text['message-messages_not_found']['uk-ua'] = "Не знайдено повідомлень";
|
||||
|
||||
$text['message-password_blank']['en-us'] = "Invalid Password";
|
||||
$text['message-password_blank']['ar-eg'] = "";
|
||||
$text['message-password_blank']['de-at'] = "Falsches Passwort";
|
||||
$text['message-password_blank']['de-de'] = "Falsches Passwort";
|
||||
$text['message-password_blank']['es-cl'] = "Contraseña No Válida";
|
||||
$text['message-password_blank']['fr-fr'] = "Mot de Passe Incorrect";
|
||||
$text['message-password_blank']['he-il'] = "סיסמא לא קיימת";
|
||||
$text['message-password_blank']['it-it'] = "Password non valida";
|
||||
$text['message-password_blank']['nl-nl'] = "";
|
||||
$text['message-password_blank']['pl-pl'] = "Nieprawidłowe hasło";
|
||||
$text['message-password_blank']['pt-br'] = "";
|
||||
$text['message-password_blank']['pt-pt'] = "Senha Inválida";
|
||||
$text['message-password_blank']['ru-ru'] = "Неверный пароль";
|
||||
$text['message-password_blank']['sv-se'] = "Ogiltigt Lösenord";
|
||||
$text['message-password_blank']['uk-ua'] = "Неправильний пароль";
|
||||
|
||||
$text['message-password_requirements']['en-us'] = "Password Requirements";
|
||||
$text['message-password_requirements']['ar-eg'] = "";
|
||||
$text['message-password_requirements']['de-at'] = "Kennwortanforderungen ";
|
||||
$text['message-password_requirements']['de-de'] = "Kennwortanforderungen ";
|
||||
$text['message-password_requirements']['es-cl'] = "Requisitos de Contraseña";
|
||||
$text['message-password_requirements']['fr-fr'] = "Mot de passe requis";
|
||||
$text['message-password_requirements']['he-il'] = "דרישות סיסמא";
|
||||
$text['message-password_requirements']['it-it'] = "Requisiti Password";
|
||||
$text['message-password_requirements']['nl-nl'] = "";
|
||||
$text['message-password_requirements']['pl-pl'] = "Wymagania Hasło";
|
||||
$text['message-password_requirements']['pt-br'] = "";
|
||||
$text['message-password_requirements']['pt-pt'] = "Requisitos Senha";
|
||||
$text['message-password_requirements']['ru-ru'] = "Требования к паролю";
|
||||
$text['message-password_requirements']['sv-se'] = "lösenordskrav ";
|
||||
$text['message-password_requirements']['uk-ua'] = "вимоги до паролю";
|
||||
|
||||
$text['label-numberic_only']['en-us'] = "Only Numbers Allowed";
|
||||
$text['label-numberic_only']['ar-eg'] = "";
|
||||
$text['label-numberic_only']['de-at'] = "";
|
||||
$text['label-numberic_only']['de-ch'] = "";
|
||||
$text['label-numberic_only']['de-de'] = "";
|
||||
$text['label-numberic_only']['es-cl'] = "";
|
||||
$text['label-numberic_only']['es-mx'] = "";
|
||||
$text['label-numberic_only']['fr-ca'] = "";
|
||||
$text['label-numberic_only']['fr-fr'] = "";
|
||||
$text['label-numberic_only']['he-il'] = "";
|
||||
$text['label-numberic_only']['it-it'] = "";
|
||||
$text['label-numberic_only']['nl-nl'] = "";
|
||||
$text['label-numberic_only']['pl-pl'] = "";
|
||||
$text['label-numberic_only']['pt-br'] = "";
|
||||
$text['label-numberic_only']['pt-pt'] = "";
|
||||
$text['label-numberic_only']['ro-ro'] = "";
|
||||
$text['label-numberic_only']['ru-ru'] = "";
|
||||
$text['label-numberic_only']['sv-se'] = "";
|
||||
$text['label-numberic_only']['uk-ua'] = "";
|
||||
|
||||
$text['label-password_repeating']['en-us'] = "Too Many Repeating Digits";
|
||||
$text['label-password_repeating']['ar-eg'] = "";
|
||||
$text['label-password_repeating']['de-at'] = "";
|
||||
$text['label-password_repeating']['de-ch'] = "";
|
||||
$text['label-password_repeating']['de-de'] = "";
|
||||
$text['label-password_repeating']['es-cl'] = "";
|
||||
$text['label-password_repeating']['es-mx'] = "";
|
||||
$text['label-password_repeating']['fr-ca'] = "";
|
||||
$text['label-password_repeating']['fr-fr'] = "";
|
||||
$text['label-password_repeating']['he-il'] = "";
|
||||
$text['label-password_repeating']['it-it'] = "";
|
||||
$text['label-password_repeating']['nl-nl'] = "";
|
||||
$text['label-password_repeating']['pl-pl'] = "";
|
||||
$text['label-password_repeating']['pt-br'] = "";
|
||||
$text['label-password_repeating']['pt-pt'] = "";
|
||||
$text['label-password_repeating']['ro-ro'] = "";
|
||||
$text['label-password_repeating']['ru-ru'] = "";
|
||||
$text['label-password_repeating']['sv-se'] = "";
|
||||
$text['label-password_repeating']['uk-ua'] = "";
|
||||
|
||||
$text['label-password_sequential']['en-us'] = "Tpo Many Sequential Digits";
|
||||
$text['label-password_sequential']['ar-eg'] = "";
|
||||
$text['label-password_sequential']['de-at'] = "";
|
||||
$text['label-password_sequential']['de-ch'] = "";
|
||||
$text['label-password_sequential']['de-de'] = "";
|
||||
$text['label-password_sequential']['es-cl'] = "";
|
||||
$text['label-password_sequential']['es-mx'] = "";
|
||||
$text['label-password_sequential']['fr-ca'] = "";
|
||||
$text['label-password_sequential']['fr-fr'] = "";
|
||||
$text['label-password_sequential']['he-il'] = "";
|
||||
$text['label-password_sequential']['it-it'] = "";
|
||||
$text['label-password_sequential']['nl-nl'] = "";
|
||||
$text['label-password_sequential']['pl-pl'] = "";
|
||||
$text['label-password_sequential']['pt-br'] = "";
|
||||
$text['label-password_sequential']['pt-pt'] = "";
|
||||
$text['label-password_sequential']['ro-ro'] = "";
|
||||
$text['label-password_sequential']['ru-ru'] = "";
|
||||
$text['label-password_sequential']['sv-se'] = "";
|
||||
$text['label-password_sequential']['uk-ua'] = "";
|
||||
|
||||
$text['label-voicemail_uuid']['en-us'] = "Voicemail UUID";
|
||||
$text['label-voicemail_uuid']['ar-eg'] = "";
|
||||
$text['label-voicemail_uuid']['de-at'] = "Mailbox UUID";
|
||||
|
||||
@@ -335,6 +335,39 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) {
|
||||
require_once "resources/header.php";
|
||||
$document['title'] = $text['title-voicemail'];
|
||||
|
||||
//password complexity
|
||||
$password_complexity = $_SESSION['voicemail']['password_complexity']['boolean'];
|
||||
if ($password_complexity == "true") {
|
||||
echo "<script>\n";
|
||||
$req['length'] = $_SESSION['voicemail']['password_min_length']['numeric'];
|
||||
echo " function check_password_strength(pwd) {\n";
|
||||
echo " var msg_errors = [];\n";
|
||||
//length
|
||||
if (is_numeric($req['length']) && $req['length'] != 0) {
|
||||
echo " var re = /.{".$req['length'].",}/;\n";
|
||||
echo " if (!re.test(pwd)) { msg_errors.push('".$req['length']."+ ".$text['label-digits']."'); }\n";
|
||||
}
|
||||
//numberic only
|
||||
echo " var re = /(?=.*[a-zA-Z\W])/;\n";
|
||||
echo " if (re.test(pwd)) { msg_errors.push('".$text['label-numberic_only']."'); }\n";
|
||||
//repeating digits
|
||||
echo " var re = /(\d)\\1{2}/;\n";
|
||||
echo " if (re.test(pwd)) { msg_errors.push('".$text['label-password_repeating']."'); }\n";
|
||||
//sequential digits
|
||||
echo " var re = /(012|123|345|456|567|678|789|987|876|765|654|543|432|321|210)/;\n";
|
||||
echo " if (re.test(pwd)) { msg_errors.push('".$text['label-password_sequential']."'); }\n";
|
||||
|
||||
echo " if (msg_errors.length > 0) {\n";
|
||||
echo " var msg = '".$text['message-password_requirements'].": ' + msg_errors.join(', ');\n";
|
||||
echo " display_message(msg, 'negative', '6000');\n";
|
||||
echo " return false;\n";
|
||||
echo " }\n";
|
||||
echo " else {\n";
|
||||
echo " return true;\n";
|
||||
echo " }\n";
|
||||
echo " }\n";
|
||||
echo "</script>\n";
|
||||
}
|
||||
//show the content
|
||||
echo "<form method='post' name='frm' id='frm' action=''>\n";
|
||||
echo "<table width='100%' border='0' cellpadding='0' cellspacing='0'>\n";
|
||||
@@ -345,7 +378,11 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) {
|
||||
echo "</td>\n";
|
||||
echo "<td width='70%' align='right' valign='top'>\n";
|
||||
echo " <input type='button' class='btn' name='' alt='".$text['button-back']."' onclick=\"javascript:history.back();\" value='".$text['button-back']."'>\n";
|
||||
echo " <input type='button' class='btn' value='".$text['button-save']."' onclick='submit_form();'>\n";
|
||||
if ($password_complexity == "true") {
|
||||
echo " <input type='button' class='btn' value='".$text['button-save']."' onclick=\"if (check_password_strength(document.getElementById('password').value)) { submit_form(); }\">";
|
||||
} else {
|
||||
echo " <input type='button' class='btn' value='".$text['button-save']."' onclick='submit_form();'>\n";
|
||||
}
|
||||
echo "</td>\n";
|
||||
echo "</tr>\n";
|
||||
|
||||
@@ -702,7 +739,11 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) {
|
||||
echo " <input type='hidden' name='referer_path' value='".$http_referer['path']."'>\n";
|
||||
echo " <input type='hidden' name='referer_query' value='".$http_referer['query']."'>\n";
|
||||
echo " <br>";
|
||||
echo " <input type='button' class='btn' value='".$text['button-save']."' onclick='submit_form();'>\n";
|
||||
if ($password_complexity == "true") {
|
||||
echo " <input type='button' class='btn' value='".$text['button-save']."' onclick=\"if (check_password_strength(document.getElementById('password').value)) { submit_form(); }\">";
|
||||
} else {
|
||||
echo " <input type='button' class='btn' value='".$text['button-save']."' onclick='submit_form();'>\n";
|
||||
}
|
||||
echo " </td>\n";
|
||||
echo " </tr>";
|
||||
echo "</table>";
|
||||
|
||||
Reference in New Issue
Block a user