From 1188194d0b8287705cc30319cbd8e6c19bc9b03e Mon Sep 17 00:00:00 2001 From: FusionPBX Date: Fri, 26 Jul 2019 01:09:58 -0600 Subject: [PATCH] Update user_edit.php --- core/users/user_edit.php | 38 ++++++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/core/users/user_edit.php b/core/users/user_edit.php index 273335b8ef..ab76ec401a 100644 --- a/core/users/user_edit.php +++ b/core/users/user_edit.php @@ -375,18 +375,24 @@ $group_data = explode('|', $group_uuid_name); $group_uuid = $group_data[0]; $group_name = $group_data[1]; - //only a superadmin can add other superadmins or admins, admins can only add other admins - switch ($group_name) { - case "superadmin": if (!if_group("superadmin")) { break; } - case "admin": if (!if_group("superadmin") && !if_group("admin")) { break; } - default: //add group user to array for insert - $array['user_groups'][$n]['user_group_uuid'] = uuid(); - $array['user_groups'][$n]['domain_uuid'] = $domain_uuid; - $array['user_groups'][$n]['group_name'] = $group_name; - $array['user_groups'][$n]['group_uuid'] = $group_uuid; - $array['user_groups'][$n]['user_uuid'] = $user_uuid; - $n++; + + //compare the group level to only add groups at the same level or lower than the user + $sql = "select * from v_groups "; + $sql .= "where (domain_uuid = :domain_uuid or domain_uuid is null) "; + $sql .= "and group_uuid = :group_uuid "; + $parameters['domain_uuid'] = $_SESSION['domain_uuid']; + $parameters['group_uuid'] = $group_uuid; + $database = new database; + $row = $database->select($sql, $parameters, 'row'); + if ($row['group_level'] <= $_SESSION['user']['group_level']) { + $array['user_groups'][$n]['user_group_uuid'] = uuid(); + $array['user_groups'][$n]['domain_uuid'] = $domain_uuid; + $array['user_groups'][$n]['group_name'] = $group_name; + $array['user_groups'][$n]['group_uuid'] = $group_uuid; + $array['user_groups'][$n]['user_uuid'] = $user_uuid; + $n++; } + unset($parameters); } //update domain, if changed @@ -943,11 +949,11 @@ echo "";