Use the new fax fax_extension_view_domain permission.

Also selected specific fields rather than using the * wild card in the select statement.
This commit is contained in:
FusionPBX
2021-03-18 10:23:03 -06:00
committed by GitHub
parent 4ec6e5832d
commit d27c7e210e

View File

@@ -17,7 +17,7 @@
The Initial Developer of the Original Code is
Mark J Crane <markjcrane@fusionpbx.com>
Portions created by the Initial Developer are Copyright (C) 2008-2019
Portions created by the Initial Developer are Copyright (C) 2008-2021
the Initial Developer. All Rights Reserved.
Contributor(s):
@@ -75,37 +75,51 @@
$order_by = $_GET["order_by"];
$order = $_GET["order"];
//add the search term
$search = strtolower($_GET["search"]);
if (strlen($search) > 0) {
$sql_search = "and (";
$sql_search .= "lower(fax_name) like :search ";
$sql_search .= "or lower(fax_email) like :search ";
$sql_search .= "or lower(fax_extension) like :search ";
$sql_search .= "or lower(fax_destination_number) like :search ";
$sql_search .= "or lower(fax_caller_id_name) like :search ";
$sql_search .= "or lower(fax_caller_id_number) like :search ";
$sql_search .= "or lower(fax_forward_number) like :search ";
$sql_search .= "or lower(fax_description) like :search ";
$sql_search .= ") ";
$parameters['search'] = '%'.$search.'%';
//add the search
if (isset($_GET["search"])) {
$search = strtolower($_GET["search"]);
}
//get record counts
if (if_group("superadmin") || if_group("admin")) {
//show all fax extensions
$sql = "select count(*) from v_fax as f ";
if (permission_exists('fax_extension_view_domain')) {
//count the fax extensions
$sql = "select count(f.fax_uuid) from v_fax as f ";
$sql .= "where f.domain_uuid = :domain_uuid ";
$sql .= $sql_search;
if (isset($search)) {
$sql = "and (";
$sql .= " lower(fax_name) like :search ";
$sql .= " or lower(fax_email) like :search ";
$sql .= " or lower(fax_extension) like :search ";
$sql .= " or lower(fax_destination_number) like :search ";
$sql .= " or lower(fax_caller_id_name) like :search ";
$sql .= " or lower(fax_caller_id_number) like :search ";
$sql .= " or lower(fax_forward_number) like :search ";
$sql .= " or lower(fax_description) like :search ";
$sql .= ") ";
$parameters['search'] = '%'.$search.'%';
}
$parameters['domain_uuid'] = $_SESSION['domain_uuid'];
}
else {
//show only assigned fax extensions
$sql = "select count(*) from v_fax as f, v_fax_users as u ";
//ciount the assigned fax extensions
$sql = "select count(f.fax_uuid) ";
$sql .= "from v_fax as f, v_fax_users as u ";
$sql .= "where f.fax_uuid = u.fax_uuid ";
$sql .= "and f.domain_uuid = :domain_uuid ";
$sql .= "and u.user_uuid = :user_uuid ";
$sql .= $sql_search;
if (isset($search)) {
$sql = "and (";
$sql .= " lower(fax_name) like :search ";
$sql .= " or lower(fax_email) like :search ";
$sql .= " or lower(fax_extension) like :search ";
$sql .= " or lower(fax_destination_number) like :search ";
$sql .= " or lower(fax_caller_id_name) like :search ";
$sql .= " or lower(fax_caller_id_number) like :search ";
$sql .= " or lower(fax_forward_number) like :search ";
$sql .= " or lower(fax_description) like :search ";
$sql .= ") ";
$parameters['search'] = '%'.$search.'%';
}
$parameters['domain_uuid'] = $_SESSION['domain_uuid'];
$parameters['user_uuid'] = $_SESSION['user_uuid'];
}
@@ -120,10 +134,54 @@
list($paging_controls_mini, $rows_per_page) = paging($num_rows, $param, $rows_per_page, true);
$offset = $rows_per_page * $page;
//get records
$sql = str_replace('count(*)', '*', $sql);
//get fax extensions
if (permission_exists('fax_extension_view_domain')) {
//show all fax extensions
$sql = "select f.fax_uuid, fax_extension, fax_prefix, fax_name, fax_email, fax_description ";
$sql .= "from v_fax as f ";
$sql .= "where f.domain_uuid = :domain_uuid ";
if (isset($search)) {
$sql = "and (";
$sql .= " lower(fax_name) like :search ";
$sql .= " or lower(fax_email) like :search ";
$sql .= " or lower(fax_extension) like :search ";
$sql .= " or lower(fax_destination_number) like :search ";
$sql .= " or lower(fax_caller_id_name) like :search ";
$sql .= " or lower(fax_caller_id_number) like :search ";
$sql .= " or lower(fax_forward_number) like :search ";
$sql .= " or lower(fax_description) like :search ";
$sql .= ") ";
$parameters['search'] = '%'.$search.'%';
}
$parameters['domain_uuid'] = $_SESSION['domain_uuid'];
}
else {
//show only assigned fax extensions
$sql = "select f.fax_uuid, fax_extension, fax_prefix, fax_name, fax_email, fax_description ";
$sql .= "from v_fax as f, v_fax_users as u ";
$sql .= "where f.fax_uuid = u.fax_uuid ";
$sql .= "and f.domain_uuid = :domain_uuid ";
$sql .= "and u.user_uuid = :user_uuid ";
if (isset($search)) {
$sql = "and (";
$sql .= " lower(fax_name) like :search ";
$sql .= " or lower(fax_email) like :search ";
$sql .= " or lower(fax_extension) like :search ";
$sql .= " or lower(fax_destination_number) like :search ";
$sql .= " or lower(fax_caller_id_name) like :search ";
$sql .= " or lower(fax_caller_id_number) like :search ";
$sql .= " or lower(fax_forward_number) like :search ";
$sql .= " or lower(fax_description) like :search ";
$sql .= ") ";
$parameters['search'] = '%'.$search.'%';
}
$parameters['domain_uuid'] = $_SESSION['domain_uuid'];
$parameters['user_uuid'] = $_SESSION['user_uuid'];
}
$sql .= order_by($order_by, $order, 'f.fax_name', 'asc');
$sql .= limit_offset($rows_per_page, $offset);
//echo $sql."\n";
//view_array($parameters);
$database = new database;
$result = $database->select($sql, $parameters, 'all');
unset($sql, $parameters);