Реализация ACL для моего PHP-приложения

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

Администраторы, агенты модераторов

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

Администраторы — >

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

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

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

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

Спасибо


person Ibrahim Azhar Armar    schedule 11.12.2010    source источник


Ответы (2)


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

Управление доступом на основе ролей

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

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

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

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

person Community    schedule 11.12.2010
comment
Используйте фреймворк вроде cakephp или zend. у них есть встроенные библиотеки компонентов для ACL, а также их легко освоить - person ; 11.12.2010

Раньше я делал это, создавая в базе данных таблицу пользователей с уровнем доступа (администратор, модератор и агенты).

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

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

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

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

person Psycorpse    schedule 11.12.2010
comment
... вы имеете в виду файл cookie, который они могут произвольно изменить, чтобы повысить свой уровень доступа? - person mpen; 11.12.2010
comment
Истинные файлы cookie немного небезопасны, однако вы можете просто проверить это, проверив базу данных. Большинство приложений, которые мне приходилось создавать, предназначались для внутренних сотрудников, и на самом деле не было ничего, кроме просмотра других страниц. Не говоря уже о том, что все было зарегистрировано, поэтому, даже если вы обойдете некоторые проверки, это зарегистрирует посещение вашей страницы. Я рад, что это помогло. Надеюсь и дальше помогать на этом форуме. - person Psycorpse; 13.12.2010
comment
Вы можете подписать файл cookie перед его выпуском, чтобы обеспечить целостность. - person Alex W; 18.05.2019