diff --git a/app/sip_profiles/sip_profile_edit.php b/app/sip_profiles/sip_profile_edit.php index 9d9dbfdeea..8cb2f25ba7 100644 --- a/app/sip_profiles/sip_profile_edit.php +++ b/app/sip_profiles/sip_profile_edit.php @@ -17,48 +17,31 @@ The Initial Developer of the Original Code is Mark J Crane - Portions created by the Initial Developer are Copyright (C) 2008-2015 + Portions created by the Initial Developer are Copyright (C) 2016 the Initial Developer. All Rights Reserved. Contributor(s): Mark J Crane - Luis Daniel Lucio Quiroz */ -require_once "root.php"; -require_once "resources/require.php"; -require_once "resources/check_auth.php"; -if (permission_exists('sip_profile_add') || permission_exists('sip_profile_edit')) { - //access granted -} -else { - echo "access denied"; - exit; -} + +//includes + require_once "root.php"; + require_once "resources/require.php"; + +//check permissions + require_once "resources/check_auth.php"; + if (permission_exists('sip_profile_add') || permission_exists('sip_profile_edit')) { + //access granted + } + else { + echo "access denied"; + exit; + } //add multi-lingual support $language = new text; $text = $language->get(); -//toggle enabled state - if ($_REQUEST['spid'] != '' && $_REQUEST['spsid'] != '' && $_REQUEST['enabled'] != '') { - $sql = "update v_sip_profile_settings set "; - $sql .= "sip_profile_setting_enabled = '".check_str($_REQUEST['enabled'])."' "; - $sql .= "where sip_profile_setting_uuid = '".check_str($_REQUEST['spsid'])."' "; - $sql .= "and sip_profile_uuid = '".check_str($_REQUEST['spid'])."' "; - $db->exec(check_sql($sql)); - unset($sql); - - //save the sip profile xml - save_sip_profile_xml(); - - //apply settings reminder - $_SESSION["reload_xml"] = true; - - $_SESSION["message"] = $text['message-update']; - header("Location: sip_profile_edit.php?id=".$_REQUEST['spid']); - exit; - } - //action add or update if (isset($_REQUEST["id"])) { $action = "update"; @@ -69,211 +52,396 @@ else { } //get http post variables and set them to php variables - if (count($_POST) > 0) { + if (is_array($_POST)) { + $sip_profile_uuid = check_str($_POST["sip_profile_uuid"]); $sip_profile_name = check_str($_POST["sip_profile_name"]); $sip_profile_hostname = check_str($_POST["sip_profile_hostname"]); - $sip_profile_description = check_str($_POST["sip_profile_description"]); $sip_profile_enabled = check_str($_POST["sip_profile_enabled"]); + $sip_profile_description = check_str($_POST["sip_profile_description"]); } -if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) { +//process the user data and save it to the database + if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) { - $msg = ''; - if ($action == "update") { - $sip_profile_uuid = check_str($_POST["sip_profile_uuid"]); - } - - //check for all required data - //if (strlen($sip_profile_name) == 0) { $msg .= $text['message-required'].$text['label-name']."
\n"; } - //if (strlen($sip_profile_description) == 0) { $msg .= $text['message-required'].$text['label-description']."
\n"; } - if (strlen($msg) > 0 && strlen($_POST["persistformvar"]) == 0) { - require_once "resources/header.php"; - require_once "resources/persist_form_var.php"; - echo "
\n"; - echo "
\n"; - echo $msg."
"; - echo "
\n"; - persistformvar($_POST); - echo "
\n"; - require_once "resources/footer.php"; - return; - } - - //add or update the database - if ($_POST["persistformvar"] != "true") { - //add the sip profile - if ($action == "add") { - $sql = "insert into v_sip_profiles "; - $sql .= "("; - $sql .= "sip_profile_uuid, "; - $sql .= "sip_profile_name, "; - $sql .= "sip_profile_hostname, "; - $sql .= "sip_profile_description, "; - $sql .= "sip_profile_enabled "; - $sql .= ")"; - $sql .= "values "; - $sql .= "("; - $sql .= "'".uuid()."', "; - $sql .= "'$sip_profile_name', "; - if (strlen($sip_profile_hostname) > 0) { - $sql .= "'$sip_profile_hostname', "; - } - else { - $sql .= "null, "; - } - $sql .= "'$sip_profile_description', "; - $sql .= "'$sip_profile_enabled' "; - $sql .= ")"; - $db->exec(check_sql($sql)); - unset($sql); - } //if ($action == "add") - - //update the sip profile - if ($action == "update") { - $sql = "update v_sip_profiles set "; - $sql .= "sip_profile_name = '$sip_profile_name', "; - if (strlen($sip_profile_hostname) > 0) { - $sql .= "sip_profile_hostname = '$sip_profile_hostname', "; - } - else { - $sql .= "sip_profile_hostname = null, "; - } - $sql .= "sip_profile_description = '$sip_profile_description', "; - $sql .= "sip_profile_enabled = '$sip_profile_enabled' "; - $sql .= "where sip_profile_uuid = '$sip_profile_uuid'"; - $db->exec(check_sql($sql)); - unset($sql); - } //if ($action == "update") - - //get the hostname - if ($sip_profile_name == nul) { - $fp = event_socket_create($_SESSION['event_socket_ip_address'], $_SESSION['event_socket_port'], $_SESSION['event_socket_password']); - if ($fp) { - $switch_cmd = "hostname"; - $sip_profile_hostname = event_socket_request($fp, 'api '.$switch_cmd); - } - } - - //clear the cache - $cache = new cache; - $cache->delete("configuration:sofia.conf:".$sip_profile_hostname); - - //redirect the browser - $_SESSION["message"] = $text['message-update']; - header("Location: sip_profiles.php"); - - //save the sip profile xml - save_sip_profile_xml(); - //apply settings reminder - $_SESSION["reload_xml"] = true; + //get the uuid from the POST + if ($action == "update") { + $sip_profile_uuid = check_str($_POST["sip_profile_uuid"]); + } + //check for all required data + $msg = ''; + if (strlen($sip_profile_uuid) == 0) { $msg .= $text['message-required']." ".$text['label-sip_profile_uuid']."
\n"; } + if (strlen($sip_profile_name) == 0) { $msg .= $text['message-required']." ".$text['label-sip_profile_name']."
\n"; } + //if (strlen($sip_profile_hostname) == 0) { $msg .= $text['message-required']." ".$text['label-sip_profile_hostname']."
\n"; } + if (strlen($sip_profile_enabled) == 0) { $msg .= $text['message-required']." ".$text['label-sip_profile_enabled']."
\n"; } + if (strlen($sip_profile_description) == 0) { $msg .= $text['message-required']." ".$text['label-sip_profile_description']."
\n"; } + if (strlen($msg) > 0 && strlen($_POST["persistformvar"]) == 0) { + require_once "resources/header.php"; + require_once "resources/persist_form_var.php"; + echo "
\n"; + echo "
\n"; + echo $msg."
"; + echo "
\n"; + persistformvar($_POST); + echo "
\n"; + require_once "resources/footer.php"; return; - } //if ($_POST["persistformvar"] != "true") -} //(count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) + } + + //cleanup the array + $x = 0; + foreach ($_POST["sip_profile_domains"] as $row) { + //unset the empty row + if (strlen($_POST["sip_profile_domains"][$x]["sip_profile_domain_name"]) == 0) { + unset($_POST["sip_profile_domains"][$x]); + } + if (strlen($_POST["sip_profile_domains"][$x]["sip_profile_domain_alias"]) == 0) { + unset($_POST["sip_profile_domains"][$x]); + } + if (strlen($_POST["sip_profile_domains"][$x]["sip_profile_domain_parse"]) == 0) { + unset($_POST["sip_profile_domains"][$x]); + } + //increment the row + $x++; + } + + //cleanup the array + $x = 0; + foreach ($_POST["sip_profile_settings"] as $row) { + //unset the empty row + if (strlen($_POST["sip_profile_settings"][$x]["sip_profile_setting_name"]) == 0) { + unset($_POST["sip_profile_settings"][$x]); + } + //if (strlen($_POST["sip_profile_settings"][$x]["sip_profile_setting_value"]) == 0) { + // unset($_POST["sip_profile_settings"][$x]); + //} + if (strlen($_POST["sip_profile_settings"][$x]["sip_profile_setting_enabled"]) == 0) { + unset($_POST["sip_profile_settings"][$x]); + } + //increment the row + $x++; + } + + //add the sip_profile_uuid + if (strlen($_POST["sip_profile_uuid"]) == 0) { + $sip_profile_uuid = uuid(); + $_POST["sip_profile_uuid"] = $sip_profile_uuid; + } + + //prepare the array + $array['sip_profiles'][] = $_POST; + + //save to the data + $database = new database; + $database->app_name = 'sip_profiles'; + $database->app_uuid = null; + if (strlen($sip_profile_uuid) > 0) { + $database->uuid($sip_profile_uuid); + } + $database->save($array); + $message = $database->message; + + //debug info + //echo "
";
+			//print_r($message);
+			//echo "
"; + //exit; + + //get the hostname + if ($sip_profile_name == nul) { + $fp = event_socket_create($_SESSION['event_socket_ip_address'], $_SESSION['event_socket_port'], $_SESSION['event_socket_password']); + if ($fp) { + $switch_cmd = "hostname"; + $sip_profile_hostname = event_socket_request($fp, 'api '.$switch_cmd); + } + } + + //clear the cache + $cache = new cache; + $cache->delete("configuration:sofia.conf:".$sip_profile_hostname); + + //redirect the browser + $_SESSION["message"] = $text['message-update']; + header("Location: sip_profiles.php"); + + //save the sip profile xml + save_sip_profile_xml(); + //apply settings reminder + $_SESSION["reload_xml"] = true; + + //redirect the user + if (isset($action)) { + if ($action == "add") { + $_SESSION["message"] = $text['message-add']; + } + if ($action == "update") { + $_SESSION["message"] = $text['message-update']; + } + header('Location: sip_profile_edit.php?id='.$sip_profile_uuid); + return; + } + } //(is_array($_POST) && strlen($_POST["persistformvar"]) == 0) //pre-populate the form - if (count($_GET) > 0 && $_POST["persistformvar"] != "true") { - $sip_profile_uuid = $_GET["id"]; + if (is_array($_GET) && $_POST["persistformvar"] != "true") { + $sip_profile_uuid = check_str($_GET["id"]); $sql = "select * from v_sip_profiles "; $sql .= "where sip_profile_uuid = '$sip_profile_uuid' "; $prep_statement = $db->prepare(check_sql($sql)); $prep_statement->execute(); - $result = $prep_statement->fetchAll(); + $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); foreach ($result as &$row) { $sip_profile_name = $row["sip_profile_name"]; $sip_profile_hostname = $row["sip_profile_hostname"]; - $sip_profile_description = $row["sip_profile_description"]; $sip_profile_enabled = $row["sip_profile_enabled"]; - break; //limit to 1 row + $sip_profile_description = $row["sip_profile_description"]; } unset ($prep_statement); } +//get the child data + $sql = "select * from v_sip_profile_settings "; + $sql .= "where sip_profile_uuid = '".$sip_profile_uuid."' "; + $prep_statement = $db->prepare($sql); + $prep_statement->execute(); + $sip_profile_settings = $prep_statement->fetchAll(PDO::FETCH_NAMED); + +//add an empty row + $x = count($sip_profile_settings); + $sip_profile_settings[$x]['sip_profile_setting_uuid'] = uuid(); + $sip_profile_settings[$x]['sip_profile_setting_uuid'] = ''; + $sip_profile_settings[$x]['sip_profile_uuid'] = ''; + $sip_profile_settings[$x]['sip_profile_setting_name'] = ''; + $sip_profile_settings[$x]['sip_profile_setting_value'] = ''; + $sip_profile_settings[$x]['sip_profile_setting_enabled'] = ''; + $sip_profile_settings[$x]['sip_profile_setting_description'] = ''; + +//get the child data + $sql = "select * from v_sip_profile_domains "; + $sql .= "where sip_profile_uuid = '".$sip_profile_uuid."' "; + $prep_statement = $db->prepare($sql); + $prep_statement->execute(); + $sip_profile_domains = $prep_statement->fetchAll(PDO::FETCH_NAMED); + +//add an empty row + $x = count($sip_profile_domains); + $sip_profile_domains[$x]['sip_profile_domain_uuid'] = uuid(); + $sip_profile_domains[$x]['sip_profile_uuid'] = ''; + $sip_profile_domains[$x]['sip_profile_domain_name'] = ''; + $sip_profile_domains[$x]['sip_profile_domain_alias'] = ''; + $sip_profile_domains[$x]['sip_profile_domain_parse'] = ''; + //show the header require_once "resources/header.php"; - $document['title'] = $text['title-sip_profile']; //show the content - echo "
\n"; - echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; - echo "\n"; echo "\n"; echo "\n"; echo "\n"; - echo "\n"; echo "\n"; echo "\n"; echo " \n"; echo " \n"; echo " "; echo "
".$text['header-sip_profile']."\n"; - echo " \n"; + echo "".$text['title-sip_profile']."

\n"; + echo " "; echo " \n"; - echo " \n"; - echo "
\n"; - echo $text['description-sip_profiles']."

\n"; + echo " "; echo "
\n"; - echo " ".$text['label-name']."\n"; + echo " ".$text['label-sip_profile_name']."\n"; echo "\n"; echo " \n"; echo "
\n"; - echo $text['description-name']."\n"; + echo $text['description-sip_profile_name']."\n"; echo "
\n"; + echo " ".$text['title-sip_profile_domains']."\n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + $x = 0; + foreach($sip_profile_domains as $row) { + echo " \n"; + if (strlen($row["sip_profile_domain_uuid"]) > 0) { + $sip_profile_domain_uuid = $row["sip_profile_domain_uuid"]; + } + if (strlen($row["sip_profile_uuid"]) > 0) { + $sip_profile_uuid = $row["sip_profile_uuid"]; + } + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + $x++; + } + echo "
".$text['label-sip_profile_domain_name']."".$text['label-sip_profile_domain_alias']."".$text['label-sip_profile_domain_parse']."
\n"; + echo " \n"; + echo " \n"; + echo " \n"; + + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo "
\n"; + echo "
\n"; + echo " ".$text['label-sip_profile_settings']."\n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + $x = 0; + foreach($sip_profile_settings as $row) { + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + $x++; + } + echo "
".$text['label-sip_profile_setting_name']."".$text['label-sip_profile_setting_value']."".$text['label-sip_profile_setting_enabled']."".$text['label-sip_profile_setting_description']."
\n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo "
\n"; + echo "
\n"; - echo " ".$text['label-hostname']."\n"; + echo " ".$text['label-sip_profile_hostname']."\n"; echo "\n"; echo " \n"; echo "
\n"; - echo $text['description-hostname']."\n"; + echo $text['description-sip_profile_hostname']."\n"; echo "
\n"; - echo " ".$text['label-enabled']."\n"; + echo "\n"; + echo " ".$text['label-sip_profile_enabled']."\n"; echo "\n"; - echo " \n"; + echo " \n"; echo "
\n"; - echo $text['description-enabled']."\n"; + echo $text['description-sip_profile_enabled']."\n"; echo "
\n"; - echo " ".$text['label-description']."\n"; + echo "\n"; + echo " ".$text['label-sip_profile_description']."\n"; echo "\n"; - echo " \n"; + echo " \n"; echo "
\n"; - echo $text['description-description']."\n"; + echo $text['description-sip_profile_description']."\n"; echo "
\n"; if ($action == "update") { - echo " \n"; + echo " \n"; } - echo "
"; - echo " \n"; + echo " \n"; echo "
"; - echo "

"; echo "
"; - - if ($action == "update") { - require "sip_profile_settings.php"; - } + echo "

"; //include the footer require_once "resources/footer.php"; + ?>