Codeigniter позволяет пользователям получить доступ к контроллерам на основе роли / разрешения

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

Супер Админ, Модераторы, Арендаторы, Пользователи

Для того, чтобы Super Admin имел доступ ко всем страницам / представлениям и контроллерам.
Но остальные группы будут иметь доступ к страницам / представлениям на основе ролей / разрешений.

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

Если пользователь входит в систему и получает прямой доступ к странице со ссылкой, то страница открывается, поскольку на контроллере нет никаких ограничений.

Прошли часы, и я бьюсь головой, чтобы выяснить, как ограничить не аутентичного пользователя от открытия запрещенной страницы / просмотра.

Я вижу два пути,

  1. Установите ограничение на каждый контроллер, установив флажок, разрешено ли пользователю просматривать этот контроллер. Но это будет утомительная работа, и я не уверен, что это правильный путь.
  2. Поставьте основной чек в MY_Controller Это работает каждый раз, когда доступ к контроллеру, это выглядит многообещающе, но я не уверен, как это сделать.

Если у кого-то есть идеи или они столкнулись с той же проблемой, пожалуйста, помогите мне найти решение.

0

Решение

В моем собственном приложении я расширил класс контроллера ядра с помощью MY_Controller, и внутри я создал две функции для двух моих групп пользователей. Затем при создании обычного контроллера вы расширяете его с помощью пользовательской функции. Например:

MY_Controller.php

class Super_admin extends CI_Controller{
function __construct(){
parent::__contstruct();
//check for super admin privlidges
}
}

some_controller.php

class some_controller extends Super_admin{
//do whatever you need in here
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]