2012-04-11 5 views
0

Я хочу предоставить доступ для конкретных действий. У меня есть модуль: privilegs, model: privilege, action: index и manage.Предоставить доступ к действию для роли

я делаю как этот

class My_ACL extends Zend_Acl { 

    public function __construct() { 

    $this->addRole(new Zend_Acl_Role('admin')); 

    $this->add(new Zend_Acl_Resource('discussions')) 
      ->add(new Zend_Acl_Resource("privileges")) 
      ->add(new Zend_Acl_Resource('privileges:privilege:index')); 
      // another way for adding actions. 
     // ->add(new Zend_Acl_Resource('privileges:privilege',array('index','manage')); 

     $this->allow('admin', 'account') 
     ->allow('admin', 'privileges:privilege'); 
     } 
    } 

Когда я делаю так, индекс и управление ими действия не работают?!

ответ

0

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

Так где-то в запросе (возможно, в качестве плагина) вы должны проверить, если текущий зарегистрированный пользователь имеет доступ к определенному ресурсу, и если нет, то что-то сделать ...

if(!$acl->isAllowed($users_role, $resource_they_want_to_access)) 
{ 
    // go away, display access denied page etc 
} 
Смежные вопросы