Carolina Román Salgado escribió:

> Para que mi código respete los permisos definidos por el sistema, yo
> debo pasar mis búsquedas sql por una función que se llama
> db_rewrite_sql, que despedaza mi búsqueda y le agrega cláusulas para
> asegurar que cada usuario ve una lista con las páginas que está
> autorizado a ver. Después de pasar por esa función, la misma consulta
> que está arriba se ve:
> 
> SELECT 
>       area.title, area.brief_description, area.main_picture 
>       FROM (SELECT DISTINCT ON (nid) * FROM node) n JOIN area USING (vid)
> INNER JOIN node_access na ON na.nid = n.nid 
>       WHERE (na.grant_view >= 1 
>               AND ((na.gid = 0 AND na.realm = 'all') 
>                       OR (na.gid = 2 AND na.realm = 'term_access') 
>                       OR (na.gid = 6 AND na.realm = 'term_access'))
>               )
>       ORDER BY title;

No se ve muy bonito, ¿por qué no implementas el control de acceso
con una vista en vez de reescribir manualmente la consulta?

-- 
Alvaro Herrera       Vendo parcela en Valdivia:  http://alvherre.cl/caboblanco
"Someone said that it is at least an order of magnitude more work to do
production software than a prototype. I think he is wrong by at least
an order of magnitude."                              (Brian Kernighan)
--
TIP 9: visita nuestro canal de IRC #postgresql-es en irc.freenode.net

Responder a