Ver Mensaje Individual
  #6 (permalink)  
Antiguo 21/04/2009, 08:54
Avatar de GatorV
GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: ayuda como usar zend Acl

Pues si haces un ViewHelper es muy posible hacerlo, en el link que te pase estan ejemplos a dos clases, uno es un plugin para el FrontController, y el otro es un Action Helper, con estos dos puedes desarrollar lo que quieres.

Ahora recuerda que la idea es que tu capa de logica este en el action de tu controller, y en el template renderees ya los modulos que quieras, yo por ejemplo hago algo así:

(Gecko_Controller_Action hereda directamente de Zend_Controller_Action)
Código php:
Ver original
  1. <?php
  2.  
  3. class NavController extends Gecko_Controller_Action {
  4.     public function menuAction() {
  5.         $aMenuItems = array();
  6.        
  7.         if ($this->_application->isLoggedIn == true) {
  8.             switch ($this->_application->user->getUserGroup()) {
  9.                 case 'user':
  10.                     $aMenuItems[] = array( 'label' => 'News', 'url' => array( 'controller' => 'news', 'action' => 'index' ), 'image' => 'news.gif' );
  11.                     break;
  12.                 case 'admin':
  13.                     $aMenuItems[] = array( 'label' => 'User', 'url' => array( 'controller' => 'admin', 'action' => 'users' ), 'image' => 'users.gif' );
  14.                     break;
  15.             }
  16.         } else {
  17.             $aMenuItems[] = array( 'label' => 'Login', 'url' => array( 'controller' => 'login', 'action' => 'login' ), 'image' => 'login.gif' );
  18.         }
  19.        
  20.         $this->view->menuItems = $aMenuItems;
  21.     }
  22. }

Así dependiendo en el menu puedo comparar si tiene o no permisos para cierto modulo del programa y dibujo / oculto el item del menu.

Saludos.