Foros del Web » Programando para Internet » PHP » Zend »

plugin AccessChek

Estas en el tema de plugin AccessChek en el foro de Zend en Foros del Web. otra consulta que me urgio!!! se puede hacer que no aparezcan los modulos que no le correspondan a ese usuario??, por ejemplo este es el ...

  #31 (permalink)  
Antiguo 29/02/2012, 06:54
 
Fecha de Ingreso: diciembre-2008
Mensajes: 805
Antigüedad: 15 años, 11 meses
Puntos: 20
Respuesta: plugin AccessChek

otra consulta que me urgio!!! se puede hacer que no aparezcan los modulos que no le correspondan a ese usuario??, por ejemplo este es el archivo!!

navigation.xml

Código:
<?xml version="1.0" encoding="UTF-8"?>
<configdata>
        <nav>
                <home>
                        <label>Home</label>
                        <module>Qnovedades</module>
                        <controller>index</controller>
                        <action>index</action>
                </home>

                <user>
                        <label>Clientes</label>
                            <uri>#</uri>
                        <pages>
                                <alta>
                                        <label>Alta</label>
                                        <module>Qclientes</module>
                                        <controller>qclientes</controller>
                                        <action>sign</action>
                                        <resource>Alta</resource>
                                </alta>
                                <consulta>
                                        <label>Consulta</label>
                                        <module>Qclientes</module>
                                        <controller>qclientes</controller>
                                        <action>consulta</action>
                                        <resource>consulta</resource>
                                </consulta>                       
                         <novedades>
                                        <label>Novedades</label>
                                          <module>Qnovedades</module>
                                        <controller>index</controller>
                                        <action>index</action>
                                        <resource>Novedades</resource>
                        </novedades>
                        </pages>
                </user>

        </nav>
</configdata>
  #32 (permalink)  
Antiguo 29/02/2012, 07:00
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 10 meses
Puntos: 845
Respuesta: plugin AccessChek

Si se puede, tienes que setear a navigation el acl correspondiente, es por esta razón que el tuto que estas siguiendo guarda el acl como propiedad del Bootstrap.

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #33 (permalink)  
Antiguo 29/02/2012, 08:46
 
Fecha de Ingreso: diciembre-2008
Mensajes: 805
Antigüedad: 15 años, 11 meses
Puntos: 20
Respuesta: plugin AccessChek

muchas gracias!! ahora veo como se hace!!!
  #34 (permalink)  
Antiguo 29/02/2012, 12:47
 
Fecha de Ingreso: diciembre-2008
Mensajes: 805
Antigüedad: 15 años, 11 meses
Puntos: 20
Respuesta: plugin AccessChek

para setear se usas un tag mas de privilegios??

<privilege>index</privilege>
muchas gracias
  #35 (permalink)  
Antiguo 01/03/2012, 06:49
 
Fecha de Ingreso: diciembre-2008
Mensajes: 805
Antigüedad: 15 años, 11 meses
Puntos: 20
Respuesta: plugin AccessChek

Por ejemplo cuando quiero utilizar o llamar a otra acción que no este en el menu de navegacion, me sale error, por que es o que estoy haciendo mal??? mucha gracias por la ayuda
  #36 (permalink)  
Antiguo 01/03/2012, 07:00
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 10 meses
Puntos: 845
Respuesta: plugin AccessChek

Mas info sergiop21, que error exactamente ?, postea el acl y la uri que intentas acceder al momento del error.

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #37 (permalink)  
Antiguo 01/03/2012, 07:05
 
Fecha de Ingreso: diciembre-2008
Mensajes: 805
Antigüedad: 15 años, 11 meses
Puntos: 20
Respuesta: plugin AccessChek

Cita:
atal error: Uncaught exception 'Zend_Acl_Exception' with message 'Resource 'error' not found' in /var/www/qaz/library/Zend/Acl.php:365 Stack trace: #0 /var/www/qaz/library/Zend/Acl.php(777): Zend_Acl->get('error') #1 /var/www/qaz/application/modules/Qclientes/plugins/AccessCheck.php(25): Zend_Acl->isAllowed('admin', 'error', 'error') #2 /var/www/qaz/library/Zend/Controller/Plugin/Broker.php(309): Qclientes_Plugin_AccessCheck->preDispatch(Object(Zend_Controller_Request_Http )) #3 /var/www/qaz/library/Zend/Controller/Front.php(941): Zend_Controller_Plugin_Broker->preDispatch(Object(Zend_Controller_Request_Http )) #4 /var/www/qaz/library/Zend/Application/Bootstrap/Bootstrap.php(97): Zend_Controller_Front->dispatch() #5 /var/www/qaz/library/Zend/Application.php(366): Zend_Application_Bootstrap_Bootstrap->run() #6 /var/www/qaz/public/index.php(37): Zend_Application->run() #7 {main} thrown in /var/www/qaz/library/Zend/Acl.php on line 365
este es mi acl
Código PHP:
<?php
class Qclientes_Model_LibraryAcl extends Zend_Acl{

