Codeigniter - Как достичь различных членских зон на сайте? Tank_Auth - PullRequest
0 голосов
/ 06 августа 2010

Я создал приложение, используя codeigniter, который имеет 3 разные группы участников

Admininstrators - Кто входит в панель управления и имеет средства CRUD для добавления / редактирования / удаления событий, шоу и исполнителей

Клиенты - Кто Войдите в систему из внешнего интерфейса и увидите все элементы, добавленные администратором через внутренний интерфейс.

Информационные партнеры - Кто Войдите в систему с внешнего интерфейса и увидите определенные части того, что видит клиент, но не все.

Я интегрировал библиотеку Tank_Auth для раздела «Клиенты», и все работает нормально. Однако я бы хотел, чтобы администратор мог войти в отдельную административную область, а медиа-партнеры - в отдельную область.

Как лучше всего подойти к этому?

Нужно ли создавать отдельные контроллеры панели мониторинга для каждой пользовательской базы, дублировать контроллер Tank_Auth 3 раза и настроить это?

В идеале Пользователи Admin также должны иметь возможность добавлять пользователей новостей и входить во все 3 отдельные области?

Кто-нибудь достиг такого решения раньше? Если да, то как ты это сделал? возможно, аутентификация в танке - неправильный подход?

Любой вклад будет оценен.

Спасибо, Дэн

Ответы [ 3 ]

1 голос
/ 06 августа 2010

Я использую CI, но не использовал Tank_Auth, у меня есть свой класс авторизации, и в каждой функции у меня есть следующий метод с именем: $this->auth->accessMap(get_class($this),__FUNCTION__);

В классе аутентификации: открытая функция accessMap ($ controller_name, $ function_name) {if ($ this-> perms_array [$ controller_name] [$ function_name]) вернуть true;иначе $ this-> redir ();}

У меня есть массив разрешений в конфигурации:

$config['user_perms']['className']['method1'] = array($config['user_types']['admin']);
$config['user_perms']['className']['method2'] = array($config['user_types']['admin'],$config['user_types']['user']);

Таким образом, вы можете указать для каждого метода, какой пользователь имеет разрешение на его использование.

Надеюсь, это поможет.

1 голос
/ 06 августа 2010

Я не могу найти ветку на форумах CI, потому что я не могу войти на их сайт прямо сейчас, но сделаю поиск по запросу "zend_acl in codeigniter". В качестве альтернативы есть этот блог о том, как его реализовать, но он немного устарел.

ACL расшифровывается как Access Control List, он позволяет вам устанавливать различные разрешения для разных типов пользователей. На мой взгляд, у Zend одна из лучших реализаций ACL.

Более подробную информацию о ACL можно найти на сайте zend .

0 голосов
/ 23 февраля 2012

Отсутствие группы пользователей является проблемой при использовании tank_auth, если у нас несколько групп пользователей.Я столкнулся с этой проблемой недавно.Вот решение, опубликованное в формах CI.

Использование tank_auth для регистрации и входа в систему переднего плана, а также для входа в систему и входа для администратора бэкэнда

...