Ensure destination cache is cleared when destination is saved by a user in the admin group.

This commit is contained in:
FusionPBX
2021-09-03 23:00:07 -06:00
committed by GitHub
parent 08c1fdc1d9
commit b640a68581

View File

@@ -189,6 +189,11 @@
return;
}
//get the uuid
if ($action == "update" && is_uuid($_POST["destination_uuid"])) {
$destination_uuid = $_POST["destination_uuid"];
}
//get the destination row values
if ($action == 'update' && is_uuid($destination_uuid)) {
$sql = "select * from v_destinations ";
@@ -199,9 +204,16 @@
unset($sql, $parameters);
}
//get the dialplan_uuid from the database
//get the destination settings from the database
if (is_array($row) && @sizeof($row) != 0) {
//get the dialplan_uuid from the database
$dialplan_uuid = $row["dialplan_uuid"];
//if the destination_number is not set then get it from the database
if (!isset($destination_number)) {
$destination_prefix = $row["destination_prefix"];
$destination_number = $row["destination_number"];
}
}
//if the user doesn't have the correct permission then
@@ -768,14 +780,19 @@
//clear the cache
$cache = new cache;
$cache->delete("dialplan:".$destination_context);
if (isset($destination_number) && is_numeric($destination_number)) {
$cache->delete("dialplan:".$destination_context.":".$destination_number);
if ($_SESSION['destinations']['dialplan_mode']['text'] == 'multiple') {
$cache->delete("dialplan:".$destination_context);
}
if (isset($destination_prefix) && is_numeric($destination_prefix) && isset($destination_number) && is_numeric($destination_number)) {
$cache->delete("dialplan:".$destination_context.":".$destination_prefix.$destination_number);
if ($_SESSION['destinations']['dialplan_mode']['text'] == 'single') {
if (isset($destination_number) && is_numeric($destination_number)) {
$cache->delete("dialplan:".$destination_context.":".$destination_number);
}
if (isset($destination_prefix) && is_numeric($destination_prefix) && isset($destination_number) && is_numeric($destination_number)) {
$cache->delete("dialplan:".$destination_context.":".$destination_prefix.$destination_number);
}
}
}
} //if $destination_type == inbound
//save the outbound destination
if ($destination_type == 'outbound') {
@@ -821,7 +838,7 @@
unset($_SESSION['destinations']['array']);
}
}
} //if destination_type == outbound
//redirect the user
if ($action == "add") {