Создание общего OO ACL с использованием Doctrine - PullRequest
4 голосов
/ 19 июля 2010

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

Сейчас я смотрю, как сделать это на основе классов и уникальных идентификаторов, сохранив их в виде таблицы:

Table: ACL
    ResourceClass
    ResourceKey
    RoleClass
    RoleKey
    Permission

Очевидно, что это потребует, чтобы я проанализировал классы, которые запрашиваются для получения правильных значений ResourceClass.

Мне интересно, применялся ли этот подход раньше или кто-нибудь посоветовал сделать это лучше. Другие вещи, такие как рекурсивные отношения между ролями, также смущают меня, так как я не уверен, как рекурсивно запрашивать сборку и ACL для ресурса.

Я не большой поклонник Zend ACL, поэтому, пожалуйста, никаких предложений по этому поводу - я в курсе!

По мере того, как люди будут взвешиваться, будут даны дополнительные разъяснения по этому вопросу, поэтому, пожалуйста, потерпите меня! Сам этот вопрос может потребовать нескольких итераций! ;)

1 Ответ

3 голосов
/ 20 июля 2010

Я использую NestedSet для хранения иерархии ACL и кеша, чтобы ускорить процесс.

Doctrine ORM для PHP - NestedSet

Вот сообщение, которое может быть полезнотоже:

Zend_Acl, часть 3: создание и хранение динамических списков ACL |CodeUtopia - блог Яни Хартикайнен

(взгляните также на две предыдущие части).

...