Вот пример, который вы можете проверить.
Используется несколько предположений, которые должны быть очевидны, как последовательные идентификаторы, и что super_admin
- это идентификатор 5.
Соответствующий ion_auth
функции закомментированы.
<?php
$groups = array(
array(
'id' => 1,
'name' => 'general'
),
array(
'id' => 2,
'name' => 'agent'
),
array(
'id' => 3,
'name' => 'reseller'
),
array(
'id' => 4,
'name' => 'admin'
),
array(
'id' => 5,
'name' => 'super_admin'
),
);
//$groups = $this->ion_auth->groups()->result_array();
array_pop($groups); // remove super_admin (last element) from array
$curr_user_group = 4;
//$curr_user_group = $this->ion_auth->get_users_groups()->row()->id;
$user_create_groups = $curr_user_group - 1;
$groups = array_slice($groups, 0, $user_create_groups);
echo '<pre>';
foreach ($groups as $group) {
print_r($group);
}
Так как группа не может создать группу ниже, массив $groups
для нее будет пустым.Надеюсь, вы подумали об этом, и у вас есть какая-то система, поэтому пользователь из этой группы не может создавать пользователей.Также обратите внимание, что вам нужно установить аналогичную функцию проверки в бэкэнде, чтобы пользователи не повышали себя или других до super_admin
, изменяя поле выбора в своем браузере.