diff --git a/app/extensions/app_config.php b/app/extensions/app_config.php
index 4099d4b972..a013acd0fe 100644
--- a/app/extensions/app_config.php
+++ b/app/extensions/app_config.php
@@ -50,6 +50,9 @@
//$apps[$x]['permissions'][$y]['groups'][] = "superadmin";
//$apps[$x]['permissions'][$y]['groups'][] = "admin";
$y++;
+ $apps[$x]['permissions'][$y]['name'] = "extension_domain";
+ $apps[$x]['permissions'][$y]['groups'][] = "superadmin";
+ $y++;
$apps[$x]['permissions'][$y]['name'] = "extension_user_view";
$apps[$x]['permissions'][$y]['menu']['uuid'] = "d3036a99-9a9f-2ad6-a82a-1fe7bebbe2d3";
$apps[$x]['permissions'][$y]['groups'][] = "superadmin";
diff --git a/app/extensions/app_languages.php b/app/extensions/app_languages.php
index e82d95a955..765662a5be 100644
--- a/app/extensions/app_languages.php
+++ b/app/extensions/app_languages.php
@@ -492,6 +492,16 @@
$text['description-dial_string']['pt-pt'] = "Localização do endpoint.";
$text['description-dial_string']['fr-fr'] = "Emplacement de la cible.";
+ $text['label-domain']['en-us'] = "Domain";
+ $text['label-domain']['es-cl'] = "Dominio";
+ $text['label-domain']['pt-pt'] = "Domínio";
+ $text['label-domain']['fr-fr'] = "Domaine";
+
+ $text['description-domain']['en-us'] = "";
+ $text['description-domain']['es-cl'] = "";
+ $text['description-domain']['pt-pt'] = "";
+ $text['description-domain']['fr-fr'] = "";
+
$text['label-enabled']['en-us'] = "Enabled";
$text['label-enabled']['es-cl'] = "Activado";
$text['label-enabled']['pt-pt'] = "Habilitada";
diff --git a/app/extensions/extension_edit.php b/app/extensions/extension_edit.php
index 96ddf31b77..7892143f11 100644
--- a/app/extensions/extension_edit.php
+++ b/app/extensions/extension_edit.php
@@ -264,12 +264,21 @@ else {
if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) {
- $msg = '';
- if ($action == "update") {
- $extension_uuid = check_str($_POST["extension_uuid"]);
- }
+ //get the id
+ if ($action == "update") {
+ $extension_uuid = check_str($_POST["extension_uuid"]);
+ }
+
+ //set the domain_uuid
+ if (permission_exists('extension_domain')) {
+ $domain_uuid = check_str($_POST["domain_uuid"]);
+ }
+ else {
+ $domain_uuid = $_SESSION['domain_uuid'];
+ }
//check for all required data
+ $msg = '';
if (strlen($extension) == 0) { $msg .= $text['message-required'].$text['label-extension']."
\n"; }
//if (strlen($number_alias) == 0) { $msg .= $text['message-required']."Number Alias
\n"; }
//if (strlen($voicemail_password) == 0) { $msg .= $text['message-required']."Voicemail Password
\n"; }
@@ -410,7 +419,7 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) {
$sql .= ")";
$sql .= "values ";
$sql .= "(";
- $sql .= "'".$_SESSION['domain_uuid']."', ";
+ $sql .= "'".$domain_uuid."', ";
$sql .= "'$extension_uuid', ";
$sql .= "'$extension', ";
$sql .= "'$number_alias', ";
@@ -485,7 +494,7 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) {
//voicemail class
$ext = new extension;
$ext->db = $db;
- $ext->domain_uuid = $_SESSION['domain_uuid'];
+ $ext->domain_uuid = $domain_uuid;
$ext->extension = $extension;
$ext->number_alias = $number_alias;
$ext->voicemail_password = $voicemail_password;
@@ -544,6 +553,9 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) {
}
//update extensions
$sql = "update v_extensions set ";
+ if (permission_exists('extension_domain')) {
+ $sql .= "domain_uuid = '$domain_uuid', ";
+ }
$sql .= "extension = '$extension', ";
$sql .= "number_alias = '$number_alias', ";
$sql .= "password = '$password', ";
@@ -605,8 +617,10 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) {
$sql .= "enabled = '$enabled', ";
}
$sql .= "description = '$description' ";
- $sql .= "where domain_uuid = '".$_SESSION['domain_uuid']."' ";
- $sql .= "and extension_uuid = '$extension_uuid'";
+ $sql .= "where extension_uuid = '$extension_uuid' ";
+ if (!permission_exists('extension_domain')) {
+ $sql .= "and domain_uuid = '".$domain_uuid."' ";
+ }
$db->exec(check_sql($sql));
unset($sql);
@@ -615,7 +629,7 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) {
require_once "app/extensions/resources/classes/extension.php";
$ext = new extension;
$ext->db = $db;
- $ext->domain_uuid = $_SESSION['domain_uuid'];
+ $ext->domain_uuid = $domain_uuid;
$ext->extension = $extension;
$ext->number_alias = $number_alias;
$ext->voicemail_password = $voicemail_password;
@@ -631,8 +645,7 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) {
//update devices having extension assigned to line(s) with new password
$sql = "update v_device_lines set ";
$sql .= "password = '".$password."' ";
- $sql .= "where ";
- $sql .= "domain_uuid = '".$_SESSION['domain_uuid']."' ";
+ $sql .= "where domain_uuid = '".$domain_uuid."' ";
$sql .= "and server_address = '".$_SESSION['domain_name']."' ";
$sql .= "and user_id = '".$extension."' ";
$db->exec(check_sql($sql));
@@ -718,8 +731,8 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) {
if (count($_GET) > 0 && $_POST["persistformvar"] != "true") {
$extension_uuid = $_GET["id"];
$sql = "select * from v_extensions ";
- $sql .= "where domain_uuid = '".$_SESSION['domain_uuid']."' ";
- $sql .= "and extension_uuid = '$extension_uuid' ";
+ $sql .= "where extension_uuid = '$extension_uuid' ";
+ $sql .= "and domain_uuid = '".$domain_uuid."' ";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
@@ -763,7 +776,7 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) {
if (is_dir($_SERVER["DOCUMENT_ROOT"].PROJECT_PATH.'/app/voicemails')) {
//get the voicemails
$sql = "select * from v_voicemails ";
- $sql .= "where domain_uuid = '".$_SESSION['domain_uuid']."' ";
+ $sql .= "where domain_uuid = '".$domain_uuid."' ";
if (is_numeric($extension)) {
$sql .= "and voicemail_id = '$extension' ";
}
@@ -956,7 +969,7 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) {
$sql = "SELECT u.username, e.user_uuid FROM v_extension_users as e, v_users as u ";
$sql .= "where e.user_uuid = u.user_uuid ";
$sql .= "and u.user_enabled = 'true' ";
- $sql .= "and e.domain_uuid = '".$_SESSION['domain_uuid']."' ";
+ $sql .= "and e.domain_uuid = '".$domain_uuid."' ";
$sql .= "and e.extension_uuid = '".$extension_uuid."' ";
$sql .= "order by u.username asc ";
$prep_statement = $db->prepare(check_sql($sql));
@@ -970,7 +983,7 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) {
echo "