diff --git a/app/fax/fax.php b/app/fax/fax.php index d5e3e22ded..486172ff07 100644 --- a/app/fax/fax.php +++ b/app/fax/fax.php @@ -17,7 +17,7 @@ The Initial Developer of the Original Code is Mark J Crane - 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);