0
특정 컨텐츠를 보여주기 위해 Zend_Acl을 사용하여 허용 된 컨텐츠를 Zend_Acl의 역할 및 리소스별로 확인합니다. 이것은 잘 동작하지만 리소스의 부모를 확인하는 hasParentResource() 메소드와 같은 것을 갖고 싶습니다.
예 : 뷰
$acl->add(new Zend_Acl_Resource('default'));
$acl->add(new Zend_Acl_Resource('admin'));
$acl->add(new Zend_Acl_Resource('admin::resource1'), 'admin');
$acl->add(new Zend_Acl_Resource('admin::resource2'), 'admin');
$acl->add(new Zend_Acl_Resource('admin::resource3'), 'admin');
/roles
$acl->addRole(new Zend_Acl_Role('guest'));
$acl->addRole(new Zend_Acl_Role('user'), 'guest');
$acl->addRole(new Zend_Acl_Role('admin'), 'user');
//deny/allow
$acl->deny();
$acl->allow('guest', 'default');
$acl->allow('user', array(
'admin::resource1',
'admin::resource3'
));
$acl->allow('admin');
:
개념은 사용자가 자원에 대한 액세스 권한이없는 경우,<h2>
태그를 포함하는 콘텐츠를 숨긴다
<h1>Admin</h1>
Lorem ipsum dolor...
<?php if($this->acl->hasParentResource('admin')): ?>
<h2>Resources</h2>
<?php if($this->acl->isAllowed('admin::resource1')): ?>
Ressource 1 stuff
<?php endif; ?>
<?php if($this->acl->isAllowed('admin::resource2')): ?>
Ressource 2 stuff
<?php endif; ?>
<?php if($this->acl->isAllowed('admin::resource3')): ?>
Ressource 3 stuff
<?php endif; ?>
<?php endif; ?>
1,2,3 . 내가 아는
,이를 작성할 수
<?php if($this->acl->isAllowed('admin::resource1') || $this->acl->isAllowed('admin::resource2') || $this->acl->isAllowed('admin::resource3')): ?>
<h2>Resources</h2>
...
<?php endif; ?>
그러나 나는이 세 가지 자원 만 갖고 있지 않으며 뭔가를 변경하면 그러한 진술에 새로운 자원을 추가하고 싶지 않습니다.
나는 역할을하고 싶지 않았다, 그러나 이것은 좋은 힌트이었다
하도록! 나는 $ this-> acl-> inherits ($ resource, 'admin')'을 사용하고있다. 감사! – StinsonMaster