Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python
- # gsr-zeit.py
- #
- # MyCherry application to test session handling
- #
- import cherrypy
- class GsrZeit:
- """
- The main application class
- """
- # some page footers common to most html files produced
- htmlfooter = '<hr><a href="index">Index</a>|<a href="testpage">Testpage</a>'
- htmllogout = '<br><a href="logout">Logout</a>'
- def index(self):
- """
- The entry point when browser is pointed to this apps' root
- It returns a simple login form and sends its POST data to the login function
- """
- return """
- <h3>Session-Test-Form</h3>
- <form action="login" method="post">
- <p>Username</p>
- <input type="text" name="username" value=""
- size="15" maxlength="40"/>
- <p>Password</p>
- <input type="password" name="password" value=""
- size="10" maxlength="40"/>
- <p><input type="submit" value="Login"/></p>
- <p><input type="reset" value="Clear"/></p>
- </form>
- """ + self.htmlfooter
- index.exposed = True
- @cherrypy.expose
- def login(self, username=None, password=None):
- """
- Function reads POST data from index and sets up session parameters
- """
- if self.loggedin():
- return 'Why login? You are already logged in' + self.htmlfooter + self.htmllogout
- if username:
- cherrypy.session['username'] = username
- cherrypy.session['password'] = password
- return 'You are now logged in.' + self.htmlfooter + self.htmllogout
- else:
- return self.testpage()
- @cherrypy.expose
- def logout(self):
- """
- Clears/deletes session when somebody is logged in
- """
- if self.loggedin():
- cherrypy.session.clear() # not sure about this
- cherrypy.session.delete() # dito
- return 'You are now logged out. ' + self.htmlfooter + self.htmllogout
- else:
- return 'Why logout? You were not logged in.' + self.htmlfooter
- @cherrypy.expose
- def testpage(self):
- """
- Just a page function to test session results
- """
- if self.loggedin():
- return 'Logged in as ' + cherrypy.session['username'] + \
- self.htmlfooter + self.htmllogout
- else:
- return 'Not logged in' + self.htmlfooter
- def loggedin(self):
- """
- Check if a session user has logged in
- """
- if cherrypy.session.has_key('username'):
- return True
- else:
- return False
- if __name__ == '__main__':
- root = GsrZeit()
- cherrypy.config.update({'tools.sessions.on': True})
- cherrypy.config.update({'server.socket_host': '0.0.0.0'}) # listen on all interfaces
- cherrypy.quickstart(root)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement