diff --git a/app/extensions/resources/dashboard/caller_id.php b/app/extensions/resources/dashboard/caller_id.php index e9973e00b4..f6b6212431 100644 --- a/app/extensions/resources/dashboard/caller_id.php +++ b/app/extensions/resources/dashboard/caller_id.php @@ -17,7 +17,7 @@ The Initial Developer of the Original Code is Mark J Crane - Portions created by the Initial Developer are Copyright (C) 2017 - 2019 + Portions created by the Initial Developer are Copyright (C) 2017 - 2021 the Initial Developer. All Rights Reserved. Contributor(s): @@ -29,207 +29,201 @@ require_once "resources/require.php"; require_once "resources/check_auth.php"; - //check permissions if (permission_exists('extension_caller_id')) { - //access granted - } - else { - echo "access denied"; - exit; - } -//add multi-lingual support - $language = new text; - $text = $language->get($_SESSION['domain']['language']['code'], 'app/extensions'); + //add multi-lingual support + $language = new text; + $text = $language->get($_SESSION['domain']['language']['code'], 'app/extensions'); -//add or update the database - if (is_array($_POST['extensions']) && @sizeof($_POST['extensions']) != 0) { + //add or update the database + if (is_array($_POST['extensions']) && @sizeof($_POST['extensions']) != 0) { - //validate the token - $token = new token; - if (!$token->validate('/app/extensions/extension_dashboard.php')) { - message::add($text['message-invalid_token'],'negative'); - header('Location: /core/user_settings/user_dashboard.php'); - exit; - } + //validate the token + $token = new token; + if (!$token->validate($_SERVER["DOCUMENT_ROOT"].'/extensions/resources/dashboard/caller_id.php')) { + message::add($text['message-invalid_token'],'negative'); + header('Location: /core/dashboard/'); + exit; + } - //build a new array to make sure it only contains what the user is allowed to change - $x=0; - foreach ($_POST['extensions'] as $row) { - //loop through the extensions - $found = false; - foreach ($_SESSION['user']['extension'] as $field) { - if ($field['extension_uuid'] == $row['extension_uuid']) { - //set as found - $found = true; + //build a new array to make sure it only contains what the user is allowed to change + $x=0; + foreach ($_POST['extensions'] as $row) { + //loop through the extensions + $found = false; + foreach ($_SESSION['user']['extension'] as $field) { + if ($field['extension_uuid'] == $row['extension_uuid']) { + //set as found + $found = true; + } + } + + //build the array on what is allowed. + if ($found) { + if (permission_exists('outbound_caller_id_select')) { + $caller_id = explode('@', $row['outbound_caller_id']); + $outbound_caller_id_name = $caller_id[0]; + $outbound_caller_id_number = $caller_id[1]; + } + else { + $outbound_caller_id_name = $row['outbound_caller_id_name']; + $outbound_caller_id_number = $row['outbound_caller_id_number']; + } + $array['extensions'][$x]['extension_uuid'] = $row['extension_uuid']; + $array['extensions'][$x]['outbound_caller_id_name'] = $outbound_caller_id_name; + if (is_numeric($outbound_caller_id_number)) { + $array['extensions'][$x]['outbound_caller_id_number'] = $outbound_caller_id_number; + } + } + + //increment the row id + $x++; + } + + //add the dialplan permission + $p = new permissions; + $p->add("extension_edit", "temp"); + + //save to the data + $database = new database; + $database->app_name = 'extensions'; + $database->app_uuid = 'e68d9689-2769-e013-28fa-6214bf47fca3'; + $database->save($array); + $message = $database->message; + + //update the session array + foreach ($array['extensions'] as $row) { + $x=0; + foreach ($_SESSION['user']['extension'] as $field) { + if ($field['extension_uuid'] == $row['extension_uuid']) { + $_SESSION['user']['extension'][$x]['outbound_caller_id_name'] = $row['outbound_caller_id_name']; + $_SESSION['user']['extension'][$x]['outbound_caller_id_number'] = $row['outbound_caller_id_number']; + } + $x++; } } - //build the array on what is allowed. - if ($found) { - if (permission_exists('outbound_caller_id_select')) { - $caller_id = explode('@', $row['outbound_caller_id']); - $outbound_caller_id_name = $caller_id[0]; - $outbound_caller_id_number = $caller_id[1]; + //remove the temporary permission + $p->delete("extension_edit", "temp"); + + //clear the cache + $cache = new cache; + foreach($_SESSION['user']['extension'] as $field) { + $cache->delete("directory:".$field['destination']."@".$field['user_context']); + } + + //set the message + message::add($text['message-update']); + + //redirect the browser + header("Location: /core/dashboard/"); + exit; + } + + //set the sub array index + $x = "999"; + + //get the extensions + $extensions = $_SESSION['user']['extension']; + + //get the destinations + $sql = "select destination_caller_id_name, destination_caller_id_number from v_destinations "; + $sql .= "where domain_uuid = :domain_uuid "; + $sql .= "and destination_type = 'inbound' "; + $sql .= "order by destination_caller_id_name asc, destination_caller_id_number asc"; + $parameters['domain_uuid'] = $_SESSION['domain_uuid']; + $database = new database; + $destinations = $database->select($sql, $parameters, 'all'); + unset($sql, $parameters); + + //create token + $object = new token; + $token = $object->create($_SERVER["DOCUMENT_ROOT"].'/extensions/resources/dashboard/caller_id.php'); + + //show the content + echo "
\n"; + echo "
".$text['label-caller_id_number']."
\n"; + echo "
\n"; + echo button::create(['type'=>'button','label'=>$text['button-save'],'icon'=>$_SESSION['theme']['button_icon_save'],'collapse'=>false,'onclick'=>"list_form_submit('form_list_extension_caller_id');"]); + echo "
\n"; + echo "
\n"; + echo "
\n"; + + echo "
\n"; + + echo "\n"; + echo "\n"; + echo " \n"; + echo " \n"; + if (!permission_exists('outbound_caller_id_select')) { + echo " \n"; + } + echo " \n"; + echo "\n"; + + if (is_array($extensions) && @sizeof($extensions) != 0) { + $x = 0; + foreach ($extensions as $row) { + //determine whether to hide the element + if (is_uuid($device_key_uuid)) { + $element['hidden'] = false; + $element['visibility'] = "visibility:visible;"; } else { - $outbound_caller_id_name = $row['outbound_caller_id_name']; - $outbound_caller_id_number = $row['outbound_caller_id_number']; + $element['hidden'] = true; + $element['visibility'] = "visibility:hidden;"; } - $array['extensions'][$x]['extension_uuid'] = $row['extension_uuid']; - $array['extensions'][$x]['outbound_caller_id_name'] = $outbound_caller_id_name; - if (is_numeric($outbound_caller_id_number)) { - $array['extensions'][$x]['outbound_caller_id_number'] = $outbound_caller_id_number; + + echo "\n"; + echo " \n"; + if (permission_exists('outbound_caller_id_select')) { + //caller id select + echo " \n"; } - - //increment the row id - $x++; - } - - //add the dialplan permission - $p = new permissions; - $p->add("extension_edit", "temp"); - - //save to the data - $database = new database; - $database->app_name = 'extensions'; - $database->app_uuid = 'e68d9689-2769-e013-28fa-6214bf47fca3'; - $database->save($array); - $message = $database->message; - - //update the session array - foreach ($array['extensions'] as $row) { - $x=0; - foreach ($_SESSION['user']['extension'] as $field) { - if ($field['extension_uuid'] == $row['extension_uuid']) { - $_SESSION['user']['extension'][$x]['outbound_caller_id_name'] = $row['outbound_caller_id_name']; - $_SESSION['user']['extension'][$x]['outbound_caller_id_number'] = $row['outbound_caller_id_number']; + else { + //caller id name and number inputs + echo " \n"; + echo " \n"; } + echo " \n"; + echo "\n"; $x++; } } + unset($extensions); - //remove the temporary permission - $p->delete("extension_edit", "temp"); - - //clear the cache - $cache = new cache; - foreach($_SESSION['user']['extension'] as $field) { - $cache->delete("directory:".$field['destination']."@".$field['user_context']); - } - - //set the message - message::add($text['message-update']); - - //redirect the browser - header("Location: /core/user_settings/user_dashboard.php"); - exit; + echo "
".$text['label-extension']."".$text['label-caller_id']."".$text['label-destination']."".$text['label-description']."
\n"; + echo " ".$row['destination']; + if (is_uuid($row['extension_uuid'])) { + echo " \n"; + } + echo " \n"; + if (count($destinations) > 0) { + echo " \n"; } + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " ".$row['description']; + echo "
\n"; + echo "
\n"; + echo "\n"; + echo "
\n"; } -//set the sub array index - $x = "999"; - -//get the extensions - $extensions = $_SESSION['user']['extension']; - -//get the destinations - $sql = "select destination_caller_id_name, destination_caller_id_number from v_destinations "; - $sql .= "where domain_uuid = :domain_uuid "; - $sql .= "and destination_type = 'inbound' "; - $sql .= "order by destination_caller_id_name asc, destination_caller_id_number asc"; - $parameters['domain_uuid'] = $_SESSION['domain_uuid']; - $database = new database; - $destinations = $database->select($sql, $parameters, 'all'); - unset($sql, $parameters); - -//create token - $object = new token; - $token = $object->create('/app/extensions/extension_dashboard.php'); - -//show the content - echo "
\n"; - echo "
".$text['label-caller_id_number']."
\n"; - echo "
\n"; - echo button::create(['type'=>'button','label'=>$text['button-save'],'icon'=>$_SESSION['theme']['button_icon_save'],'collapse'=>false,'onclick'=>"list_form_submit('form_list_extension_caller_id');"]); - echo "
\n"; - echo "
\n"; - echo "
\n"; - - echo "
\n"; - - echo "\n"; - echo "\n"; - echo " \n"; - echo " \n"; - if (!permission_exists('outbound_caller_id_select')) { - echo " \n"; - } - echo " \n"; - echo "\n"; - - if (is_array($extensions) && @sizeof($extensions) != 0) { - $x = 0; - foreach ($extensions as $row) { - //determine whether to hide the element - if (is_uuid($device_key_uuid)) { - $element['hidden'] = false; - $element['visibility'] = "visibility:visible;"; - } - else { - $element['hidden'] = true; - $element['visibility'] = "visibility:hidden;"; - } - - echo "\n"; - echo " \n"; - if (permission_exists('outbound_caller_id_select')) { - //caller id select - echo " \n"; - } - else { - //caller id name and number inputs - echo " \n"; - echo " \n"; - } - echo " \n"; - echo "\n"; - $x++; - } - } - unset($extensions); - - echo "
".$text['label-extension']."".$text['label-caller_id']."".$text['label-destination']."".$text['label-description']."
\n"; - echo " ".$row['destination']; - if (is_uuid($row['extension_uuid'])) { - echo " \n"; - } - echo " \n"; - if (count($destinations) > 0) { - echo " \n"; - } - echo " \n"; - echo " \n"; - echo " \n"; - echo " \n"; - echo " \n"; - echo " ".$row['description']; - echo "
\n"; - echo "
\n"; - echo "\n"; - echo "
\n"; - ?>