Меню Codeigniter на основе уровня доступа - PullRequest
1 голос
/ 02 марта 2012

Я пытаюсь найти способ создать меню в Codeigniter, которое отображает различные параметры в зависимости от уровня доступа пользователя, т. Е. Если они администратор и редактор или просто обычный пользователь. Некоторые из их параметров будут перекрываться.

Я рассмотрел добавление оператора if в представление, но это не очень хороший MVC. Я также рассмотрел создание многомерного массива в контроллере, который устанавливает параметры меню в зависимости от уровня доступа пользователя.

Я бы очень признателен за идеи и мнения.

Ответы [ 2 ]

0 голосов
/ 04 марта 2012

Каждая из ваших учетных записей пользователей должна иметь набор ролей, а именно: панель инструментов, Продажи, Платежи, Продукты, Добавить / Изменить продукт, Удалить продукт, Отчеты и т. Д. (Вы можете использовать группы Ion Auth в качестве ролей). Затем вы создаете представление, которое отображает меню, и вы передаете зарегистрированные пользовательские роли этому представлению. Затем вы просматриваете все роли и сравниваете их с ролями пользователей. Если у пользователя есть роль для просмотра определенной страницы, вы добавляете ссылку на эту страницу в меню.

Вот и все :-) Надеюсь, я помог.

0 голосов
/ 03 марта 2012

Я всегда делаю это сложнее, чем должно быть. Почему бы просто не иметь отдельные представления (частичные) для каждого уровня пользователя? I.e.:

<?php
if ($this->user_model->isAdmin())
{
    $this->load->view('user_menu_admin');
}
elseif ($this->user_model->isModerator())
{
    $this->load->view('user_menu_moderator');
}
elseif ($this->user_model->isMember())
{
    $this->load->view('user_menu_member');
}
else
{
    $this->load->view('user_menu_guest');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...