diff --git a/app/ring_groups/ring_groups.php b/app/ring_groups/ring_groups.php index 24f07bedf6..ac79667135 100644 --- a/app/ring_groups/ring_groups.php +++ b/app/ring_groups/ring_groups.php @@ -96,12 +96,25 @@ //get filtered ring group count if (!empty($search)) { - $sql = "select count(*) from v_ring_groups where true "; - if (empty($_GET['show']) || $_GET['show'] != "all" || !permission_exists('ring_group_all')) { - $sql .= "and domain_uuid = :domain_uuid "; + if ($show == "all" && permission_exists('ring_group_all')) { + $sql = "select count(*) from v_ring_groups "; + $sql .= "where true "; + } + elseif (permission_exists('ring_group_domain') || permission_exists('ring_group_all')) { + $sql = "select count(*) from v_ring_groups "; + $sql .= "where domain_uuid = :domain_uuid "; $parameters['domain_uuid'] = $domain_uuid; } - if (isset($search)) { + else { + $sql = "select count(*) "; + $sql .= "from v_ring_groups as r, v_ring_group_users as u "; + $sql .= "where r.domain_uuid = :domain_uuid "; + $sql .= "and r.ring_group_uuid = u.ring_group_uuid "; + $sql .= "and u.user_uuid = :user_uuid "; + $parameters['domain_uuid'] = $domain_uuid; + $parameters['user_uuid'] = $_SESSION['user_uuid']; + } + if (!empty($search)) { $sql .= "and ("; $sql .= "lower(ring_group_name) like :search "; $sql .= "or lower(ring_group_extension) like :search "; @@ -126,12 +139,26 @@ $offset = $rows_per_page * $page; //get the list - $sql = "select * from v_ring_groups where true "; - if ($show != "all" || !permission_exists('ring_group_all')) { - $sql .= "and domain_uuid = :domain_uuid "; + if ($show == "all" && permission_exists('ring_group_all')) { + $sql = "select * from v_ring_groups "; + $sql .= "where true "; + } + elseif (permission_exists('ring_group_domain') || permission_exists('ring_group_all')) { + $sql = "select * from v_ring_groups "; + $sql .= "where domain_uuid = :domain_uuid "; $parameters['domain_uuid'] = $domain_uuid; } - if (isset($search)) { + else { + $sql = "select r.ring_group_uuid, r.ring_group_name, r.ring_group_extension, r.ring_group_strategy, "; + $sql .= "r.ring_group_forward_destination, r.ring_group_forward_enabled, r.ring_group_description "; + $sql .= "from v_ring_groups as r, v_ring_group_users as u "; + $sql .= "where r.domain_uuid = :domain_uuid "; + $sql .= "and r.ring_group_uuid = u.ring_group_uuid "; + $sql .= "and u.user_uuid = :user_uuid "; + $parameters['domain_uuid'] = $domain_uuid; + $parameters['user_uuid'] = $_SESSION['user_uuid']; + } + if (!empty($search)) { $sql .= "and ("; $sql .= "lower(ring_group_name) like :search "; $sql .= "or lower(ring_group_extension) like :search ";