[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