- Update call block permissions

The call_block_all permission was pulling double duty. 
- Changed the code to use call_block_all only for SHOW ALL to call block across all domains.
- Permission call_block_extension will be used instead for the purpose of showing the extension list. 
- If someone doesn't call_block_permission then their assigned extensions will be use with each call block item they add.
This commit is contained in:
FusionPBX 2024-07-18 17:13:22 -06:00 committed by GitHub
parent dcf1f9d17c
commit 8beecfbb89
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 14 additions and 16 deletions

View File

@ -5,7 +5,7 @@
$apps[$x]['uuid'] = "9ed63276-e085-4897-839c-4f2e36d92d6c"; $apps[$x]['uuid'] = "9ed63276-e085-4897-839c-4f2e36d92d6c";
$apps[$x]['category'] = "Switch"; $apps[$x]['category'] = "Switch";
$apps[$x]['subcategory'] = ""; $apps[$x]['subcategory'] = "";
$apps[$x]['version'] = "1.0"; $apps[$x]['version'] = "1.1";
$apps[$x]['license'] = "Mozilla Public License 1.1"; $apps[$x]['license'] = "Mozilla Public License 1.1";
$apps[$x]['url'] = "http://www.fusionpbx.com"; $apps[$x]['url'] = "http://www.fusionpbx.com";
$apps[$x]['description']['en-us'] = "A tool to block incoming numbers."; $apps[$x]['description']['en-us'] = "A tool to block incoming numbers.";
@ -73,7 +73,6 @@
$y++; $y++;
$apps[$x]['permissions'][$y]['name'] = "call_block_all"; $apps[$x]['permissions'][$y]['name'] = "call_block_all";
$apps[$x]['permissions'][$y]['groups'][] = "superadmin"; $apps[$x]['permissions'][$y]['groups'][] = "superadmin";
$apps[$x]['permissions'][$y]['groups'][] = "admin";
$y++; $y++;
$apps[$x]['permissions'][$y]['name'] = "call_block_extension"; $apps[$x]['permissions'][$y]['name'] = "call_block_extension";
$apps[$x]['permissions'][$y]['groups'][] = "superadmin"; $apps[$x]['permissions'][$y]['groups'][] = "superadmin";

View File

