Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- class Application_Acl_Setup
- {
- protected $_acl;
- public function __construct()
- {
- $this->_acl = new Zend_Acl();
- $this->_initialize();
- }
- protected function _initialize()
- {
- $this->_setupRoles();
- $this->_setupResources();
- $this->_setupPrivileges();
- $this->_saveAcl();
- }
- protected function _setupRoles()
- {
- $this->_acl->addRole( new Zend_Acl_Role('guest') );
- $this->_acl->addRole( new Zend_Acl_Role('assistant') );
- $this->_acl->addRole( new Zend_Acl_Role('provider'), 'assistant' );
- $this->_acl->addRole( new Zend_Acl_Role('admin') );
- }
- protected function _setupResources()
- {
- $this->_acl->addResource( new Zend_Acl_Resource('auth') );
- $this->_acl->addResource( new Zend_Acl_Resource('error') );
- $this->_acl->addResource( new Zend_Acl_Resource('provider_manager') );
- $this->_acl->addResource( new Zend_Acl_Resource('users_manager') );
- $this->_acl->addResource( new Zend_Acl_Resource('assistant_manager') );
- $this->_acl->addResource( new Zend_Acl_Resource('tag_manager') );
- $this->_acl->addResource( new Zend_Acl_Resource('positioning_manager') );
- $this->_acl->addResource( new Zend_Acl_Resource('meet_budget') );
- }
- protected function _setupPrivileges()
- {
- // guest
- $this->_acl->allow( 'guest', 'auth', array('index', 'login') )
- ->allow('guest', 'error', array('error', 'forbidden') );
- // assistant
- $this->_acl->allow( 'assistant', 'auth', array('login', 'assistant_manager') )
- ->allow( 'assistant', 'error', array( 'error', 'forbidden' ) )
- ->allow( 'assistant', 'assistant_manager', array('editar') )
- ->allow( 'assistant', 'meet_budget', array('responder') );
- // provider
- $this->_acl->allow( 'provider', 'auth', array('login') )
- ->allow( 'provider', 'error', array( 'error', 'forbidden' ) )
- ->allow( 'provider', 'assistant_manager', array('adicionar', 'editar', 'remover') )
- ->allow( 'provider', 'provider_manager', array('adicionar', 'editar', 'remover') )
- ->allow( 'provider', 'tag_manager', array('adicionar', 'editar', 'remover') )
- ->allow( 'provider', 'positioning_manager', array('editar', 'remover') )
- ->allow( 'provider', 'meet_budget', array('responder', 'remover') );
- // administrator
- $this->_acl->allow( 'admin', 'auth', array('login') )
- ->allow( 'admin', 'error', array('error', 'forbidden') )
- ->allow( 'admin', 'users_manager', array('adicionar', 'editar', 'remover') );
- }
- protected function _saveAcl()
- {
- $registry = Zend_Registry::getInstance();
- $registry->set('acl', $this->_acl );
- }
- }
Add Comment
Please, Sign In to add comment