[cpif] r383 - in trunk: . backend frontend-web

svn at argo.es svn at argo.es
Thu Oct 11 18:07:25 CEST 2007


Author: jcea
Date: Thu Oct 11 18:07:25 2007
New Revision: 383

Log:
Flecos en los mensajes privados

Modified:
   trunk/TODO
   trunk/backend/database.py
   trunk/frontend-web/url_INVALIDA.py
   trunk/frontend-web/url_hilo.py
   trunk/frontend-web/url_nuevo_post_POST.py

Modified: trunk/TODO
==============================================================================
--- trunk/TODO	(original)
+++ trunk/TODO	Thu Oct 11 18:07:25 2007
@@ -429,4 +429,7 @@
   los metatags del hilo para mostrar exclusivamente el enlace al metatag al que
   tenemos acceso. Eso es lento. Revisarlo.
 
+- 20071011: Si hilo esta en varios metatags, y un usuario tiene acceso a mas
+  de uno de ellos, la toma de decision de si tiene acceso al hilo o no depende
+  del primer metatag que se encuentre con acceso.
 

Modified: trunk/backend/database.py
==============================================================================
--- trunk/backend/database.py	(original)
+++ trunk/backend/database.py	Thu Oct 11 18:07:25 2007
@@ -707,8 +707,21 @@
 
 def user_has_metatag_access(conn,usuario,metatag,write=False) :
   usuario=conn.get_root()["usuarios"]["usuarios"][normaliza_nick(usuario)]
-  if write and (metatag==usuario["metatag_privado"]) : return False  # De momento no permitimos mensajes privados
+  if write and (metatag==usuario["metatag_privado"]) : return False  # Los mensajes privados no se escriben directamente en el metatag
   return metatag in usuario["punto de lectura no leidos"]
+
+def user_has_thread_access(conn,usuario,thread,write=False) :
+  root=conn.get_root()
+  u=root["usuarios"]["usuarios"][normaliza_nick(usuario)]
+  plnl=u["punto de lectura no leidos"]
+  thread=root["hilos"]["hilos"].get(thread)
+  if thread==None : return False
+  for metatag in thread["metatags"] :
+    if metatag in plnl :
+      if metatag==u["metatag_privado"] :
+        return globales.allow_private_messages
+      return True
+  return False
 
 def get_metatags(conn,usuario) :
   metatags=[]

Modified: trunk/frontend-web/url_INVALIDA.py
==============================================================================
--- trunk/frontend-web/url_INVALIDA.py	(original)
+++ trunk/frontend-web/url_INVALIDA.py	Thu Oct 11 18:07:25 2007
@@ -6,6 +6,6 @@
   import skins
   pagina = skins.Skin(['error'], usuario)
   d = {"page_title": "cpif - ERROR",
-       "generic_message": "<h2>ERROR<H2>\r\nLa pagina que buscas no existe, pich&oacute;n</h2>"}
+       "generic_message": "<h2>ERROR<H2>\r\nLa pagina que buscas no existe, o no tienes acceso a ella</h2>"}
   pagina.load_dict(d)
   return (pagina.web(404))

Modified: trunk/frontend-web/url_hilo.py
==============================================================================
--- trunk/frontend-web/url_hilo.py	(original)
+++ trunk/frontend-web/url_hilo.py	Thu Oct 11 18:07:25 2007
@@ -29,7 +29,7 @@
   else :
     mts=conn.get_root()["usuarios"]["usuarios"][database.normaliza_nick(usuario)]["punto de lectura no leidos"]
     for metatag in metatags :
-      if metatag in mts : break  # Siempre hay al menos uno
+      if metatag[0] in mts : break  # Siempre hay al menos uno
 
   import skins 
   pagina = skins.Skin(path,usuario,handler.headers)

Modified: trunk/frontend-web/url_nuevo_post_POST.py
==============================================================================
--- trunk/frontend-web/url_nuevo_post_POST.py	(original)
+++ trunk/frontend-web/url_nuevo_post_POST.py	Thu Oct 11 18:07:25 2007
@@ -24,7 +24,8 @@
   if not usuario : # Acceso anonimo
     return (302,{"Location":"/LOGIN/hilo/%d" % hilo}, "")
   import database
-  if not database.user_has_metatag_access(conn,usuario,metatag,write=True) :
+  if not database.user_has_thread_access(conn,usuario,metatag,write=True) :
+    print "XXX"
     return None
 
   if database.thread_is_readonly(conn,hilo) :



More information about the cpif mailing list