Ограничить доступ к ресурсам по идентификатору ресурса в CakePHP, используя ACL - PullRequest
2 голосов
/ 16 февраля 2012

Допустим, у меня есть модель Project и модель User в приложении CakePHP. Используя ACL, я могу контролировать, могут ли пользователи получать доступ к проектам и / или к определенным действиям в ProjectsController.

Но я хотел бы пойти дальше и контролировать, разрешено ли пользователю просматривать конкретный проект, например, доступ к проекту с помощью id = 3 с использованием URL-адреса, например http://example.com/projects/3.

Возможно ли это и с ACL, или мне нужно разработать дополнительные проверки?

Спасибо!

1 Ответ

3 голосов
/ 17 февраля 2012

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

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

Возможно, вам нужна модель ProjectUser (HABTM в Project и User) и простая функция в этой модели, может быть, userAllowed($projectId, $userId), которая проверяет, что пользователю предоставлен доступ к этому проекту.

...