Ayuda con ACL en kumbia..!

edited febrero 2009 in Principiantes
Quiciera que alguien me explicara como se usa estas funciones de acl.php en kumbia, se los agradeceria mucho de antemano graxias.:!

Comentarios

  • edited 10:16
    Ya estoy trabajando en un How To sobre ese tema que _NO_ esta documentado en el manual y es una tarea que tenemos para esta nueva version lo mas seguro es que este fin de semana suba esa informacion porq se que hay muchos que tienen la misma duda... <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->
  • edited 10:16
    Ya estoy trabajando en un How To sobre ese tema que _NO_ esta documentado en el manual y es una tarea que tenemos para esta nueva version lo mas seguro es que este fin de semana suba esa informacion porq se que hay muchos que tienen la misma duda... <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->


    Excelente compañero <!-- s:!: --><img src="{SMILIES_PATH}/icon_exclaim.gif" alt=":!:" title="Exclamation" /><!-- s:!: --> estaremos a la espera, ya que es algo muy util... y de antemano Gracias.:! <!-- s:?: --><img src="{SMILIES_PATH}/icon_question.gif" alt=":?:" title="Question" /><!-- s:?: -->
  • Disculpen lo tarde respecto a la respuesta de este tema ya tengo un ejemplo que pienso colocar en las proximas horas...
  • edited 10:16
    Buenas,

    ¿Donde se encuentra el How to ?

    Gracias
  • Lo prometido es deuda, una vez mas disculpen...
    &lt;?php
    
    class PacienteController extends ApplicationController {
    	public $acl;
    
    	public function __construct(){
    		$this-&gt;acl = new Acl();
    
    		//agregando el rol
    		$this-&gt;acl-&gt;add_role(new AclRole('invitados'));
    		$this-&gt;acl-&gt;add_role(new AclRole('admin'));
    
    		//agregando los recurso
    		$this-&gt;acl-&gt;add_resource(new AclResource('paciente'), 'agregar');
    		
    		return $this-&gt;acl;
    		
    
    	}
    	/*******************************************************************************************************************/
    
    	public function agregar(){
    
    		//permitiendo el acceso
    		$this-&gt;acl-&gt;allow('admin', 'paciente', 'agregar');
    			
    
    		//verificando si admin tiene acceso a la accion agregar
    		if($this-&gt;acl-&gt;is_allowed('admin', 'paciente', 'agregar')){
    			print (&quot;Permitido&quot;);
    
    		}else{
    			print (&quot;No Permitido&quot;);
    		}
    	}
    }
    

    Asi de sencillo son los ACL... cualquier duda pregunten
  • edited 10:16
    Eso del recurso... qué es?

    La función 'agregar' la entiendo, pero no se a qué vien lo de 'paciente'...
  • el recurso es lo que se puede acceder, en este caso tenemos un recurso que se llama paciente, al cual cuando se crea $this->acl->add_resource(new AclResource('paciente'), 'agregar'); se le indica q habran acciones asociados a el, en este caso agregar...

    Cualquier duda vuelves a preguntar..!
  • edited 10:16
    Ok, ahora sí.
    Gracias deivinsontejada.
  • para las personas que tengan problema que no se encuentra la class Acl esta debe ser cargada como un modulo, la forma de hacer esto es editando el archivo config/boot.ini y agregar...
    kumbia.acl de esta manera se carga el modulo y lo tenemos disponible en cualquier instancia de la aplicación...
    Esto para la versión 0.5
  • edited 10:16
    Ya que esta abierto este tema, me parecio conveniente seguir este hilo; este es el codigo que estoy usando:
    	public $acl;
       
    	public function __construct(){
            $this-&gt;acl = new Acl();
    
            //agregando el rol
            $this-&gt;acl-&gt;add_role(new Acl_Role('admin'));
    
            //agregando los recurso
            $this-&gt;acl-&gt;add_resource(new Acl_Resource('instalaciones'), 'agregar','index');
    
            return $this-&gt;acl;
          	}
    
    public function agregar(){
    
    		//permitiendo el acceso
            $this-&gt;acl-&gt;allow('admin', '*', '*');
            #$this-&gt;acl-&gt;allow('admin', 'instalaciones', 'index');  
    
            //verificando si admin tiene acceso a la accion agregar
            if($this-&gt;acl-&gt;is_allowed('admin', 'instalaciones', 'agregar')){
             print (&quot;Permitido para agregar&quot;);
    
            }else{
             print (&quot;No Permitido para agregar&quot;);
            }
    	}	
    

    El controlador se llama instalaciones, y lo que deseo hacer es que solo se pueda visualizar el formulario de carga, siempre y cuando el usuario sea administrador del sistema; en este caso estoy probando con agregar; el problema esta en que siempre me imprime el "No permitido para agregar". Tengo algo mal? Desde ya muchas gracias!
  • Tengo el mismo problema, tambien me da ese problema el ejemplo de mas arriba.
  • $this-&gt;acl-&gt;allow('admin', '*', '*');
    $this-&gt;acl-&gt;allow('admin', 'instalaciones', 'index');
    
    Lo que veo es que tu así como le asignas permisos, luego los sobreescribes es decir se los quita...

    esto trae como consecuencia que cuando vuelves a evaluar es falsa y no esta permitido el usuario admin...
    if($this-&gt;acl-&gt;is_allowed('admin', 'instalaciones', 'agregar')){
    
  • edited 10:16
    Gracias deivinsontejeda por tu pronta respuesta, esa linea que decis vos esta comentada, en realidad la deberia haber borrado para no confundir; de todos modos la borre en mi script y no funciona! Les recuerdo que estoy usando la version 0.4.7a! Saludos y gracias nuevamente!
  • ...Les recuerdo que estoy usando la version 0.4.7a! Saludos y gracias nuevamente!
    Esto tambien debias haberlo comentado el ejemplo, funciona en la 0.5 ya que en la 0.4.x nunca toque ese modulo, la invitacion nuevamente es a trabajar en la 0.5, ya tenemos una Docs para esa version que estaremos publicando dentro de poco
  • Hola estoy probando Kumbia 5.0 RC2 y quisiera saber como si yo tengo una aplicación donde tengo definido en mi BD un conjunto de roles y a cada rol le corresponden Acciones y permisos a determinados recursos, como puedo vincular esto con ACL pues lo que he visto en este hilo no me aclara muy bien mi duda, pues yo no quiero poner esos valores de forma estáticos, sino que a medida que voy creando los roles a estos pueda irles dando sus niveles de acceso, alguien tiene alguna aplicación de este tipo o algún ejemplo que me pueda ayudar.

    saludos
  • Hola se de tu inconveniente por llamarlo de alguna manera yo actualmente trabajo en un esquema muy parecido se como implementarlo pero no tengo código sin embargo te puedo ayudar en ese sentido...
    Puedes abrir este hilo por la lista de correo de manera que los demas usuarios se enteren y si se le presenta esta misma duda sepan por donde entrarle...
  • ok ya lo publique vamos a ver hasta donde llega
  • edited 10:16
    segun el ejemplo mostrado, seria necesario definir los roles en cada controlador que lo requiera???
    es decir, existe una manera de definir roles de manera general para toda la aplicacion???
  • si claro pudieras guardar eso en una BD y asociar los roles al user y simplemente con una consulta obtienes esa información en cualquier instancia de la app
Sign In or Register to comment.