Общее разрешение для групп в Acl-cakePHP - PullRequest
2 голосов
/ 12 августа 2010

Я использую Acl в новом веб-приложении.
В моем приложении есть четыре группы пользователей.
Я дал $this->Auth->authorize = 'actions', чтобы он автоматически проверял разрешение на действия.

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

1) Есть ли способ дать разрешение всем типам пользователей с помощью одного оператора allow?
2) Есть ли способ разрешить и запретить пользователю, проверив, передан ли параметр или нет?
, что означает, что мне нужно дать разрешение на передачу параметра в действие для конкретного пользователя.Если какой-либо другой пользователь передаст параметр и попытается получить доступ к данным, я должен отказать им.

можно ли управлять доступом на уровне строк с помощью ACL?

Буду признателен за любую помощь.
Заранее благодарен:)

Ответы [ 2 ]

2 голосов
/ 13 августа 2010
  1. Если вы добавите $this->Auth->allow('action1','action2'...) в beforeFilter() контроллера, доступ будет предоставлен всем пользователям. Если вам нужно решение только для ACL, вы должны создать родительский aco, для которого все остальные acos, которые вы хотите разрешить, являются дочерними. Затем предоставьте своим пользователям права на родителя. Плагин ACL из пекарни может пригодиться, если у вас уже есть древовидная структура ACL. Для построения древовидной структуры ACL полезен скрипт build_acl() в руководстве в конце руководства по тортам.

  2. Разрешить передачу параметра для всех пользователей и проверить их роль в действии - не вариант?

0 голосов
/ 13 августа 2010

решение для 2-й проблемы: здесь
, но это не реализовано с помощью ACL: (

...