En el ejemplo esta hardcodeado, pero perfectamente lo podrias tener en el config y pasarlo por el constructor, luego para agregar o quitar seria simplemente editar el .ini
Application_Plugin_AccessCheck
Código PHP:
Ver originalclass Application_Plugin_AccessCheck
extends Zend_Controller_Plugin_Abstract
{
...
private $_blackList;
public function __construct
(Zend_Auth
$auth, array $blackList) {
$this->_blackList = $blackList;
...
}
}
Bootstrap
Código PHP:
Ver originalclass Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
public function _initPlugins()
{
$options = $this->getOptions();
$fc = Zend_Controller_Front::getInstance();
$fc->registerPlugin(new Application_Plugin_AccessCheck(Zend_Auth::getInstance()), $options['blackList']);
}
}
application.ini
Código INI:
Ver original...
blackList[] = "default:index:index"
blackList[] = "users:index:list"
Creo que es preferible algo asi, a a estar en los diferentes action's comprobando para mostrar una vista u otra, tenes que pensar que en otro proyecto se te puede presentar la misma situación y para solventarlo seria tan simple como integrar el plugin, AccessCheck es candidato a estar en tu libreria
.
Saludos.