Codeigniter ion auth управление пользователями при создании нового пользователя - PullRequest
0 голосов
/ 20 сентября 2018

Надеюсь, у вас все хорошо.У меня небольшая проблема.Я не эксперт в Codeigniter.У меня есть 5 групп пользователей, таких как super_admin, admin, reseller, agent и general.в то время как super_admin создаст пользователя, он может дать доступ любому новому пользователю.но админ может дать реселлера, агента и генерала.Торговый посредник может быть агентом, а генеральный и, наконец, агент не может иметь только общий доступ.Теперь нужно скрыть имя группы пользователей из выпадающего меню, которое не имеет разрешения пользователя.Мой код ниже.Я написал код на странице create_user.php.Пожалуйста, помогите мне.

    <?php                                     
      foreach ($groups as $group):
          $a=$this->ion_auth->get_users_groups()->row()->name;
        if(!in_array($group->name, $a)){
    ?>
    <option value="<?php echo $group['id']; ?>"><?php echo htmlspecialchars($group['description'], ENT_QUOTES, 'UTF-8'); ?></option>
   <?php } endforeach ?>
   </select>  
  </div>
?php endif ?>

1 Ответ

0 голосов
/ 20 сентября 2018

Вот пример, который вы можете проверить.

Используется несколько предположений, которые должны быть очевидны, как последовательные идентификаторы, и что 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, изменяя поле выбора в своем браузере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...