diff --git a/app/music_on_hold/app_config.php b/app/music_on_hold/app_config.php index 6b22039d4e..dc2d95eb1a 100644 --- a/app/music_on_hold/app_config.php +++ b/app/music_on_hold/app_config.php @@ -37,6 +37,15 @@ $apps[$x]['menu'][0]['groups'][] = 'admin'; //permission details + $apps[$x]['permissions'][0]['name'] = 'music_on_hold_default_view'; + $apps[$x]['permissions'][0]['groups'][] = 'superadmin'; + + $apps[$x]['permissions'][1]['name'] = 'music_on_hold_default_add'; + $apps[$x]['permissions'][1]['groups'][] = 'superadmin'; + + $apps[$x]['permissions'][2]['name'] = 'music_on_hold_default_delete'; + $apps[$x]['permissions'][2]['groups'][] = 'superadmin'; + $apps[$x]['permissions'][0]['name'] = 'music_on_hold_view'; $apps[$x]['permissions'][0]['groups'][] = 'superadmin'; $apps[$x]['permissions'][0]['groups'][] = 'admin'; @@ -48,4 +57,5 @@ $apps[$x]['permissions'][2]['name'] = 'music_on_hold_delete'; $apps[$x]['permissions'][2]['groups'][] = 'superadmin'; $apps[$x]['permissions'][1]['groups'][] = 'admin'; + ?> \ No newline at end of file diff --git a/app/music_on_hold/music_on_hold.php b/app/music_on_hold/music_on_hold.php index d195c4b270..21a5ca20d3 100644 --- a/app/music_on_hold/music_on_hold.php +++ b/app/music_on_hold/music_on_hold.php @@ -27,7 +27,7 @@ include "root.php"; require_once "includes/require.php"; require_once "includes/checkauth.php"; -if (permission_exists('music_on_hold_view')) { +if (permission_exists('music_on_hold_view') || permission_exists('music_on_hold_default_view')) { //access granted } else { @@ -38,18 +38,18 @@ else { require_once "includes/paging.php"; $sampling_rate_dirs = Array(8000, 16000, 32000, 48000); -$dir_music_on_hold = $_SESSION['switch']['sounds']['dir'].'/music'; +$music_on_hold_dir = $_SESSION['switch']['sounds']['dir'].'/music'; ini_set(max_execution_time,7200); $order_by = $_GET["order_by"]; $order = $_GET["order"]; if ($_GET['a'] == "download") { - $category_folder = $_GET['category']; + $category_dir = $_GET['category']; $sampling_rate_dir = $_GET['sampling_rate']; - if ($category_folder != '') { - $path_mod = $category_folder."/"; + if ($category_dir != '') { + $path_mod = $category_dir."/"; if (count($_SESSION['domains']) > 1) { $path_mod = $_SESSION["domain_name"]."/".$path_mod; @@ -58,17 +58,17 @@ if ($_GET['a'] == "download") { session_cache_limiter('public'); if ($_GET['type'] = "moh") { - if (file_exists($dir_music_on_hold."/".$path_mod.$sampling_rate_dir."/".base64_decode($_GET['filename']))) { - $fd = fopen($dir_music_on_hold."/".$path_mod.$sampling_rate_dir."/".base64_decode($_GET['filename']), "rb"); + if (file_exists($music_on_hold_dir."/".$path_mod.$sampling_rate_dir."/".base64_decode($_GET['file_name']))) { + $fd = fopen($music_on_hold_dir."/".$path_mod.$sampling_rate_dir."/".base64_decode($_GET['file_name']), "rb"); if ($_GET['t'] == "bin") { header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download"); header("Content-Description: File Transfer"); - header('Content-Disposition: attachment; filename="'.base64_decode($_GET['filename']).'"'); + header('Content-Disposition: attachment; file_name="'.base64_decode($_GET['file_name']).'"'); } else { - $file_ext = substr(base64_decode($_GET['filename']), -3); + $file_ext = substr(base64_decode($_GET['file_name']), -3); if ($file_ext == "wav") { header("Content-Type: audio/x-wav"); } @@ -78,61 +78,62 @@ if ($_GET['a'] == "download") { } header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past - header("Content-Length: " . filesize($dir_music_on_hold."/".$path_mod.$sampling_rate_dir."/".base64_decode($_GET['filename']))); + header("Content-Length: " . filesize($music_on_hold_dir."/".$path_mod.$sampling_rate_dir."/".base64_decode($_GET['file_name']))); fpassthru($fd); } } exit; } - if (($_POST['submit'] == "Upload") && is_uploaded_file($_FILES['upload_file']['tmp_name'])) { $file_ext = strtolower(pathinfo($_FILES['upload_file']['name'], PATHINFO_EXTENSION)); if ($file_ext == 'wav' || $file_ext == 'mp3') { if ($_POST['type'] == 'moh' && permission_exists('music_on_hold_add')) { - $new_file_name = str_replace(' ', '-', $_FILES['upload_file']['name']); // replace any spaces in the filename with dashes + $new_file_name = str_replace(' ', '-', $_FILES['upload_file']['name']); // replace any spaces in the file_name with dashes $sampling_rate_dir = $_POST['upload_sampling_rate'] * 1000; // convert sampling rate from value passed by form if (count($_SESSION['domains']) > 1) { - $path_mod = $_SESSION["domain_name"]."/"; // if multi-tenant, modify folder paths + $path_mod = $_SESSION["domain_name"]."/"; // if multi-tenant, modify directory paths } // create new category, if necessary if ($_POST['upload_category'] == '_NEW_CAT_' && $_POST['upload_category_new'] != '') { $new_category_name = str_replace(' ', '_', $_POST['upload_category_new']); - if (!is_dir($dir_music_on_hold."/".$path_mod.$new_category_name."/".$sampling_rate_dir)) { - @mkdir($dir_music_on_hold."/".$path_mod.$new_category_name."/".$sampling_rate_dir, 0777, true); + if (!is_dir($music_on_hold_dir."/".$path_mod.$new_category_name."/".$sampling_rate_dir)) { + @mkdir($music_on_hold_dir."/".$path_mod.$new_category_name."/".$sampling_rate_dir, 0777, true); } - if (is_dir($dir_music_on_hold."/".$path_mod.$new_category_name."/".$sampling_rate_dir)) { - move_uploaded_file($_FILES['upload_file']['tmp_name'], $dir_music_on_hold."/".$path_mod.$new_category_name."/".$sampling_rate_dir."/".$new_file_name); - $target_folder = $dir_music_on_hold."/".$path_mod.$new_category_name."/".$sampling_rate_dir; + if (is_dir($music_on_hold_dir."/".$path_mod.$new_category_name."/".$sampling_rate_dir)) { + move_uploaded_file($_FILES['upload_file']['tmp_name'], $music_on_hold_dir."/".$path_mod.$new_category_name."/".$sampling_rate_dir."/".$new_file_name); + $target_dir = $music_on_hold_dir."/".$path_mod.$new_category_name."/".$sampling_rate_dir; } } - // use existing category folder + // use existing category directory else if ($_POST['upload_category'] != '' && $_POST['upload_category'] != '_NEW_CAT_') { - if (!is_dir($dir_music_on_hold."/".$path_mod.$_POST['upload_category']."/".$sampling_rate_dir)) { - @mkdir($dir_music_on_hold."/".$path_mod.$_POST['upload_category']."/".$sampling_rate_dir, 0777, true); + if (!is_dir($music_on_hold_dir."/".$path_mod.$_POST['upload_category']."/".$sampling_rate_dir)) { + @mkdir($music_on_hold_dir."/".$path_mod.$_POST['upload_category']."/".$sampling_rate_dir, 0777, true); } - if (is_dir($dir_music_on_hold."/".$path_mod.$_POST['upload_category']."/".$sampling_rate_dir)) { - move_uploaded_file($_FILES['upload_file']['tmp_name'], $dir_music_on_hold."/".$path_mod.$_POST['upload_category']."/".$sampling_rate_dir."/".$new_file_name); - $target_folder = $dir_music_on_hold."/".$path_mod.$_POST['upload_category']."/".$sampling_rate_dir; + if (is_dir($music_on_hold_dir."/".$path_mod.$_POST['upload_category']."/".$sampling_rate_dir)) { + move_uploaded_file($_FILES['upload_file']['tmp_name'], $music_on_hold_dir."/".$path_mod.$_POST['upload_category']."/".$sampling_rate_dir."/".$new_file_name); + $target_dir = $music_on_hold_dir."/".$path_mod.$_POST['upload_category']."/".$sampling_rate_dir; } } - // use default folder + // use default directory else if ($_POST['upload_category'] == '') { - if (!is_dir($dir_music_on_hold."/".$sampling_rate_dir)) { - @mkdir($dir_music_on_hold."/".$sampling_rate_dir, 0777, true); - } - if (is_dir($dir_music_on_hold."/".$sampling_rate_dir)) { - move_uploaded_file($_FILES['upload_file']['tmp_name'], $dir_music_on_hold."/".$sampling_rate_dir."/".$new_file_name); - $target_folder = $dir_music_on_hold."/".$sampling_rate_dir; + if (permission_exists('music_on_hold_default_add')) { + if (!is_dir($music_on_hold_dir."/".$sampling_rate_dir)) { + @mkdir($music_on_hold_dir."/".$sampling_rate_dir, 0777, true); + } + if (is_dir($music_on_hold_dir."/".$sampling_rate_dir)) { + move_uploaded_file($_FILES['upload_file']['tmp_name'], $music_on_hold_dir."/".$sampling_rate_dir."/".$new_file_name); + $target_dir = $music_on_hold_dir."/".$sampling_rate_dir; + } } } else { exit(); } - $savemsg = "Uploaded file to ".$target_folder."/".htmlentities($_FILES['upload_file']['name']); + $savemsg = "Uploaded file to ".$target_dir."/".htmlentities($_FILES['upload_file']['name']); unset($_POST['txtCommand']); } } @@ -141,36 +142,44 @@ if (($_POST['submit'] == "Upload") && is_uploaded_file($_FILES['upload_file']['t if ($_GET['act'] == "del" && permission_exists('music_on_hold_delete')) { if ($_GET['type'] == 'moh') { $sampling_rate_dir = $_GET['sampling_rate']; - $category_folder = $_GET['category']; - - if ($category_folder != '') { - $path_mod = $category_folder."/"; + $category_dir = $_GET['category']; + //default category + if ($category_dir == "") { + if (!permission_exists('music_on_hold_default_delete')) { + echo "access denied"; + exit; + } + } + //other categories + if ($category_dir != "") { + $path_mod = $category_dir."/"; if (count($_SESSION['domains']) > 1) { $path_mod = $_SESSION["domain_name"]."/".$path_mod; } } - unlink($dir_music_on_hold."/".$path_mod.$sampling_rate_dir."/".base64_decode($_GET['filename'])); + unlink($music_on_hold_dir."/".$path_mod.$sampling_rate_dir."/".base64_decode($_GET['file_name'])); header("Location: music_on_hold.php"); exit; } if ($_GET['type'] == 'cat') { - $category_folder = $_GET['category']; + $category_dir = $_GET['category']; + if (strlen($category_dir) > 0) { + if (count($_SESSION['domains']) > 1) { + $path_mod = $_SESSION["domain_name"]."/"; + } - if (count($_SESSION['domains']) > 1) { - $path_mod = $_SESSION["domain_name"]."/"; - } + // remove sampling rate directories (if any) + foreach ($sampling_rate_dirs as $sampling_rate_dir) { + rmdir($music_on_hold_dir."/".$path_mod.(base64_decode($category_dir))."/".$sampling_rate_dir); + } - // remove sampling rate folders (if any) - foreach ($sampling_rate_dirs as $sampling_rate_dir) { - rmdir($dir_music_on_hold."/".$path_mod.(base64_decode($category_folder))."/".$sampling_rate_dir); - } - - // remove category folder - if (rmdir($dir_music_on_hold."/".$path_mod.(base64_decode($category_folder)))) { - sleep(5); // allow time for the OS to catch up (at least Windows, anyway) + // remove category directory + if (rmdir($music_on_hold_dir."/".$path_mod.(base64_decode($category_dir)))) { + sleep(5); // allow time for the OS to catch up (at least Windows, anyway) + } } header("Location: music_on_hold.php"); @@ -230,28 +239,30 @@ if ($_GET['act'] == "del" && permission_exists('music_on_hold_delete')) { echo " \n"; echo " Category
\n"; echo "