Ok, I've got it running finally....

The key is, in the wsgi daemon config to specify 1 process only.
Once I did that, and installed beaker (I've finally understood how to
use it. Unbelievable what 1 night of sleep can do) the sessions
worked.

My vhost wsgi config is now
WSGIDaemonProcess tmain.ath.cx processes=1 threads=15 display-name=%
{GROUP} user=tmo group=webdev home=/home/tmo
WSGIProcessGroup tmain.ath.cx
WSGIScriptAlias / /var/www/arc_en_ciel/htdocs/base.py


and my application starts with
import web, os, os.path, stat
from web import form
import sqlite3, StringIO, mimetypes
from beaker.middleware import SessionMiddleware

urls = (
  '/'               , 'login',
  '/login/'         , 'login',
  '/upload/(.*)$'   , 'upload',
  '/newFolder/(.*)' , 'newFolder',
  '/del/(.*)'       , 'delete',
  '/search/(.*)$'   , 'search',
  '/browse/(.*)$'   , 'browse',
  '/download/(.*)$' , 'download',
  '/my(.*)'         , 'home',
)
#DONE: login
#DONE: navigation dans le repository
#TODO: ajouter une page de changement des infos persos
#TODO: download des fichiers
#TODO: upload des fichiers
#TODO: indexage des fichiers uploadés

def init():
  web.header("Content-Type","text/html; charset=utf-8")
  session = web.ctx.environ['beaker.session']
  if not 'initialized' in session:
    session['logged']=False
    session['msg']=''
    session['user']=''
    session['uid']=None
    session['initialized']=True
    session.save()
  return session
#...
application = web.application(urls, globals()).wsgifunc()
application = SessionMiddleware(application, key='mysession',
secret='randomsecret')
cfg=config()
web.config.debug = cfg.debugMode
db=web.database(dbn='sqlite', db=cfg.finalDb)
rdr = web.template.render(cfg.tplPath)

class login:
  '''
  Let the users login
  '''
  def GET(self):
    session=init()
    web.debug(session)
    return rdr.welcome(cfg.frmLogin, getMsg())

  def POST(self):
    session=init()
    web.debug(session)
    i=web.input()
    ret=False
    if i.username!='' and i.pwd!='':

      ret=db.select('users',where='lower(username)=\'%s\' and password=
\'%s\''%(i.username, i.pwd))
      cpt=0
      for row in ret:
        cpt+=1
        uid=row.userid
      if cpt==1:
        session['logged']=True
        session['user']=i.username
        session['id']=uid
        session.save()
        web.redirect('/browse/')
      else:
        session['msg']='Erreur de connection.'.decode('utf-8')
        session.save()
        web.redirect('/login/')
    else:
      session['msg']='Pas de mot de passe spécifié'.decode('utf-8')
      session.save()
      web.redirect('/login/')
#...


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"web.py" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [email protected]
For more options, visit this group at http://groups.google.com/group/webpy?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to