Контроль доступа с CakePHP - Ограничение доступа по полю базы данных - PullRequest
1 голос
/ 29 марта 2011

У меня есть приложение, в котором есть записи базы данных, соответствующие городу или стране.Моя модель пользователя имеет поля city_id и country_id.Если city_id не равен нулю, пользователь должен просто иметь доступ к записям, которые соответствуют этому городу.Существует около 8 других моделей с внешним ключом city_id, например, Post, Advert, Venue, Competition ...

Я настраиваю Acl и хотел бы знать, есть ли хороший способ запретить доступк записям, которые не имеют того же city_id, что и аутентифицированный пользователь, если только у аутентифицированного пользователя city_id не равен 0 (что означает, что у него есть доступ к каждому городу).То же самое относится и к стране, у меня есть поле country_id, которое служит той же цели.

Руководство будет очень цениться, прежде чем я пойду и сделаю что-то действительно смешное и ужасное, спасибо.

1 Ответ

0 голосов
/ 29 марта 2011

Вы можете выполнять сложные проверки полномочий в своей собственной функции isAuthorized() в своем контроллере или модели.Вам нужно установить это в AuthComponent: $this->Auth->authorize = 'controller';

В книге CakePHP есть пример .

...