Все библиотеки Auth, о которых я знаю, ограничивают вас в той или иной форме. Обычно хорошей идеей является создание собственной библиотеки аутентификации, разбивайте ее, чтобы не ограничивать себя использованием родного AR кодаignigners.
Для роли / разрешений я обычно просто сохраняю объект json в моем столбце разрешений, скажем, users
. Я предпочитаю это, используя более сложную технику
В моем главном контроллере (не ограничивающем) я просто создаю переменную (массив) разрешений и перебираю ее внутри дочерних контроллеров для реализации ограничения.
пример:
столбец sql
`permissions` varchar(200) NOT NULL DEFAULT '["r", "u", "d"]';
главный контроллер
protected $permissions = array();
protected function _get_permissions()
{
return (array)json_encode($this->user->permissions);
//get permissions from user (array/object)
}
расширенные дети
if(in_array('r', $this->permissions))
{
//user can read something
}