smatyas,
Not that I don't understand your frustration, but sessions do work. At
least they do for me, on my setup using DBStore. Meanwhile, how do you
initialize the usersession object? Could you paste that part of the
code?
On Sat, 2009-08-01 at 03:51 -0700, smatyas wrote:
> Can anyone help?!?
>
> I can't seem to get web.session.Session(...) to operate properly when
> using it for a practical user story. I've tried the example verbatim
> and it works (yeah for the cookbook!):
> {code}
> import web
> web.config.debug = False
> urls = (
> "/count", "count",
> "/reset", "reset"
> )
> app = web.application(urls, locals())
> session = web.session.Session(app, web.session.DiskStore('sessions'),
> initializer={'count': 0})
>
> class count:
> def GET(self):
> session.count += 1
> return str(session.count)
>
> class reset:
> def GET(self):
> session.kill()
> return ""
>
> if __name__ == "__main__":
> app.run()
>
> {code}
>
> NOW, the moment I try to actually use session for anything
> *substantia*, I get an error when I try to access the session. Notice
> the body of storeInSession() and the
>
> {code}
> import web
> from web import form
> from run import render, usersession
> from com.fiveamsolutions.lchange.Config import Config
> ...
> class Base:
> cfg = Config(None)
> ...
> class login(Base):
> def renderLogin(self, form):
> return render.login('', self.cfg.getversion(), None, form)
> def GET(self):
> form = loginform()
> return self.renderLogin(form)
> def POST(self):
> form = loginform()
> if not form.validates():
> return self.renderLogin(form)
> else:
> print "Grrreat success! username: %s, password: %s,
> usertree: %s" % (form.d.username, form['password'].value,
> form.d.usertree)
> d = DataService()
> validuser = d.login_bind(form.d.username, form.d.password,
> form.d.usertree)
> if not validuser:
> print "LOGIN FAILED -- return to login page with error
> message"
> form.note = "Invalid username and/or password, please
> try again."
> return self.renderLogin(form)
> print "LOGIN SUCCESSFULL"
> self.storeInSession(form.d.username, form.d.usertree)
> def storeInSession(self, username, usertree):
> usersession.loggedin = True
> usersession.username = username
> usersession.usertree = usertree
>
> ...
> class logout(Base):
> def GET(self):
> print "killing session for %s" % (usersession.username)
> usersession.kill()
> return render.logout('', self.cfg.getversion(), None)
> def POST(self):
> self.GET()
> {code}
>
> Below is the corresponding output:
>
> {run}
> http://0.0.0.0:1234/
> Grrreat success! username: smatyas, password: asdf, usertree: People
> LOGIN SUCCESSFULL
> 127.0.0.1:57966 - - [01/Aug/2009 06:46:03] "HTTP/1.1 POST /login" -
> 200 OK
> Traceback (most recent call last):
> File "/Users/smatyas/PYTHONENV/WEBPY_31/lib/python2.5/site-packages/
> web/application.py", line 242, in process
> return self.handle()
> File "/Users/smatyas/PYTHONENV/WEBPY_31/lib/python2.5/site-packages/
> web/application.py", line 233, in handle
> return self._delegate(fn, self.fvars, args)
> File "/Users/smatyas/PYTHONENV/WEBPY_31/lib/python2.5/site-packages/
> web/application.py", line 412, in _delegate
> return handle_class(cls)
> File "/Users/smatyas/PYTHONENV/WEBPY_31/lib/python2.5/site-packages/
> web/application.py", line 387, in handle_class
> return tocall(*args)
> File "/Users/smatyas/dev/projects/ocio/CentralAuth/ChangePass/src/
> public.py", line 182, in GET
> print "killing session for %s" % (usersession.username)
> File "/Users/smatyas/PYTHONENV/WEBPY_31/lib/python2.5/site-packages/
> web/utils.py", line 923, in __getattr__
> return getattr(self._getd(), key)
> File "/Users/smatyas/PYTHONENV/WEBPY_31/lib/python2.5/site-packages/
> web/utils.py", line 68, in __getattr__
> raise AttributeError, k
> AttributeError: 'username'
>
> 127.0.0.1:57969 - - [01/Aug/2009 06:46:16] "HTTP/1.1 GET /logout" -
> 500 Internal Server Error
>
> {run}
>
> I'm both deeply sadden by this as a developer that is both new to
> webpy and python (like 24 hours total programmer + reading), if
> that.. I can't believe this framework just doesn't work. I really
> need to crank out this dinky web app with LDAP backend yet, I can't
> seem to get webpy to work. Any suggestions? Should I drop webpy all
> together and try something else? I've heard of Beaker (http://
> beaker.groovie.org/) but am unsure how exactly to integrate this with
> webpy, etc...
>
>
> Can anyone help?!?
> >
--
Branko
eml: [email protected]
alt: [email protected]
blg: http://sudologic.blogspot.com/
img: http://picasaweb.google.com/bg.branko
twt: http://www.twitter.com/foxbunny/
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---