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

svn at argo.es svn at argo.es
Sat Jun 9 23:03:29 CEST 2007


Author: jcea
Date: Sat Jun  9 23:03:28 2007
New Revision: 142

Log:
Seguimos avanzando en permitir acceso anonimo al foro.
Solo queda un detalle mas, como se explica en la TODO.



Modified:
   trunk/TODO
   trunk/backend/database.py
   trunk/frontend-web/globales.py
   trunk/frontend-web/init.py
   trunk/frontend-web/servidor_web.py
   trunk/frontend-web/url_nuevo_hilo_POST.py
   trunk/frontend-web/url_nuevo_post_POST.py
   trunk/frontend-web/url_nuevo_usuario_POST.py

Modified: trunk/TODO
==============================================================================
--- trunk/TODO	(original)
+++ trunk/TODO	Sat Jun  9 23:03:28 2007
@@ -100,3 +100,11 @@
   idea modificar el proceso de escribir un mensaje nuevo
   para no volver a pasar por el metatag.
 
+- 20070609: Ahora que permitimos acceso anonimo, hay que
+  cambiar el skin para que permita hacer login si no estamos
+  autentificados, y que no salga la opcion de escribir
+  un hilo/mensaje nuevo si no estamos autentificados.
+
+  Para ello lo mas simple es pasar al SKIN el nombre del
+  usuario, algo que de todas formas necesitaria.
+

Modified: trunk/backend/database.py
==============================================================================
--- trunk/backend/database.py	(original)
+++ trunk/backend/database.py	Sat Jun  9 23:03:28 2007
@@ -217,6 +217,13 @@
 
 def actualiza_no_leidos(conn,usuario) :
   root=conn.get_root()
+  if not usuario : # Acceso anonimo. Nos encargamos de que nada salga como "no leido"
+    usuario=root["usuarios"]["usuarios"][usuario]
+    last=root["mensajes"]["num_mensajes"]
+    if usuario["ultimo mensaje conocido"]!=last
+      usuario["ultimo mensaje conocido"]=last
+    return
+
   punto_de_lectura_global=root["punto_de_lectura_global"]
   usuario=root["usuarios"]["usuarios"][normaliza_nick(usuario)]
   l=usuario["ultimo mensaje conocido"]
@@ -278,23 +285,24 @@
     i-=1
     if not i : break
 
-  finished=posicion>=hilo["num_mensajes"]
-  pl=u["punto de lectura"].get(hilo_num,0)
-  if not pl : # Nunca hemos visitado ese hilo, o hace mucho que no cambia
-    pl=root["punto_de_lectura_global"][hilo_num]
   metatags=hilo["metatags"]
-  if pl<msg_num :
-    u["punto de lectura"][hilo_num]=msg_num
-    pnl=0
-    for metatag in metatags :
-      plnl=u["punto de lectura no leidos"][metatag]
-      nl=plnl.get(hilo_num)
-      if nl and (nl<=msg_num) :
-        if finished : del plnl[hilo_num]
-        else :
-          if not pnl :
-            pnl=iterador_mensajes.next()[0] # El primer no leido
-          plnl[hilo_num]=pnl
+  finished=posicion>=hilo["num_mensajes"]
+  if usuario : # Acceso *NO* anonimo
+    pl=u["punto de lectura"].get(hilo_num,0)
+    if not pl : # Nunca hemos visitado ese hilo, o hace mucho que no cambia
+      pl=root["punto_de_lectura_global"][hilo_num]
+    if pl<msg_num :
+      u["punto de lectura"][hilo_num]=msg_num
+      pnl=0
+      for metatag in metatags :
+        plnl=u["punto de lectura no leidos"][metatag]
+        nl=plnl.get(hilo_num)
+        if nl and (nl<=msg_num) :
+          if finished : del plnl[hilo_num]
+          else :
+            if not pnl :
+              pnl=iterador_mensajes.next()[0] # El primer no leido
+            plnl[hilo_num]=pnl
 
   return (meta,mensajes,finished,metatags)
 

Modified: trunk/frontend-web/globales.py
==============================================================================
--- trunk/frontend-web/globales.py	(original)
+++ trunk/frontend-web/globales.py	Sat Jun  9 23:03:28 2007
@@ -15,3 +15,6 @@
 # Numero de mensajes por pagina de hilo
 thread_len=10
 
+# Permitimos el acceso anonimo al foro
+allow_anonymous=False
+

Modified: trunk/frontend-web/init.py
==============================================================================
--- trunk/frontend-web/init.py	(original)
+++ trunk/frontend-web/init.py	Sat Jun  9 23:03:28 2007
@@ -54,6 +54,9 @@
     else :
       database.usuario_add(conn,"master",None,clave=masterkey)
 
+    if not database.usuario_get(conn,"") :
+      database.usuario_add(conn,"",None)
+
     usuarios=("Usuario1","Usuario2")
     for i in usuarios :
       if not database.usuario_get(conn,i) :

Modified: trunk/frontend-web/servidor_web.py
==============================================================================
--- trunk/frontend-web/servidor_web.py	(original)
+++ trunk/frontend-web/servidor_web.py	Sat Jun  9 23:03:28 2007
@@ -1,6 +1,6 @@
 # $Id$
 
-from globales import monitor
+from globales import monitor,allow_anonymous
 
 urls={}
 
@@ -11,7 +11,7 @@
     must_stop=False
 
     def do_GET(self) :
-      global urls
+      global urls,allow_anonymous
       cookie=self.headers.get("cookie",None)
       if cookie :
         import Cookie
@@ -27,10 +27,10 @@
           cookie=None
       try :
         path=self.path.split("/")[1:]
-        if not cookie :
+        if not (cookie or allow_anonymous) :
           resultado=urls["LOGIN"](self,path,None)
         else :
-          usuario,cookie=cookie
+          usuario=cookie or ""
           resultado=urls.get(path[0],None)
           if resultado :
             resultado=resultado(self,path,usuario)

Modified: trunk/frontend-web/url_nuevo_hilo_POST.py
==============================================================================
--- trunk/frontend-web/url_nuevo_hilo_POST.py	(original)
+++ trunk/frontend-web/url_nuevo_hilo_POST.py	Sat Jun  9 23:03:28 2007
@@ -4,6 +4,10 @@
 
 @monitor
 def gestiona_url(conn,handler,path,usuario) :
+  if not usuario : # Acceso anonimo
+    import url_LOGIN
+    return url_LOGIN.gestiona_url(handler,path,usuario)
+
   import database
   if len(path)!=2 : return None
   try :

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	Sat Jun  9 23:03:28 2007
@@ -4,6 +4,10 @@
 
 @monitor
 def gestiona_url(conn,handler,path,usuario) :
+  if not usuario : # Acceso anonimo
+    import url_LOGIN
+    return url_LOGIN.gestiona_url(handler,path,usuario)
+
   if len(path)!=3 : return None
   try :
     metatag=int(path[1])

Modified: trunk/frontend-web/url_nuevo_usuario_POST.py
==============================================================================
--- trunk/frontend-web/url_nuevo_usuario_POST.py	(original)
+++ trunk/frontend-web/url_nuevo_usuario_POST.py	Sat Jun  9 23:03:28 2007
@@ -4,6 +4,10 @@
 
 @monitor
 def gestiona_url(conn,handler,path,usuario) :
+  if not usuario : # Acceso anonimo
+    import url_LOGIN
+    return url_LOGIN.gestiona_url(handler,path,usuario)
+
   if len(path)!=1 : return None
 
   import skins



More information about the cpif mailing list