@ -103,8 +103,7 @@
$sql = "select count(*) from view_call_block "; $sql = "select count(*) from view_call_block ";
$sql .= "where true "; $sql .= "where true ";
if ($show == "all" && permission_exists('call_block_all')) { if ($show == "all" && permission_exists('call_block_all')) {
//$sql .= "and (domain_uuid = :domain_uuid or domain_uuid is null) "; //show all records across all domains
//$parameters['domain_uuid'] = $_SESSION['domain_uuid'];
} }
else { else {
$sql .= "and ( "; $sql .= "and ( ";
@ -115,7 +114,7 @@
$sql .= ") "; $sql .= ") ";
$parameters['domain_uuid'] = $_SESSION['domain_uuid']; $parameters['domain_uuid'] = $_SESSION['domain_uuid'];
} }
if (!permission_exists('call_block_all') && !empty($_SESSION['user']['extension'])) { if (!permission_exists('call_block_extension') && !empty($_SESSION['user']['extension'])) {
$sql .= "and extension_uuid in ("; $sql .= "and extension_uuid in (";
$x = 0; $x = 0;
foreach ($_SESSION['user']['extension'] as $field) { foreach ($_SESSION['user']['extension'] as $field) {
@ -181,7 +180,7 @@
$sql .= ") "; $sql .= ") ";
$parameters['domain_uuid'] = $_SESSION['domain_uuid']; $parameters['domain_uuid'] = $_SESSION['domain_uuid'];
} }
if (!permission_exists('call_block_all') && !empty($_SESSION['user']['extension']) && count($_SESSION['user']['extension']) > 0) { if (!permission_exists('call_block_extension') && !empty($_SESSION['user']['extension']) && count($_SESSION['user']['extension']) > 0) {
$sql .= "and extension_uuid in ("; $sql .= "and extension_uuid in (";
$x = 0; $x = 0;
foreach ($_SESSION['user']['extension'] as $field) { foreach ($_SESSION['user']['extension'] as $field) {

View File

@ -176,7 +176,7 @@
} }
//if user doesn't have call block all then use the assigned extension_uuid //if user doesn't have call block all then use the assigned extension_uuid
if (!permission_exists('call_block_all')) { if (!permission_exists('call_block_extension')) {
$extension_uuid = $_SESSION['user']['extension'][0]['extension_uuid']; $extension_uuid = $_SESSION['user']['extension'][0]['extension_uuid'];
} }
@ -422,7 +422,7 @@ if (permission_exists('call_block_all') || permission_exists('call_block_ring_gr
echo "</td>\n"; echo "</td>\n";
echo "</tr>\n"; echo "</tr>\n";
if (permission_exists('call_block_all')) { if (permission_exists('call_block_extension')) {
echo "<tr>\n"; echo "<tr>\n";
echo "<td width='30%' class='vncell' valign='top' align='left' nowrap='nowrap'>\n"; echo "<td width='30%' class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
echo " ".$text['label-extension']."\n"; echo " ".$text['label-extension']."\n";
@ -612,7 +612,7 @@ if (permission_exists('call_block_all') || permission_exists('call_block_ring_gr
if (empty($_REQUEST["id"])) { if (empty($_REQUEST["id"])) {
//without block all permission, limit to assigned extension(s) //without block all permission, limit to assigned extension(s)
if (!permission_exists('call_block_all') && !empty($_SESSION['user']['extension'])) { if (!permission_exists('call_block_extension') && !empty($_SESSION['user']['extension'])) {
foreach ($_SESSION['user']['extension'] as $assigned_extension) { foreach ($_SESSION['user']['extension'] as $assigned_extension) {
$assigned_extensions[$assigned_extension['extension_uuid']] = $assigned_extension['user']; $assigned_extensions[$assigned_extension['extension_uuid']] = $assigned_extension['user'];
} }
@ -658,7 +658,7 @@ if (permission_exists('call_block_all') || permission_exists('call_block_ring_gr
echo button::create(['type'=>'button','id'=>'action_bar_sub_button_back','label'=>$text['button-back'],'icon'=>$_SESSION['theme']['button_icon_back'],'collapse'=>'hide-xs','style'=>'display: none;','link'=>'call_block.php']); echo button::create(['type'=>'button','id'=>'action_bar_sub_button_back','label'=>$text['button-back'],'icon'=>$_SESSION['theme']['button_icon_back'],'collapse'=>'hide-xs','style'=>'display: none;','link'=>'call_block.php']);
if ($result) { if ($result) {
$select_margin = 'margin-left: 15px;'; $select_margin = 'margin-left: 15px;';
if (permission_exists('call_block_all')) { if (permission_exists('call_block_extension')) {
echo "<select class='formfld' style='".$select_margin."' name='extension_uuid'>\n"; echo "<select class='formfld' style='".$select_margin."' name='extension_uuid'>\n";
echo " <option value='' disabled='disabled'>".$text['label-extension']."</option>\n"; echo " <option value='' disabled='disabled'>".$text['label-extension']."</option>\n";
echo " <option value='' selected='selected'>".$text['label-all']."</option>\n"; echo " <option value='' selected='selected'>".$text['label-all']."</option>\n";

View File

@ -317,7 +317,7 @@ if (!class_exists('call_block')) {
foreach ($rows as $x => $row) { foreach ($rows as $x => $row) {
//build insert array //build insert array
if (permission_exists('call_block_all')) { if (permission_exists('call_block_extension')) {
$array['call_block'][$x]['call_block_uuid'] = uuid(); $array['call_block'][$x]['call_block_uuid'] = uuid();
$array['call_block'][$x]['domain_uuid'] = $_SESSION['domain_uuid']; $array['call_block'][$x]['domain_uuid'] = $_SESSION['domain_uuid'];
$array['call_block'][$x]['call_block_direction'] = $this->call_block_direction; $array['call_block'][$x]['call_block_direction'] = $this->call_block_direction;