diff --git a/core/default_settings/default_setting_edit.php b/core/default_settings/default_setting_edit.php
index ee527970a0..98976a9dc8 100644
--- a/core/default_settings/default_setting_edit.php
+++ b/core/default_settings/default_setting_edit.php
@@ -642,6 +642,13 @@
echo " \n";
echo " \n";
}
+ elseif ($category == "users" && $subcategory == "username_format" && $name == "text" ) {
+ echo " \n";
+ }
elseif ($category == "voicemail" && $subcategory == "voicemail_file" && $name == "text" ) {
echo " \n";
}
+ elseif ($category == "users" && $subcategory == "username_format" && $name == "text" ) {
+ echo " \n";
+ }
elseif ($category == "voicemail" && $subcategory == "voicemail_file" && $name == "text" ) {
echo " \n";
}
+ elseif ($user_setting_category == "users" && $user_setting_subcategory == "username_format" && $user_setting_name == "text" ) {
+ echo " \n";
+ }
else {
echo " \n";
}
diff --git a/core/user_settings/user_settings.php b/core/user_settings/user_settings.php
index ad7421d20d..1e9d510bc0 100644
--- a/core/user_settings/user_settings.php
+++ b/core/user_settings/user_settings.php
@@ -298,6 +298,9 @@
echo " ".(img_spacer('15px', '15px', 'background: '.escape($row['user_setting_value']).'; margin-right: 4px; vertical-align: middle; border: 1px solid '.(color_adjust($row['user_setting_value'], -0.18)).'; padding: -1px;'));
echo "".escape($row['user_setting_value'])."\n";
}
+ else if ($category == 'users' && $subcategory == 'username_format' && $name == 'text') {
+ echo " ".$text['option-username_format_'.$row['user_setting_value']]."\n";
+ }
else if ($category == 'recordings' && $subcategory == 'storage_type' && $name == 'text') {
echo " ".$text['label-'.$row['user_setting_value']]."\n";
}
diff --git a/core/users/app_config.php b/core/users/app_config.php
index ffba651654..f22620cfbd 100644
--- a/core/users/app_config.php
+++ b/core/users/app_config.php
@@ -94,6 +94,14 @@
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "";
$y++;
+ $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "53cc1060-78f9-44ca-b9b0-17fb2fffd5e1";
+ $apps[$x]['default_settings'][$y]['default_setting_category'] = "users";
+ $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "username_format";
+ $apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
+ $apps[$x]['default_settings'][$y]['default_setting_value'] = "any";
+ $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true";
+ $apps[$x]['default_settings'][$y]['default_setting_description'] = "Require a specific username format.";
+ $y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "e3f5f4cd-0f17-428a-b788-2f2db91b6dc7";
$apps[$x]['default_settings'][$y]['default_setting_category'] = "users";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "password_length";
diff --git a/core/users/user_edit.php b/core/users/user_edit.php
index c0190fd82d..a479724067 100644
--- a/core/users/user_edit.php
+++ b/core/users/user_edit.php
@@ -152,6 +152,14 @@
if ($username == '') {
$invalid[] = $text['label-username'];
}
+ if ($_SESSION['users']['username_format']['text'] != '' && $_SESSION['users']['username_format']['text'] != 'any') {
+ if (
+ ($_SESSION['users']['username_format']['text'] == 'email' && !valid_email($username)) ||
+ ($_SESSION['users']['username_format']['text'] == 'no_email' && valid_email($username))
+ ) {
+ message::add($text['message-username_format_invalid'], 'negative', 7500);
+ }
+ }
if ((permission_exists('user_edit') && $action == 'edit' && $username != $username_old && $username != '') ||
(permission_exists('user_add') && $action == 'add' && $username != '')) {
$sql = "select count(*) from v_users where username = :username ";
diff --git a/resources/app_languages.php b/resources/app_languages.php
index bb58f8cd50..72ffaa264b 100644
--- a/resources/app_languages.php
+++ b/resources/app_languages.php
@@ -409,6 +409,90 @@ $text['message-unsupported_file_type']['ru-ru'] = "Тип файла не под
$text['message-unsupported_file_type']['sv-se'] = "Inte stöds filtyp";
$text['message-unsupported_file_type']['uk-ua'] = "Тип файлу не підтримується";
+$text['message-username_format_invalid']['en-us'] = "Invalid Username Format";
+$text['message-username_format_invalid']['en-gb'] = "Invalid Username Format";
+$text['message-username_format_invalid']['ar-eg'] = "";
+$text['message-username_format_invalid']['de-at'] = "Ungültiger Benutzername"; //copied from de-de
+$text['message-username_format_invalid']['de-ch'] = "Ungültiger Benutzername"; //copied from de-de
+$text['message-username_format_invalid']['de-de'] = "Ungültiger Benutzername";
+$text['message-username_format_invalid']['es-cl'] = "";
+$text['message-username_format_invalid']['es-mx'] = "";
+$text['message-username_format_invalid']['fr-ca'] = "";
+$text['message-username_format_invalid']['fr-fr'] = "";
+$text['message-username_format_invalid']['he-il'] = "";
+$text['message-username_format_invalid']['it-it'] = "";
+$text['message-username_format_invalid']['nl-nl'] = "";
+$text['message-username_format_invalid']['pl-pl'] = "";
+$text['message-username_format_invalid']['pt-br'] = "Nome de usuário inválida";
+$text['message-username_format_invalid']['pt-pt'] = "";
+$text['message-username_format_invalid']['ro-ro'] = "";
+$text['message-username_format_invalid']['ru-ru'] = "Неверное имя пользователя";
+$text['message-username_format_invalid']['sv-se'] = "";
+$text['message-username_format_invalid']['uk-ua'] = "Geçersiz Kullanıcı Adı";
+
+$text['option-username_format_any']['en-us'] = "Any";
+$text['option-username_format_any']['en-gb'] = "Any";
+$text['option-username_format_any']['ar-eg'] = "Any";
+$text['option-username_format_any']['de-at'] = "Any";
+$text['option-username_format_any']['de-ch'] = "Any";
+$text['option-username_format_any']['de-de'] = "Any";
+$text['option-username_format_any']['es-cl'] = "Any";
+$text['option-username_format_any']['es-mx'] = "Any";
+$text['option-username_format_any']['fr-ca'] = "Any";
+$text['option-username_format_any']['fr-fr'] = "Any";
+$text['option-username_format_any']['he-il'] = "Any";
+$text['option-username_format_any']['it-it'] = "Any";
+$text['option-username_format_any']['nl-nl'] = "Any";
+$text['option-username_format_any']['pl-pl'] = "Any";
+$text['option-username_format_any']['pt-br'] = "Any";
+$text['option-username_format_any']['pt-pt'] = "Any";
+$text['option-username_format_any']['ro-ro'] = "Any";
+$text['option-username_format_any']['ru-ru'] = "Any";
+$text['option-username_format_any']['sv-se'] = "Any";
+$text['option-username_format_any']['uk-ua'] = "Any";
+
+$text['option-username_format_email']['en-us'] = "Email Address";
+$text['option-username_format_email']['en-gb'] = "Email Address";
+$text['option-username_format_email']['ar-eg'] = "Email Address";
+$text['option-username_format_email']['de-at'] = "Email Address";
+$text['option-username_format_email']['de-ch'] = "Email Address";
+$text['option-username_format_email']['de-de'] = "Email Address";
+$text['option-username_format_email']['es-cl'] = "Email Address";
+$text['option-username_format_email']['es-mx'] = "Email Address";
+$text['option-username_format_email']['fr-ca'] = "Email Address";
+$text['option-username_format_email']['fr-fr'] = "Email Address";
+$text['option-username_format_email']['he-il'] = "Email Address";
+$text['option-username_format_email']['it-it'] = "Email Address";
+$text['option-username_format_email']['nl-nl'] = "Email Address";
+$text['option-username_format_email']['pl-pl'] = "Email Address";
+$text['option-username_format_email']['pt-br'] = "Email Address";
+$text['option-username_format_email']['pt-pt'] = "Email Address";
+$text['option-username_format_email']['ro-ro'] = "Email Address";
+$text['option-username_format_email']['ru-ru'] = "Email Address";
+$text['option-username_format_email']['sv-se'] = "Email Address";
+$text['option-username_format_email']['uk-ua'] = "Email Address";
+
+$text['option-username_format_no_email']['en-us'] = "Not Email Address";
+$text['option-username_format_no_email']['en-gb'] = "Not Email Address";
+$text['option-username_format_no_email']['ar-eg'] = "Not Email Address";
+$text['option-username_format_no_email']['de-at'] = "Not Email Address";
+$text['option-username_format_no_email']['de-ch'] = "Not Email Address";
+$text['option-username_format_no_email']['de-de'] = "Not Email Address";
+$text['option-username_format_no_email']['es-cl'] = "Not Email Address";
+$text['option-username_format_no_email']['es-mx'] = "Not Email Address";
+$text['option-username_format_no_email']['fr-ca'] = "Not Email Address";
+$text['option-username_format_no_email']['fr-fr'] = "Not Email Address";
+$text['option-username_format_no_email']['he-il'] = "Not Email Address";
+$text['option-username_format_no_email']['it-it'] = "Not Email Address";
+$text['option-username_format_no_email']['nl-nl'] = "Not Email Address";
+$text['option-username_format_no_email']['pl-pl'] = "Not Email Address";
+$text['option-username_format_no_email']['pt-br'] = "Not Email Address";
+$text['option-username_format_no_email']['pt-pt'] = "Not Email Address";
+$text['option-username_format_no_email']['ro-ro'] = "Not Email Address";
+$text['option-username_format_no_email']['ru-ru'] = "Not Email Address";
+$text['option-username_format_no_email']['sv-se'] = "Not Email Address";
+$text['option-username_format_no_email']['uk-ua'] = "Not Email Address";
+
$text['confirm-delete']['en-us'] = "Do you really want to DELETE this?";
$text['confirm-delete']['en-gb'] = "Do you really want to DELETE this?";
$text['confirm-delete']['ar-eg'] = "هل تريد حقا أن تحذف هذا؟";