Внедрение ACL для моего приложения PHP

Мое приложение RealEstate PHP имеет следующие группы пользователей,

Админы, Модераторы

Я хочу указать следующие разрешения для следующих пользователей.

Админы ->

  • Может создавать модераторы,
  • Может создавать агенты,
  • Можно вставить свойства,
  • Может обновлять свойства,
  • Удалить свойства

Следовательно, у администратора будут все привилегии короче, администратор здесь будет superAdmin

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

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

Спасибо

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

Контроль доступа на основе ролей

http://www.tonymarston.net/php-mysql/role-based-access-control.html

http://www.sqlrecipes.com/database_design/fine_grained_role_based_access_control_rbac_system-3/

http://www.sitepoint.com/forums/showthread.php?threadid=162027

Вы должны создать таблицу, в которой вы должны определить все типы роли.

и одна таблица для пользователей

связывать разные роли с разными пользователями. Связывая две таблицы. и что-то вроде этого ……

Способ, которым я это делал в прошлом, заключался в создании таблицы пользователей в базе данных, имеющей уровень доступа (Admin, Moderator и агенты).

Затем, если у вас есть система меню, выполните проверку, чтобы узнать, какие привилегии необходимы для каких ссылок … Администраторы будут видеть все ссылки, Модератор будет видеть только ссылки, которые он / она должен, и агенты будут видеть только то, что они предполагают видеть.

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

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

Надеюсь, это поможет, Майк