Что такое хорошая структура разрешений PHP, которая позволяет перечислять ресурсы? - PullRequest
3 голосов
/ 15 декабря 2011

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

С моделью данных:

user
----
id
role
type

resource
----
id
name
type

Мы хотим иметь возможность настроить правило доступа, которое говорит пользователюможет знать только обо всех ресурсах того же типа, что и они, если только у них нет роли администратора (в этом случае они могут видеть все).И затем мы хотим получить возможность поиска / поиска по списку «Все ресурсы, о которых знает этот пользователь».(Допустим, есть 500 000 ресурсов.)

Я пытался вставить это в Zend_acl, но, хотя я думаю, что могу определить все правила в zend_acl, он основан на ресурсных ресурсах, и нетнадлежащая поддержка для получения списка ресурсов из него, и, конечно, не в удобной для памяти форме (например, отображение 10 ресурсов за раз и подкачка страниц).

Так что же такоехорошая структура разрешений PHP, которая поддерживает правила, основанные на отношениях (в отличие от списков), такие как эти?

1 Ответ

3 голосов
/ 15 декабря 2011

Вы все еще можете использовать ACL при условии, что он может быть расширен в соответствии с вашими целями. Например, Zend_Acl позволяет вам написать свои собственные утверждения ACL , которые можно использовать для переопределения поведения на основе ресурсов. Вы также можете расширить Zend_Acl, чтобы предоставить список всех ресурсов, доступных этому пользователю.

...