diff --git a/deletegame.py b/deletegame.py index 9e6b509..c991e51 100644 --- a/deletegame.py +++ b/deletegame.py @@ -1,11 +1,5 @@ import psql,login -def delete_game(gamename,username): - """ - get name of game and name of user. - remove game from game slot of user. - """ - def get_game_slot_of_game(player, gamename): """ gets playername and game name, @@ -20,7 +14,7 @@ def get_game_slot_of_game(player, gamename): def main(req,form): """ - get the name of a game,request,util.FieldStorage. + get request,util.FieldStorage. manage the removal of game from game slots of players and delete game from database. """ diff --git a/login.py b/login.py index 8c1482b..01df1a9 100755 --- a/login.py +++ b/login.py @@ -101,27 +101,39 @@ def login_form(): data += helper.footer() return data -def navigation_bar(username,sessionid): +def navigation_bar(req,form): """ - gets username and sessionid + gets request object and util.FieldStorage form. writes the following to req: - a button to return to the game overview - a logout button returns string """ + username = form["username"] + sessionid = form["sessionid"] + game = form["game"] #TODO: buttons data="""
+ +
- """ % (username,sessionid) + """ % (username,sessionid,game) return(data) - +def logout(req,form): + """ + gets request object and util.FieldStorage form. + reads username from form and clears timeout and sessionid from users table. + """ + username = form["username"] + psql.set_user_sessionid(username,"") + psql.set_user_timeout(username,"") def main(req,form): @@ -130,9 +142,10 @@ def main(req,form): #req.write(helper.footer()) if "sessionid" not in form.keys(): req.write(login_form()) - elif ("create" in form.keys()) and ("username" in form.keys()): - pass elif ("game overview" in form.keys()) and ("username" in form.keys()) and ("sessionid" in form.keys()): game_overview_form(req,form) + elif ("logout" in form.keys()) and ("username" in form.keys()): + logout(req,form) + process_form(req,form) else: process_form(req,form) diff --git a/main.py b/main.py index 5bbf8ec..8dd071e 100755 --- a/main.py +++ b/main.py @@ -35,7 +35,7 @@ def handler(req): elif "delete" in form.keys(): deletegame = apache.import_module("deletegame") deletegame.main(req,form) - elif ("play" in form.keys()): + elif ("play" in form.keys()) or ("refresh" in form.keys()): playgame = apache.import_module("playgame") playgame.main(req,form) else: diff --git a/playgame.py b/playgame.py index 081257c..7655ea1 100644 --- a/playgame.py +++ b/playgame.py @@ -41,7 +41,7 @@ def main(req,form): """ display selected goban and manage user input. """ - req.write(str(form.keys())+"
") + helper.debug(req,form,str(form.keys())+"
") try: gamename = form["game"] @@ -61,8 +61,6 @@ def main(req,form): if foundx: if is_my_turn(req,form,gobandict): (gobandict,retstring) = goban.process_form(req,form,gobandict) - else: - pass #do stuff data = helper.header() @@ -81,7 +79,7 @@ def main(req,form): #print goban data += goban.display_goban(gobandict,req,form) - data += login.navigation_bar(form["username"],form["sessionid"]) + data += login.navigation_bar(req,form) data += helper.footer() req.write(data) diff --git a/psql.py b/psql.py index 894106f..33664e9 100755 --- a/psql.py +++ b/psql.py @@ -182,7 +182,10 @@ def update_database_field(table,column,new_value,uniqname,uniqvalue): name of unique identifier and value of unique identifier for field (e.g. 'username' and 'testuser') """ - executestring ="UPDATE %s SET %s = '%s' WHERE %s = '%s'" % (table,column,new_value,uniqname,uniqvalue) + if new_value == "": + executestring ="UPDATE %s SET %s = DEFAULT WHERE %s = '%s'" % (table,column,uniqname,uniqvalue) + else: + executestring ="UPDATE %s SET %s = '%s' WHERE %s = '%s'" % (table,column,new_value,uniqname,uniqvalue) sql_one_liner(executestring) ################# access of users table ##################################################################### @@ -233,12 +236,13 @@ def set_user_sessionid(username,sessionid): """ update_users_table_field(username,"sessionid",sessionid) -def set_user_timeout(username): +def set_user_timeout(username,timeout=None): """ gets username, sets timeout to time.time + 30min """ import time - timeout = int(time.time()) + 900 #current time in seconds + seconds for session + if timeout == None: + timeout = int(time.time()) + 900 #current time in seconds + seconds for session update_users_table_field(username,"timeout",timeout) def update_users_table_field(username,column,new_value):