Разрешения на действия и страницы - PullRequest
0 голосов
/ 08 июля 2011

При использовании Zend_Acl, есть только проверка прав доступа к определенному модулю / контроллеру / действию ... Теперь, когда у меня есть собственные URL-адреса для страниц, не все страницы имеют свой собственный mdouel / controller / action.И я хотел бы, чтобы люди видели некоторые страницы, но не все, нет способа сделать это с Zend_Acl, верно?Так я должен создать новую систему разрешений для страниц?

Ответы [ 2 ]

1 голос
/ 08 июля 2011

Zend_Acl будет обрабатывать все, что вам нужно для контроля доступа.Ваша задача - определить ресурс и привилегии.Это означает, что вы можете добавить разрешения на любой запрос.Похоже, у вас есть алгоритм ACL, который вы скопировали из руководства ZF или другого места в Интернете, и вы пытаетесь придерживаться этого, как если бы он был стандартом.Zend_Acl никогда не говорит, что вы должны придерживаться их метода.

Теперь к вашей проблеме.Поскольку у вас есть одинаковый module/controller/action для каждой страницы, вы должны рассматривать его как один ресурс, а затем вы можете определить привилегии уровня страницы на основе параметра вашего пользовательского URL, который вы упомянули.

Проще говоря, вы можетесделайте это:

$acl->allow('role', 'Module:Controller:Action', array('UrlParams'));

Не забывайте, Zend_Acl::allow основано на ресурсах и привилегиях НЕ module/controller/action.Смотрите ниже:

$acl->allow('role','resource',array('privileges'));
0 голосов
/ 08 июля 2011

Итак, проверьте разрешения на все действия контроллера:

$this->allow('userGroup', 'controller');

таким образом вместо этого проверяются только разрешения и только для одного действия контроллера:

$this->allow('userGroup', 'controller', 'action');

Я надеюсь обратиться за помощью

...