Как мне внедрить RBAC во внешнее приложение, использующее phprbac? - PullRequest
0 голосов
/ 30 сентября 2019

новый пользователь в стекеНовое в PHP и веб-приложениях в целом.

Я пытаюсь создать простой веб-приложение типа панели администратора на основе шаблона Bootstrap, MySQL и PHP. В настоящее время у меня возникают трудности с поиском информации о том, как реализовать схему доступа на основе ролей. Большинство моих результатов поиска содержат много информации о том, как RBAC может быть спроектирован, но не так много о реализации интерфейсного приложения.

В частности, я не знаю оптимального местоположения в моем приложении для проверки доступа пользователяк различным функциям.

В настоящее время у меня есть рабочая система входа пользователя. Я добавил phprbac (http://phprbac.net/), настроил таблицы и добавил некоторые роли и разрешения для моих пользователей.

Мои мысли о том, где реализовать:

  1. Создание ссылок для навигациидинамически с вызовом rbac->check() для каждой ссылки
    • Для всего нескольких ссылок, сделанных таким образом, кажется, быстро увеличивается время загрузки страницы, поэтому я склоняюсь к
  2. Позвоните rbac->enforce() после проверки $_SESSION данных для входа в верхней части страниц, которые должны быть авторизованы
    • Кажется, что это останавливает загрузку страницы и выдает ошибку 403 Forbidden, которая велика
    • Безнекоторые средства, препятствующие пользователям переходить по ссылке на эти страницы, я думаю, это будет раздражать моих пользователей, так как они будут ссылками методом проб и ошибок, чтобы узнать, что им разрешено делать
  3. Какой-нибудь другой лучший способ?

В качестве примера я буду отслеживать недостатки строительного проекта с использованием таблицы. Большинство ролей пользователей смогут открывать недостатки и просматривать таблицу. Роли супервизора смогут закрыть недостатки.

Если я блокирую доступ только к целым страницам (или php включенным частям), я чувствую, что это может стать грязным. Я бы предпочел иметь возможность показывать всю таблицу Deficiencies на дефиците.php и иметь ссылки в разделе «Действия» таблицы для «Закрыть», «Удалить» и т. Д., Чтобы вместо этого запускать сценарии на этой странице (дефицит. Php? Close = 231)

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

...