import psql,init_webgo,helper,gamecreation
import time
from mod_python import *
def process_form(req,form):
"""
reads username and passsword from form
"""
#if form == empty (which means if page is displayed for the first time):
req.write(str(form.keys()))
#req.write("
"+"name="+form['name']+", password="+form['password']+"
")
if form.keys() != []:
if ("name" in form.keys()) and ("password" in form.keys()):
#extract name and password
name = form["name"]
password = form["password"]
sessionid = form["sessionid"]
origpassword = psql.get_user_info(name,"password")
#check if user exists (else we would get an error string)
if origpassword != "no such user": #no error message, now check password
if password == origpassword:
#login accepted
psql.set_user_sessionid(name,sessionid)
psql.set_user_timeout(name)
#now display list of games.
game_overview_form(req,name,sessionid)
else:
req.write("Login incorrect. Please try again.
")
req.write(login_form())
else: #no such user
req.write("Login incorrect. Please try again.
")
req.write(login_form())
else: #one of (name,password) is missing:
req.write("Please enter your name and password.")
req.write(login_form())
def game_overview_form(req,user,sessionid):
"""
gets the name of a user and the queue of games.
prints a form with the option to select,create and delete games.
"""
data = helper.header()+ """
Current Games:
'
#now comes the option for creating new games.
data += "Start a new Game
\n"
if counter > 0:
data+= "You have %s free game slots.
" % counter
data += """
""" % (sessionid, user)
else:
data+= "Sorry, all your game slots are in use."
#display "You have ... free game slots" + Button "create game"
#bei "create game neue funktion zum Erstellen + Mitspieler aus Liste auswählen.
data+=helper.footer()
#check for timeout:
if (psql.get_user_info(user,'timeout') >= int(time.time())) and (sessionid == psql.get_user_info(user,'sessionid')):
req.write(data)
else:
req.write(helper.header()+ 'your session timed out'+helper.footer())
def login_form():
"""
print welcome message and html form.
"""
data = helper.header() + """
""" % helper.generate_session_id()
data += helper.footer()
return data
def main(req):
#get instance of fieldstorage
form = util.FieldStorage(req)
if "sessionid" not in form.keys():
req.write(login_form())
elif ("create" in form.keys()) and ("username" in form.keys()):
#user wants to create a new game
gamecreation.main(req,form)
else:
process_form(req,form)