acessos a URL por um plugin, minha pergunta é a seguinte:
Caso o usuário não tenha permição a um determinado controller/action
teria como simplesmente mandar uma mensagem pra ele avisando que ele
não tem permissão aquele controller especifico? pois da maneira que
vejo na net o usuário é redirecionando pra uma outra página, nesse
caso não acho legal.
Abraço.
Abaixo o codigo do meu plugin:
- Código: Selecionar tudo
<?php
class Polibr_Controller_Plugin_Acl extends
Zend_Controller_Plugin_Abstract {
protected $_acl = null;
public function __construct(Zend_Acl $acl) {
$this->_acl = $acl;
}
public function preDispatch(Zend_Controller_Request_Abstract
$request) {
$resource = $request->getActionName();
$privilage = $request->getControllerName();
$auth = Zend_Auth::getInstance();
$storageObj = $auth->getStorage()->read();
if ($auth->hasIdentity()) {
foreach($storageObj->papeis as $papel) {
$papeis[] = $papel['s_papeis'];
}
try {
if (!$this->_acl->has($privilage)) {
throw new Zend_Exception('Recurso não encontrado:
'.$privilage);
}
$i = 0;
if(!$this->_acl->isAllowed($papeis[$i], $privilage,
$resource)) {
$redirector =
Zend_Controller_Action_HelperBroker::getStaticHelper('Redirector');
$redirector->gotoUrlAndExit('/index/sem-
permissao');
}
}catch (Zend_Exception $e) {
echo $e->getMessage();
}
catch(Zend_Acl_Exception $e) {
echo $e->getMessage();
}
}
}



