diff --git a/app/devices/app_config.php b/app/devices/app_config.php index bab1ffa1d4..a4b37c91ed 100644 --- a/app/devices/app_config.php +++ b/app/devices/app_config.php @@ -223,6 +223,9 @@ $apps[$x]['permissions'][$y]['name'] = 'device_vendor_delete'; $apps[$x]['permissions'][$y]['groups'][] = 'superadmin'; $y++; + $apps[$x]['permissions'][$y]['name'] = 'device_vendor_restore'; + $apps[$x]['permissions'][$y]['groups'][] = 'superadmin'; + $y++; $apps[$x]['permissions'][$y]['name'] = 'device_vendor_function_view'; $apps[$x]['permissions'][$y]['groups'][] = 'superadmin'; $y++; @@ -2206,5 +2209,24 @@ $vendors[$y]['functions'][$z]['value'] = "47"; $vendors[$y]['functions'][$z]['groups'][] = "superadmin"; $vendors[$y]['functions'][$z]['groups'][] = "admin"; - + $y++; //vendors array index + $z=0; //functions array index + $vendors[$y]['name'] = "audiocodes"; + $vendors[$y]['functions'][$z]['label'] = "label-blf"; + $vendors[$y]['functions'][$z]['name'] = "blf"; + $vendors[$y]['functions'][$z]['value'] = "SPEED_DIAL_BLF"; + $vendors[$y]['functions'][$z]['groups'][] = "superadmin"; + $vendors[$y]['functions'][$z]['groups'][] = "admin"; + $z++; + $vendors[$y]['functions'][$z]['label'] = "label-speed_dial"; + $vendors[$y]['functions'][$z]['name'] = "speed_dial"; + $vendors[$y]['functions'][$z]['value'] = "SPEED_DIAL"; + $vendors[$y]['functions'][$z]['groups'][] = "superadmin"; + $vendors[$y]['functions'][$z]['groups'][] = "admin"; + $z++; + $vendors[$y]['functions'][$z]['label'] = "label-page"; + $vendors[$y]['functions'][$z]['name'] = "page"; + $vendors[$y]['functions'][$z]['value'] = "PAGING"; + $vendors[$y]['functions'][$z]['groups'][] = "superadmin"; + $vendors[$y]['functions'][$z]['groups'][] = "admin"; ?> diff --git a/app/devices/device_vendor_restore.php b/app/devices/device_vendor_restore.php new file mode 100644 index 0000000000..a7d53d10e1 --- /dev/null +++ b/app/devices/device_vendor_restore.php @@ -0,0 +1,165 @@ + + 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 +*/ + +//includes + require_once "root.php"; + require_once "resources/require.php"; + +//check permissions + require_once "resources/check_auth.php"; + if (permission_exists('device_vendor_restore')) { + //access granted + } + else { + echo "access denied"; + exit; + } + +//add multi-lingual support + $language = new text; + $text = $language->get(); + + +//flush everything + $sql = "delete from v_device_vendors"; + $db->exec(check_sql($sql)); + unset($sql); + + $sql = "delete from v_device_vendor_functions"; + $db->exec(check_sql($sql)); + unset($sql); + + $sql = "delete from v_device_vendor_function_groups"; + $db->exec(check_sql($sql)); + unset($sql); + +//add device vendor functions to the database + $sql = "select count(*) as num_rows from v_device_vendors; "; + $prep_statement = $db->prepare($sql); + if ($prep_statement) { + $prep_statement->execute(); + $row = $prep_statement->fetch(PDO::FETCH_ASSOC); + if ($row['num_rows'] == 0) { + + //get the vendor array + require_once $_SERVER["DOCUMENT_ROOT"].'/'.PROJECT_PATH.'/app/devices/app_config.php'; + + //get the groups and create an array to use the name to get the uuid + $sql = "select * from v_groups; "; + $prep_statement = $db->prepare($sql); + $prep_statement->execute(); + $groups = $prep_statement->fetchAll(PDO::FETCH_ASSOC); + unset($prep_statement); + foreach ($groups as $row) { + if ($row['domain_uuid'] == '') { + $group_uuids[$row['group_name']] = $row['group_uuid']; + } + } + + //process the array + foreach ($vendors as $vendor) { + //insert the data into the database + $device_vendor_uuid = uuid(); + $sql = "insert into v_device_vendors "; + $sql .= "("; + $sql .= "device_vendor_uuid, "; + $sql .= "name, "; + $sql .= "enabled "; + $sql .= ") "; + $sql .= "values "; + $sql .= "( "; + $sql .= "'".$device_vendor_uuid."', "; + $sql .= "'".$vendor['name']."', "; + $sql .= "'true' "; + $sql .= ");"; + //echo $sql."\n"; + $db->exec(check_sql($sql)); + unset($sql); + + //add the vendor functions + foreach ($vendor['functions'] as $function) { + //get the id + $device_vendor_function_uuid = uuid(); + //add the device vendor funtction + $sql = "insert into v_device_vendor_functions "; + $sql .= "("; + $sql .= "device_vendor_uuid, "; + $sql .= "device_vendor_function_uuid, "; + //$sql .= "label, "; + $sql .= "name, "; + $sql .= "value, "; + $sql .= "enabled, "; + $sql .= "description "; + $sql .= ") "; + $sql .= "values "; + $sql .= "( "; + $sql .= "'".$device_vendor_uuid."', "; + $sql .= "'".$device_vendor_function_uuid."', "; + //$sql .= "'".$function['label']."', "; + $sql .= "'".$function['name']."', "; + $sql .= "'".$function['value']."', "; + $sql .= "'true', "; + $sql .= "'".$function['description']."' "; + $sql .= ");"; + //echo $sql."\n"; + $db->exec(check_sql($sql)); + unset($sql); + + //add the device vendor function groups + if (is_array($function['groups'])) { + $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 "; + $i = 0; + foreach ($function['groups'] as $group_name) { + if ($i == 0) { $sql .= "("; } else { $sql .= ",("; } + $sql .= "'".uuid()."', "; + $sql .= "'".$device_vendor_function_uuid."', "; + $sql .= "'".$device_vendor_uuid."', "; + $sql .= "'$group_name', "; + $sql .= "'".$group_uuids[$group_name]."' "; + $sql .= ")"; + $i++; + } + $db->exec($sql); + } + } + } + + } //if num_rows + } // if prep_statement + + $_SESSION['message'] = $text['message-restore']; + header('Location: device_vendors.php'); + +?> diff --git a/app/devices/device_vendors.php b/app/devices/device_vendors.php index ab78a84bd9..4b179441b3 100644 --- a/app/devices/device_vendors.php +++ b/app/devices/device_vendors.php @@ -104,6 +104,9 @@ echo " ".$text['title-device_vendors']."\n"; echo "
\n"; echo " \n"; + if (permission_exists('device_vendor_restore')) { + echo " "; + } echo " "; echo " \n"; echo " \n"; @@ -179,4 +182,4 @@ //include the footer require_once "resources/footer.php"; -?> \ No newline at end of file +?>