    public function  
__construct() {

        
$this->add(new Zend_Acl_Resource('index'));
        
        
$this->add(new Zend_Acl_Resource('qclientes'));
        
$this->add(new Zend_Acl_Resource('consulta'),'qclientes');
        
$this->add(new Zend_Acl_Resource('edit'),'qclientes');
        
$this->add(new Zend_Acl_Resource('borrar'),'qclientes');

        
$this->addRole(new Zend_Acl_Role('user'));
        
$this->addRole(new Zend_Acl_Role('admin'),'user');


        
$this->allow('admin''qclientes''consulta');
        
$this->allow('admin''qclientes''borrar');
        
$this->allow('admin''qclientes''edit');
        
$this->allow('admin''index''index');
        
        
$this->allow('user''qclientes','consulta');
        
$this->allow('user''index''index');
    }


}

?>
muchas gracias!!!!!
  #38 (permalink)  
Antiguo 01/03/2012, 07:12
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 10 meses
Puntos: 845
Respuesta: plugin AccessChek

El error te lo dice todo, no tienes el resource error en el acl, comprueba la excepcion

Zend_Acl->isAllowed('admin', 'error', 'error')

agrega el resource al acl

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #39 (permalink)  
Antiguo 01/03/2012, 07:34
 
Fecha de Ingreso: diciembre-2008
Mensajes: 805
Antigüedad: 15 años, 11 meses
Puntos: 20
Respuesta: plugin AccessChek

Bien eso lo entendia, pero lo coloque y no me funciona, era por que no tenia colocado en el acl, ya lo coloque y me da este error ahora.

Cita:
Message: Resource 'Qclientes' not found
Stack trace:
#0 /var/www/qaz/library/Zend/Acl.php(777): Zend_Acl->get('Qclientes')
#1 /var/www/qaz/application/modules/Qclientes/plugins/AccessCheck.php(25): Zend_Acl->isAllowed('admin', 'Qclientes', 'edit')
pero me muestra la pantalla edit superpuesta con la anterior,
  #40 (permalink)  
Antiguo 01/03/2012, 07:40
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 10 meses
Puntos: 845
Respuesta: plugin AccessChek

Estas pasando Qclientes en mayúscula, el AccessCheck debería utilizar strtolower, en todo caso postea AccessCheck

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #41 (permalink)  
Antiguo 01/03/2012, 07:50
 
Fecha de Ingreso: diciembre-2008
Mensajes: 805
Antigüedad: 15 años, 11 meses
Puntos: 20
Respuesta: plugin AccessChek

Buenisimo!!!! anduvo!!!

Código PHP:
    public function  preDispatch(Zend_Controller_Request_Abstract $request)
    {
        
$resource strtolower($request->getControllerName());
        
$action $request->getActionName();

        
$user $this->_auth->getStorage()->read();
         
$role =   $user->us_role;
      



        if (!
$this->_acl->isAllowed($role$resource$action)) {
           
$request->setModuleName('Qlogin')
                          ->
setControllerName('index')
                          ->
setActionName('index');

           
// echo "no tiene permisos";
            //die;



        
}

    }




ahi lo coloque y funciono correctamente!!!! muchas gracias!!! la unica duda que me queda es sobre lo que postee mas arriba, sobre setear el navigation desde ya muchas gracias!!!!
  #42 (permalink)  
Antiguo 07/03/2012, 10:05
 
Fecha de Ingreso: diciembre-2008
Mensajes: 805
Antigüedad: 15 años, 11 meses
Puntos: 20
Respuesta: plugin AccessChek

Tengo un nuevo problema!!! eh creado un modulo nuevo y me sale el siguiente error:

Código PHP:

View script 
for controller Qequipos and script/action name index
An error occurred
Application error
Exception information
:

MessageResource 'qequipos' not found 
Stack trace
:
#0 /var/www/qaz/library/Zend/Acl.php(777): Zend_Acl->get('qequipos') 
me muestra lo que tiene el index, pero a su vez me sale ese error: hace rato que estoy tratando de solucionar pero nada, desde ya muchas gracias
  #43 (permalink)  
Antiguo 07/03/2012, 10:19
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: plugin AccessChek

Tienes que agregar ese resource también al ACL para que lo puedas verificar.

Saludos.
  #44 (permalink)  
Antiguo 07/03/2012, 10:31
 
Fecha de Ingreso: diciembre-2008
Mensajes: 805
Antigüedad: 15 años, 11 meses
Puntos: 20
Respuesta: plugin AccessChek

jaja, muchas gracias, pero esto me esta tomando el pelo, hace 3 otras que lo coloco, ahora lo coloco nuevamente y funciona!!! muchas gracias!!!!!
  #45 (permalink)  
Antiguo 10/05/2012, 10:36
 
Fecha de Ingreso: agosto-2011
Mensajes: 14
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: plugin AccessChek

Yo tengo una duda que creo cabe en este tema (y pra no crear otro), al momento de que implementas zend_acl y das de alta tus resources, permisos, etc; cada que se crea un nuevo modulo, controlador o acción sale el error Resource 'modulo:controller:action' not found; hay alguna manera de "decirle" a zend_acl que algunos "resources" no sean verificados, osea que sean libres sin que se tengan que declarar??. De antemano gracias!!
  #46 (permalink)  
Antiguo 10/05/2012, 10:48
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: plugin AccessChek

Eso no lo deberías de implementar en el Zend_Acl, más bien, en tu plugin, puedes tener un whitelist o allowlist, y compruebas el modulo:controller:action ahí y decides si checar o no el Zend_Acl.
  #47 (permalink)  
Antiguo 10/05/2012, 11:17
 
Fecha de Ingreso: agosto-2011
Mensajes: 14
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: plugin AccessChek

Muy cierto!!, muchas gracias!

Etiquetas: plugin
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:44.