From 31404dbcfb73559c32a7727c965de580f2062255 Mon Sep 17 00:00:00 2001 From: FusionPBX Date: Sat, 6 Aug 2016 10:16:23 -0600 Subject: [PATCH] Update device_vendor_function_edit.php Add ability to assign groups to vendor functions. --- app/devices/device_vendor_function_edit.php | 282 ++++++++++++++------ 1 file changed, 206 insertions(+), 76 deletions(-) diff --git a/app/devices/device_vendor_function_edit.php b/app/devices/device_vendor_function_edit.php index f7b9ea37c8..2e99681f5d 100644 --- a/app/devices/device_vendor_function_edit.php +++ b/app/devices/device_vendor_function_edit.php @@ -28,6 +28,22 @@ require_once "root.php"; require_once "resources/require.php"; +//delete the group from the menu item + if ($_REQUEST["a"] == "delete" && permission_exists("device_vendor_function_delete") && $_REQUEST["id"] != '') { + //get the id + $device_vendor_function_group_uuid = check_str($_REQUEST["id"]); + $device_vendor_function_uuid = check_str($_REQUEST["device_vendor_function_uuid"]); + $device_vendor_uuid = check_str($_REQUEST["device_vendor_uuid"]); + //delete the group from the users + $sql = "delete from v_device_vendor_function_groups "; + $sql .= "where device_vendor_function_group_uuid = '".$device_vendor_function_group_uuid."' "; + $db->exec(check_sql($sql)); + //redirect the browser + $_SESSION["message"] = $text['message-delete']; + header("Location: device_vendor_function_edit.php?id=".$device_vendor_function_uuid ."&device_vendor_uuid=".$device_vendor_uuid); + return; + } + //check permissions require_once "resources/check_auth.php"; if (permission_exists('device_vendor_function_add') || permission_exists('device_vendor_function_edit')) { @@ -38,10 +54,6 @@ exit; } -//add multi-lingual support - $language = new text; - $text = $language->get(); - //action add or update if (isset($_REQUEST["id"])) { $action = "update"; @@ -51,6 +63,10 @@ $action = "add"; } +//add multi-lingual support + $language = new text; + $text = $language->get(); + //set the parent uuid if (strlen($_GET["device_vendor_uuid"]) > 0) { $device_vendor_uuid = check_str($_GET["device_vendor_uuid"]); @@ -65,84 +81,115 @@ $description = check_str($_POST["description"]); } -if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) { +//process the http variables + if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) { - //get the uuid - if ($action == "update") { - $device_vendor_function_uuid = check_str($_POST["device_vendor_function_uuid"]); - } + //get the uuid + if ($action == "update") { + $device_vendor_function_uuid = check_str($_POST["device_vendor_function_uuid"]); + } - //check for all required data - $msg = ''; - //if (strlen($label) == 0) { $msg .= $text['message-required']." ".$text['label-label']."
\n"; } - if (strlen($name) == 0) { $msg .= $text['message-required']." ".$text['label-name']."
\n"; } - if (strlen($value) == 0) { $msg .= $text['message-required']." ".$text['label-value']."
\n"; } - if (strlen($enabled) == 0) { $msg .= $text['message-required']." ".$text['label-enabled']."
\n"; } - //if (strlen($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") { - if ($action == "add" && permission_exists('device_vendor_function_add')) { - $sql = "insert into v_device_vendor_functions "; - $sql .= "("; - $sql .= "device_vendor_function_uuid, "; - $sql .= "device_vendor_uuid, "; - //$sql .= "label, "; - $sql .= "name, "; - $sql .= "value, "; - $sql .= "enabled, "; - $sql .= "description "; - $sql .= ")"; - $sql .= "values "; - $sql .= "("; - $sql .= "'".uuid()."', "; - $sql .= "'$device_vendor_uuid', "; - //$sql .= "'$label', "; - $sql .= "'$name', "; - $sql .= "'$value', "; - $sql .= "'$enabled', "; - $sql .= "'$description' "; - $sql .= ")"; - $db->exec(check_sql($sql)); - unset($sql); - - $_SESSION["message"] = $text['message-add']; - header('Location: device_vendor_edit.php?id='.$device_vendor_uuid); + //check for all required data + $msg = ''; + //if (strlen($label) == 0) { $msg .= $text['message-required']." ".$text['label-label']."
\n"; } + if (strlen($name) == 0) { $msg .= $text['message-required']." ".$text['label-name']."
\n"; } + if (strlen($value) == 0) { $msg .= $text['message-required']." ".$text['label-value']."
\n"; } + if (strlen($enabled) == 0) { $msg .= $text['message-required']." ".$text['label-enabled']."
\n"; } + //if (strlen($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; + } - } //if ($action == "add") + //add or update the database + if ($_POST["persistformvar"] != "true") { - if ($action == "update" && permission_exists('device_vendor_function_edit')) { - $sql = "update v_device_vendor_functions set "; - $sql .= "device_vendor_uuid = '$device_vendor_uuid', "; - //$sql .= "label = '$label', "; - $sql .= "name = '$name', "; - $sql .= "value = '$value', "; - $sql .= "enabled = '$enabled', "; - $sql .= "description = '$description' "; - $sql .= "where device_vendor_function_uuid = '$device_vendor_function_uuid'"; - $db->exec(check_sql($sql)); - unset($sql); + //add vendor functions + if ($action == "add" && permission_exists('device_vendor_function_add')) { + $device_vendor_function_uuid = uuid(); + $sql = "insert into v_device_vendor_functions "; + $sql .= "("; + $sql .= "device_vendor_function_uuid, "; + $sql .= "device_vendor_uuid, "; + //$sql .= "label, "; + $sql .= "name, "; + $sql .= "value, "; + $sql .= "enabled, "; + $sql .= "description "; + $sql .= ")"; + $sql .= "values "; + $sql .= "("; + $sql .= "'".$device_vendor_function_uuid."', "; + $sql .= "'$device_vendor_uuid', "; + //$sql .= "'$label', "; + $sql .= "'$name', "; + $sql .= "'$value', "; + $sql .= "'$enabled', "; + $sql .= "'$description' "; + $sql .= ")"; + $db->exec(check_sql($sql)); + unset($sql); + } //if ($action == "add") - $_SESSION["message"] = $text['message-update']; - header('Location: device_vendor_edit.php?id='.$device_vendor_uuid); - return; + //update vendor functions + if ($action == "update" && permission_exists('device_vendor_function_edit')) { + $sql = "update v_device_vendor_functions set "; + $sql .= "device_vendor_uuid = '$device_vendor_uuid', "; + //$sql .= "label = '$label', "; + $sql .= "name = '$name', "; + $sql .= "value = '$value', "; + $sql .= "enabled = '$enabled', "; + $sql .= "description = '$description' "; + $sql .= "where device_vendor_function_uuid = '$device_vendor_function_uuid'"; + $db->exec(check_sql($sql)); + unset($sql); + } //if ($action == "update") - } //if ($action == "update") - } //if ($_POST["persistformvar"] != "true") -} //(count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) + //add a group to the menu + if (permission_exists('device_vendor_function_add') && $_REQUEST["group_uuid_name"] != '') { + + //get the group uuid and group_name + $group_data = explode('|', check_str($_REQUEST["group_uuid_name"])); + $group_uuid = $group_data[0]; + $group_name = $group_data[1]; + + //add the group to the menu + if (strlen($device_vendor_function_uuid) > 0) { + $device_vendor_function_group_uuid = uuid(); + $sql = "insert into v_device_vendor_function_groups "; + $sql .= "("; + $sql .= "device_vendor_function_group_uuid, "; + $sql .= "device_vendor_function_uuid, "; + $sql .= "device_vendor_uuid, "; + $sql .= "group_name, "; + $sql .= "group_uuid "; + $sql .= ")"; + $sql .= "values "; + $sql .= "("; + $sql .= "'".$device_vendor_function_group_uuid."', "; + $sql .= "'".$device_vendor_function_uuid."', "; + $sql .= "'".$device_vendor_uuid."', "; + $sql .= "'".$group_name."', "; + $sql .= "'".$group_uuid."' "; + $sql .= ")"; + $db->exec($sql); + } + } + + //redirect the user + $_SESSION["message"] = $text['message-'.$action]; + header("Location: device_vendor_function_edit.php?id=".$device_vendor_function_uuid ."&device_vendor_uuid=".$device_vendor_uuid); + return; + } //if ($_POST["persistformvar"] != "true") + } //(count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) //pre-populate the form if (count($_GET) > 0 && $_POST["persistformvar"] != "true") { @@ -162,6 +209,48 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) { unset ($prep_statement); } +//group groups assigned + $sql = "select "; + $sql .= " fg.*, g.domain_uuid as group_domain_uuid "; + $sql .= "from "; + $sql .= " v_device_vendor_function_groups as fg, "; + $sql .= " v_groups as g "; + $sql .= "where "; + $sql .= " fg.group_uuid = g.group_uuid "; + //$sql .= " and fg.device_vendor_uuid = :device_vendor_uuid "; + $sql .= " and fg.device_vendor_uuid = '$device_vendor_uuid' "; + //$sql .= " and fg.device_vendor_function_uuid = :device_vendor_function_uuid "; + $sql .= " and fg.device_vendor_function_uuid = '$device_vendor_function_uuid' "; + $sql .= "order by "; + $sql .= " g.domain_uuid desc, "; + $sql .= " g.group_name asc "; + //echo $sql; + //exit; + $prep_statement = $db->prepare(check_sql($sql)); + $prep_statement->bindParam(':device_vendor_uuid', $device_vendor_uuid); + $prep_statement->bindParam(':device_vendor_function_uuid', $device_vendor_function_uuid); + $prep_statement->execute(); + $function_groups = $prep_statement->fetchAll(PDO::FETCH_NAMED); + unset($sql, $prep_statement); + +//set the assigned_groups array + foreach($menu_item_groups as $field) { + if (strlen($field['group_name']) > 0) { + $assigned_groups[] = $field['group_uuid']; + } + } + +//get the groups + $sql = "select * from v_groups "; + if (sizeof($assigned_groups) > 0) { + $sql .= "where group_uuid not in ('".implode("','",$assigned_groups)."') "; + } + $sql .= "order by domain_uuid desc, group_name asc "; + $prep_statement = $db->prepare(check_sql($sql)); + $prep_statement->execute(); + $groups = $prep_statement->fetchAll(PDO::FETCH_NAMED); + unset($sql, $prep_statement); + //show the header require_once "resources/header.php"; @@ -209,6 +298,47 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) { echo "\n"; echo "\n"; + //echo "
\n";
+	//print_r($function_groups);
+	//echo "
\n"; + echo " "; + echo " ".$text['label-groups'].""; + echo " "; + if (is_array($function_groups)) { + echo "\n"; + foreach($function_groups as $field) { + if (strlen($field['group_name']) > 0) { + echo "\n"; + echo " \n"; + if (permission_exists('group_member_delete') || if_group("superadmin")) { + echo " "; + } + echo "\n"; + } + } + echo "
"; + echo $field['group_name'].(($field['group_domain_uuid'] != '') ? "@".$_SESSION['domains'][$field['group_domain_uuid']]['domain_name'] : null); + echo " "; + echo "".$v_link_label_delete.""; + echo "
\n"; + } + if (is_array($groups)) { + echo "
\n"; + echo ""; + echo "\n"; + } + echo " "; + echo " "; + echo "\n"; echo "\n"; echo " ".$text['label-enabled']."\n"; @@ -260,4 +390,4 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) { //include the footer require_once "resources/footer.php"; -?> \ No newline at end of file +?>