diff --git a/app/access_controls/access_control_edit.php b/app/access_controls/access_control_edit.php index ba4959f44c..8597934ff2 100644 --- a/app/access_controls/access_control_edit.php +++ b/app/access_controls/access_control_edit.php @@ -51,6 +51,21 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) { + //delete the access control + if (permission_exists('access_control_delete')) { + if ($_POST['action'] == 'delete' && is_uuid($access_control_uuid)) { + //prepare + $array[0]['checked'] = 'true'; + $array[0]['uuid'] = $access_control_uuid; + //delete + $obj = new access_controls; + $obj->delete($array); + //redirect + header('Location: access_controls.php'); + exit; + } + } + //get the primary key if ($action == "update") { $access_control_uuid = $_POST["access_control_uuid"]; @@ -90,15 +105,17 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) { $execute = true; $access_control_uuid = uuid(); - //add the message + //set the message message::add($text['message-add']); + + //set redirect url + $redirect_url = 'access_control_edit.php?id='.$access_control_uuid; } if ($action == "update" && permission_exists('access_control_edit')) { $execute = true; - //$access_control_uuid //already set - //add the message + //set the message message::add($text['message-update']); } @@ -123,11 +140,11 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) { } //redirect the user - header("Location: access_controls.php"); - return; + header('Location: '.($redirect_url ? $redirect_url : 'access_controls.php')); + exit; + } - } //if ($_POST["persistformvar"] != "true") -} //(count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) +} //pre-populate the form if (count($_GET) > 0 && $_POST["persistformvar"] != "true" && is_uuid($_GET["id"])) { @@ -158,7 +175,10 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) { echo "\n"; echo "".$text['title-access_control']."

\n"; echo "\n"; - echo " "; + echo " "; + if ($action == 'update' && permission_exists('access_control_delete')) { + echo button::create(['type'=>'submit','label'=>$text['button-delete'],'icon'=>$_SESSION['theme']['button_icon_delete'],'name'=>'action','value'=>'delete','onclick'=>"if (confirm('".$text['confirm-delete']."')) { document.getElementById('frm').submit(); } else { this.blur(); return false; }",'style'=>'margin-right: 15px;']); + } echo " "; echo "\n"; echo "\n"; @@ -229,4 +249,4 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) { //include the footer require_once "resources/footer.php"; -?> +?> \ No newline at end of file diff --git a/app/access_controls/access_controls.php b/app/access_controls/access_controls.php index 71f5de23f8..69e027e3fc 100644 --- a/app/access_controls/access_controls.php +++ b/app/access_controls/access_controls.php @@ -78,11 +78,10 @@ $search = strtolower($_GET["search"]); if (strlen($search) > 0) { $sql_search = " ("; - $sql_search .= " lower(access_control_name) like :search "; - $sql_search .= " or lower(access_control_default) like :search "; - $sql_search .= " or lower(access_control_description) like :search "; + $sql_search .= "lower(access_control_name) like :search "; + $sql_search .= "or lower(access_control_default) like :search "; + $sql_search .= "or lower(access_control_description) like :search "; $sql_search .= ") "; - $parameters['search'] = '%'.$search.'%'; } @@ -169,7 +168,7 @@ echo "\n"; echo " \n"; echo " \n"; - echo " \n"; + echo " \n"; echo " \n"; echo " ".escape($row['access_control_name'])."\n"; echo " ".escape($row['access_control_default'])."\n"; diff --git a/app/access_controls/resources/classes/access_controls.php b/app/access_controls/resources/classes/access_controls.php index cc8143c8f8..3ca8870335 100644 --- a/app/access_controls/resources/classes/access_controls.php +++ b/app/access_controls/resources/classes/access_controls.php @@ -9,14 +9,34 @@ if (!class_exists('access_controls')) { class access_controls { /** - * Called when the object is created + * declare private variables + */ + private $app_name; + private $app_uuid; + private $permission_prefix; + private $list_page; + private $table; + private $uuid_prefix; + private $enabled_prefix; + + /** + * called when the object is created */ public function __construct() { + //assign private variables + $this->app_name = 'access_controls'; + $this->app_uuid = '1416a250-f6e1-4edc-91a6-5c9b883638fd'; + $this->permission_prefix = 'access_control'; + $this->list_page = 'access_controls.php'; + $this->table = 'access_controls'; + $this->uuid_prefix = 'access_control_'; + $this->enabled_prefix = 'access_control_'; + } /** - * Called when there are no references to a particular object + * called when there are no references to a particular object * unset the variables used in the class */ public function __destruct() { @@ -26,10 +46,10 @@ if (!class_exists('access_controls')) { } /** - * delete access controls + * delete records */ - public function delete($access_controls) { - if (permission_exists('access_control_delete') && permission_exists('access_control_node_delete')) { + public function delete($records) { + if (permission_exists($this->permission_prefix.'_delete')) { //add multi-lingual support $language = new text; @@ -39,40 +59,44 @@ if (!class_exists('access_controls')) { $token = new token; if (!$token->validate($_SERVER['PHP_SELF'])) { message::add($text['message-invalid_token'],'negative'); - header('Location: access_controls.php'); + header('Location: '.$this->list_page); exit; } - //delete multiple access controls - if (is_array($access_controls) && @sizeof($access_controls) != 0) { + //delete multiple records + if (is_array($records) && @sizeof($records) != 0) { + //build the delete array - foreach($access_controls as $x => $row) { - if ($row['checked'] == 'true' && is_uuid($row['access_control_uuid'])) { - $array['access_controls'][$x]['access_control_uuid'] = $row['access_control_uuid']; - $array['access_control_nodes'][$x]['access_control_uuid'] = $row['access_control_uuid']; + foreach($records as $x => $record) { + if ($record['checked'] == 'true' && is_uuid($record['uuid'])) { + $array[$this->table][$x][$this->uuid_prefix.'uuid'] = $record['uuid']; + $array['access_control_nodes'][$x][$this->uuid_prefix.'uuid'] = $record['uuid']; } } + //delete the checked rows if (is_array($array) && @sizeof($array) != 0) { + //execute delete $database = new database; - $database->app_name = 'access_controls'; - $database->app_uuid = '1416a250-f6e1-4edc-91a6-5c9b883638fd'; + $database->app_name = $this->app_name; + $database->app_uuid = $this->app_uuid; $database->delete($array); unset($array); + //set message message::add($text['message-delete']); } - unset($access_controls); + unset($records); } } } /** - * copy access controls + * copy records */ - public function copy($access_controls) { - if (permission_exists('access_control_add') && permission_exists('access_control_node_add')) { + public function copy($records) { + if (permission_exists($this->permission_prefix.'_add')) { //add multi-lingual support $language = new text; @@ -82,44 +106,44 @@ if (!class_exists('access_controls')) { $token = new token; if (!$token->validate($_SERVER['PHP_SELF'])) { message::add($text['message-invalid_token'],'negative'); - header('Location: access_controls.php'); + header('Location: '.$this->list_page); exit; } - //copy the checked access controls - if (is_array($access_controls) && @sizeof($access_controls) != 0) { + //copy the checked records + if (is_array($records) && @sizeof($records) != 0) { - //get checked access controls - foreach($access_controls as $x => $row) { - if ($row['checked'] == 'true' && is_uuid($row['access_control_uuid'])) { - $access_control_uuids[] = "access_control_uuid = '".$row['access_control_uuid']."'"; + //get checked records + foreach($records as $x => $record) { + if ($record['checked'] == 'true' && is_uuid($record['uuid'])) { + $record_uuids[] = $this->uuid_prefix."uuid = '".$record['uuid']."'"; } } + //create insert array from existing data - if (is_array($access_control_uuids) && @sizeof($access_control_uuids) != 0) { - $sql = "select * from v_access_controls "; - $sql .= "where ".implode(' or ', $access_control_uuids)." "; + if (is_array($record_uuids) && @sizeof($record_uuids) != 0) { + $sql = "select * from v_".$this->table." "; + $sql .= "where ".implode(' or ', $record_uuids)." "; $database = new database; $rows = $database->select($sql, $parameters, 'all'); if (is_array($rows) && @sizeof($rows) != 0) { $y = 0; foreach ($rows as $x => $row) { - //access control - $access_control_uuid = uuid(); - $array['access_controls'][$x]['access_control_uuid'] = $access_control_uuid; - $array['access_controls'][$x]['access_control_name'] = $row['access_control_name']; - $array['access_controls'][$x]['access_control_default'] = $row['access_control_default']; - $array['access_controls'][$x]['access_control_description'] = trim($row['access_control_description'].' ('.$text['label-copy'].')'); - //access control nodes + //primary table + $primary_uuid = uuid(); + $array[$this->table][$x][$this->uuid_prefix.'uuid'] = $primary_uuid; + $array[$this->table][$x]['access_control_name'] = $row['access_control_name']; + $array[$this->table][$x]['access_control_default'] = $row['access_control_default']; + $array[$this->table][$x]['access_control_description'] = trim($row['access_control_description'].' ('.$text['label-copy'].')'); + //sub table $sql_2 = "select * from v_access_control_nodes where access_control_uuid = :access_control_uuid"; $parameters_2['access_control_uuid'] = $row['access_control_uuid']; $database = new database; $rows_2 = $database->select($sql_2, $parameters_2, 'all'); if (is_array($rows_2) && @sizeof($rows_2) != 0) { foreach ($rows_2 as $row_2) { - $access_control_node_uuid = uuid(); - $array['access_control_nodes'][$y]['access_control_node_uuid'] = $access_control_node_uuid; - $array['access_control_nodes'][$y]['access_control_uuid'] = $access_control_uuid; + $array['access_control_nodes'][$y]['access_control_node_uuid'] = uuid(); + $array['access_control_nodes'][$y]['access_control_uuid'] = $primary_uuid; $array['access_control_nodes'][$y]['node_type'] = $row_2['node_type']; $array['access_control_nodes'][$y]['node_cidr'] = $row_2['node_cidr']; $array['access_control_nodes'][$y]['node_domain'] = $row_2['node_domain']; @@ -132,19 +156,22 @@ if (!class_exists('access_controls')) { } unset($sql, $parameters, $rows, $row); } + //save the changes and set the message if (is_array($array) && @sizeof($array) != 0) { + //save the array $database = new database; - $database->app_name = 'access_controls'; - $database->app_uuid = '1416a250-f6e1-4edc-91a6-5c9b883638fd'; + $database->app_name = $this->app_name; + $database->app_uuid = $this->app_uuid; $database->save($array); unset($array); //set message message::add($text['message-copy']); + } - unset($access_controls); + unset($records); } } @@ -153,9 +180,4 @@ if (!class_exists('access_controls')) { } } -/* -$obj = new access_controls; -$obj->delete(); -*/ - ?> \ No newline at end of file diff --git a/app/bridges/bridge_edit.php b/app/bridges/bridge_edit.php index d5acdd822d..2d9c1a5f97 100644 --- a/app/bridges/bridge_edit.php +++ b/app/bridges/bridge_edit.php @@ -62,11 +62,11 @@ if (permission_exists('bridge_delete')) { if ($_POST['action'] == 'delete' && is_uuid($bridge_uuid)) { //prepare - $bridges[0]['checked'] = 'true'; - $bridges[0]['bridge_uuid'] = $bridge_uuid; + $array[0]['checked'] = 'true'; + $array[0]['uuid'] = $bridge_uuid; //delete $obj = new bridges; - $obj->delete($bridges); + $obj->delete($array); //redirect header('Location: bridges.php'); exit; @@ -169,8 +169,8 @@ echo "".$text['title-bridge']."

\n"; echo "\n"; echo ""; - if ($action == 'update') { - echo ""; + if ($action == 'update' && permission_exists('bridge_delete')) { + echo button::create(['type'=>'submit','label'=>$text['button-delete'],'icon'=>$_SESSION['theme']['button_icon_delete'],'name'=>'action','value'=>'delete','onclick'=>"if (confirm('".$text['confirm-delete']."')) { document.getElementById('frm').submit(); } else { this.blur(); return false; }",'style'=>'margin-right: 15px;']); } echo ""; echo "\n"; diff --git a/app/bridges/bridges.php b/app/bridges/bridges.php index 08625fd64e..e86956d4be 100644 --- a/app/bridges/bridges.php +++ b/app/bridges/bridges.php @@ -90,11 +90,10 @@ $search = strtolower($_GET["search"]); if (strlen($search) > 0) { $sql_search = " ("; - $sql_search .= " lower(bridge_name) like :search "; - $sql_search .= " or lower(bridge_destination) like :search "; - $sql_search .= " or lower(bridge_enabled) like :search "; + $sql_search .= "lower(bridge_name) like :search "; + $sql_search .= "or lower(bridge_destination) like :search "; + $sql_search .= "or lower(bridge_enabled) like :search "; $sql_search .= ") "; - $parameters['search'] = '%'.$search.'%'; } @@ -208,7 +207,7 @@ echo "\n"; echo " \n"; echo " \n"; - echo " \n"; + echo " \n"; echo " \n"; if ($_GET['show'] == "all" && permission_exists('bridge_all')) { echo " ".escape($_SESSION['domains'][$row['domain_uuid']]['domain_name'])."\n"; diff --git a/app/bridges/resources/classes/bridges.php b/app/bridges/resources/classes/bridges.php index c59b8238a0..010c677196 100644 --- a/app/bridges/resources/classes/bridges.php +++ b/app/bridges/resources/classes/bridges.php @@ -9,14 +9,34 @@ if (!class_exists('bridges')) { class bridges { /** - * Called when the object is created + * declare private variables + */ + private $app_name; + private $app_uuid; + private $permission_prefix; + private $list_page; + private $table; + private $uuid_prefix; + private $enabled_prefix; + + /** + * called when the object is created */ public function __construct() { + //assign private variables + $this->app_name = 'bridges'; + $this->app_uuid = 'a6a7c4c5-340a-43ce-bcbc-2ed9bab8659d'; + $this->permission_prefix = 'bridge'; + $this->list_page = 'bridges.php'; + $this->table = 'bridges'; + $this->uuid_prefix = 'bridge_'; + $this->enabled_prefix = 'bridge_'; + } /** - * Called when there are no references to a particular object + * called when there are no references to a particular object * unset the variables used in the class */ public function __destruct() { @@ -26,10 +46,10 @@ if (!class_exists('bridges')) { } /** - * delete bridges + * delete records */ - public function delete($bridges) { - if (permission_exists('bridge_delete')) { + public function delete($records) { + if (permission_exists($this->permission_prefix.'_delete')) { //add multi-lingual support $language = new text; @@ -39,40 +59,44 @@ if (!class_exists('bridges')) { $token = new token; if (!$token->validate($_SERVER['PHP_SELF'])) { message::add($text['message-invalid_token'],'negative'); - header('Location: bridges.php'); + header('Location: '.$this->list_page); exit; } - //delete multiple bridges - if (is_array($bridges) && @sizeof($bridges) != 0) { + //delete multiple records + if (is_array($records) && @sizeof($records) != 0) { + //build the delete array - foreach($bridges as $x => $row) { - if ($row['checked'] == 'true' && is_uuid($row['bridge_uuid'])) { - $array['bridges'][$x]['bridge_uuid'] = $row['bridge_uuid']; - $array['bridges'][$x]['domain_uuid'] = $_SESSION['domain_uuid']; + foreach($records as $x => $record) { + if ($record['checked'] == 'true' && is_uuid($record['uuid'])) { + $array[$this->table][$x][$this->uuid_prefix.'uuid'] = $record['uuid']; + $array[$this->table][$x]['domain_uuid'] = $_SESSION['domain_uuid']; } } + //delete the checked rows if (is_array($array) && @sizeof($array) != 0) { + //execute delete $database = new database; - $database->app_name = 'bridges'; - $database->app_uuid = 'a6a7c4c5-340a-43ce-bcbc-2ed9bab8659d'; + $database->app_name = $this->app_name; + $database->app_uuid = $this->app_uuid; $database->delete($array); unset($array); + //set message message::add($text['message-delete']); } - unset($bridges); + unset($records); } } } /** - * toggle bridges + * toggle records */ - public function toggle($bridges) { - if (permission_exists('bridge_edit')) { + public function toggle($records) { + if (permission_exists($this->permission_prefix.'_edit')) { //add multi-lingual support $language = new text; @@ -82,28 +106,29 @@ if (!class_exists('bridges')) { $token = new token; if (!$token->validate($_SERVER['PHP_SELF'])) { message::add($text['message-invalid_token'],'negative'); - header('Location: bridges.php'); + header('Location: '.$this->list_page); exit; } - //toggle the checked bridges - if (is_array($bridges) && @sizeof($bridges) != 0) { - //get current enabled state of checked bridges - foreach($bridges as $x => $row) { - if ($row['checked'] == 'true' && is_uuid($row['bridge_uuid'])) { - $bridge_uuids[] = "bridge_uuid = '".$row['bridge_uuid']."'"; + //toggle the checked records + if (is_array($records) && @sizeof($records) != 0) { + + //get current enabled state + foreach($records as $x => $record) { + if ($record['checked'] == 'true' && is_uuid($record['uuid'])) { + $record_uuids[] = $this->uuid_prefix."uuid = '".$record['uuid']."'"; } } - if (is_array($bridge_uuids) && @sizeof($bridge_uuids) != 0) { - $sql = "select bridge_uuid, bridge_enabled from v_bridges "; + if (is_array($record_uuids) && @sizeof($record_uuids) != 0) { + $sql = "select ".$this->uuid_prefix."uuid as uuid, ".$this->enabled_prefix."enabled as enabled from v_".$this->table." "; $sql .= "where (domain_uuid = :domain_uuid or domain_uuid is null) "; - $sql .= "and ( ".implode(' or ', $bridge_uuids)." ) "; + $sql .= "and ( ".implode(' or ', $record_uuids)." ) "; $parameters['domain_uuid'] = $_SESSION['domain_uuid']; $database = new database; $rows = $database->select($sql, $parameters, 'all'); if (is_array($rows) && @sizeof($rows) != 0) { foreach ($rows as $row) { - $bridge_states[$row['bridge_uuid']] = $row['bridge_enabled']; + $states[$row['uuid']] = $row['enabled']; } } unset($sql, $parameters, $rows, $row); @@ -111,34 +136,36 @@ if (!class_exists('bridges')) { //build update array $x = 0; - foreach($bridge_states as $bridge_uuid => $bridge_state) { - $array['bridges'][$x]['bridge_uuid'] = $bridge_uuid; - $array['bridges'][$x]['bridge_enabled'] = $bridge_state == 'true' ? 'false' : 'true'; + foreach($states as $uuid => $state) { + $array[$this->table][$x][$this->uuid_prefix.'uuid'] = $uuid; + $array[$this->table][$x][$this->enabled_prefix.'enabled'] = $state == 'true' ? 'false' : 'true'; $x++; } //save the changes if (is_array($array) && @sizeof($array) != 0) { + //save the array $database = new database; - $database->app_name = 'bridges'; - $database->app_uuid = 'a6a7c4c5-340a-43ce-bcbc-2ed9bab8659d'; + $database->app_name = $this->app_name; + $database->app_uuid = $this->app_uuid; $database->save($array); unset($array); + //set message message::add($text['message-toggle']); } - unset($bridges, $bridge_states); + unset($records, $states); } } } /** - * copy bridges + * copy records */ - public function copy($bridges) { - if (permission_exists('bridge_add')) { + public function copy($records) { + if (permission_exists($this->permission_prefix.'_add')) { //add multi-lingual support $language = new text; @@ -148,52 +175,57 @@ if (!class_exists('bridges')) { $token = new token; if (!$token->validate($_SERVER['PHP_SELF'])) { message::add($text['message-invalid_token'],'negative'); - header('Location: bridges.php'); + header('Location: '.$this->list_page); exit; } - //copy the checked bridges - if (is_array($bridges) && @sizeof($bridges) != 0) { + //copy the checked records + if (is_array($records) && @sizeof($records) != 0) { - //get checked bridges - foreach($bridges as $x => $row) { - if ($row['checked'] == 'true' && is_uuid($row['bridge_uuid'])) { - $bridge_uuids[] = "bridge_uuid = '".$row['bridge_uuid']."'"; + //get checked records + foreach($records as $x => $record) { + if ($record['checked'] == 'true' && is_uuid($record['uuid'])) { + $record_uuids[] = $this->uuid_prefix."uuid = '".$record['uuid']."'"; } } + //create insert array from existing data - if (is_array($bridge_uuids) && @sizeof($bridge_uuids) != 0) { - $sql = "select * from v_bridges "; + if (is_array($record_uuids) && @sizeof($record_uuids) != 0) { + $sql = "select * from v_".$this->table." "; $sql .= "where (domain_uuid = :domain_uuid or domain_uuid is null) "; - $sql .= "and ( ".implode(' or ', $bridge_uuids)." ) "; + $sql .= "and ( ".implode(' or ', $record_uuids)." ) "; $parameters['domain_uuid'] = $_SESSION['domain_uuid']; $database = new database; $rows = $database->select($sql, $parameters, 'all'); if (is_array($rows) && @sizeof($rows) != 0) { foreach ($rows as $x => $row) { - $array['bridges'][$x]['bridge_uuid'] = uuid(); - $array['bridges'][$x]['domain_uuid'] = $row['domain_uuid']; - $array['bridges'][$x]['bridge_name'] = $row['bridge_name']; - $array['bridges'][$x]['bridge_destination'] = $row['bridge_destination']; - $array['bridges'][$x]['bridge_enabled'] = $row['bridge_enabled']; - $array['bridges'][$x]['bridge_description'] = trim($row['bridge_description'].' ('.$text['label-copy'].')'); + $new_uuid = uuid(); + $array[$this->table][$x][$this->uuid_prefix.'uuid'] = $new_uuid; + $array[$this->table][$x]['domain_uuid'] = $row['domain_uuid']; + $array[$this->table][$x]['bridge_name'] = $row['bridge_name']; + $array[$this->table][$x]['bridge_destination'] = $row['bridge_destination']; + $array[$this->table][$x]['bridge_enabled'] = $row['bridge_enabled']; + $array[$this->table][$x]['bridge_description'] = trim($row['bridge_description'].' ('.$text['label-copy'].')'); } } unset($sql, $parameters, $rows, $row); } + //save the changes and set the message if (is_array($array) && @sizeof($array) != 0) { + //save the array $database = new database; - $database->app_name = 'bridges'; - $database->app_uuid = 'a6a7c4c5-340a-43ce-bcbc-2ed9bab8659d'; + $database->app_name = $this->app_name; + $database->app_uuid = $this->app_uuid; $database->save($array); unset($array); //set message message::add($text['message-copy']); + } - unset($bridges); + unset($records); } } @@ -202,9 +234,4 @@ if (!class_exists('bridges')) { } } -/* -$obj = new bridges; -$obj->delete(); -*/ - ?> \ No newline at end of file diff --git a/app/call_block/call_block.php b/app/call_block/call_block.php index 7524ff66be..4abcefad0b 100644 --- a/app/call_block/call_block.php +++ b/app/call_block/call_block.php @@ -91,11 +91,10 @@ $search = strtolower($_GET["search"]); if (strlen($search) > 0) { $sql_search = " ("; - $sql_search .= " lower(call_block_name) like :search "; - $sql_search .= " or lower(call_block_number) like :search "; - $sql_search .= " or lower(call_block_description) like :search "; + $sql_search .= "lower(call_block_name) like :search "; + $sql_search .= "or lower(call_block_number) like :search "; + $sql_search .= "or lower(call_block_description) like :search "; $sql_search .= ") "; - $parameters['search'] = '%'.$search.'%'; } @@ -148,16 +147,6 @@ if (permission_exists('call_block_delete')) { echo button::create(['type'=>'button','label'=>$text['button-delete'],'icon'=>$_SESSION['theme']['button_icon_delete'],'onclick'=>"if (confirm('".$text['confirm-delete']."')) { list_action_set('delete'); list_form_submit('form_list'); } else { this.blur(); return false; }"]); } - /* - if (permission_exists('call_block_all')) { - if ($_GET['show'] == 'all') { - echo " "; - } - else { - echo button::create(['type'=>'button','label'=>$text['button-show_all'],'icon'=>$_SESSION['theme']['button_icon_all'],'link'=>'?show=all']); - } - } - */ echo "