[pyar] Web2py - restringir records por usuario
Luciano Bovio
omicronvt en gmail.com
Sab Oct 26 10:16:12 ART 2013
On 25/10/13 21:06, Claudio Omar Melendrez Baeza wrote:
> Lo que buscas en realidad es "filtrar sin especificar filtros" en cada
> query, no?
> Porque si realmente queres "no filtrar" el unico metodo es denormalizar
> los modelos, y seguro NO QUERES ESO (a menos que uses NoSQL).
> Pregunto por las dudas... nunca se sabe que necesita la gente.
>
>
> 2013/10/25 Sebastian <sebastian.paniagua en gmail.com
> <mailto:sebastian.paniagua en gmail.com>>
>
> Hola Luciano!
>
> Una opción podría ser:
>
> 1. Agregar a la tabla en cuestión el campo "created_by"
>
> Field('created_by', db.auth_user, default=auth.user_id,
> writable=False, readable=False),
>
> 2. luego, en la misma tabla, agregar un filtro (common_filter)
>
> common_filter = lambda query: db.mytable.created_by == auth.user.id
> <http://auth.user.id>,
>
> Ejemplo completo:
>
> db.define_table('mytable',
> Field('myfield','string'),
> *Field('created_by', db.auth_user, default=auth.user_id,
> writable=False, readable=False),*
> * common_filter = lambda query: db.mytable.created_by ==
> auth.user.id <http://auth.user.id>*
> )
>
> Cada vez que se consulte ésta tabla, se va a filtrar automáticamente
> por el id del usuario logueado.
>
> Saludos!
>
>
>
> El 25 de octubre de 2013 14:29, Alan Etkin <spametki en gmail.com
> <mailto:spametki en gmail.com>> escribió:
>
> > Tengo un sistema multiusuario y quisiera que cada usuario
> solo pueda
> > acceder a los registros creados por él. Hay alguna manera de
> hacer esto
> > sin tener que filtrar datos en cada query ?
> >
> > Gracias de antemano.
>
> Podés usar los métodos de la clase Auth para la permisología y
> configurar los filtros.
>
> http://www.web2py.com/books/default/chapter/41/09/control-de-acceso#Autorizaci%C3%B3n
> _______________________________________________
> pyar mailing list pyar en python.org.ar <mailto:pyar en python.org.ar>
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software
> Libre de Argentina - http://www.usla.org.ar
>
>
>
>
> --
> Sebastian
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar <mailto:pyar en python.org.ar>
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre
> de Argentina - http://www.usla.org.ar
>
>
>
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de Argentina - http://www.usla.org.ar
>
Exacto, lo que quiero es : "filtrar sin especificar filtros" en cada query.
La solución de Alan/Sebastián es justo lo que necesito.
Un Saludos
More information about the pyar
mailing list