diff --git a/createaccount.py b/createaccount.py new file mode 100644 index 0000000..2ed9f1a --- /dev/null +++ b/createaccount.py @@ -0,0 +1,78 @@ +import helper,psql + +maxuser = 1000 + +def display_create_form(req,form): + """ + gets a request object and a util.FieldStorage form. + writes a HTML page containing one name and two password fields. + """ + data = """ +
+

Your username:
+

+

Your Password:
+

+

Please retype your Password:
+

+ + +

+
+ """ % helper.generate_session_id() + req.write(data) + +def process_form(req,form): + """ + gets a request object and a util.FieldStorage form. + Tries to read out username, password1 and password2 from form. + If all needed data is there, create the named user and return a 'success' + page. Else fail with detailed error. + """ + try: + password1 = form["password1"] + except: + password1 = "" + try: + password2 = form["password2"] + except: + password2 = "" + try: + username = form["username"] + except: + username = "" + if (username != "") and (password1 != "") and (password2 != "") and (password1 == password2): + psql.add_webgo_user(username,password1) + req.write("User %s has been successfully created. Click the following button to login:
" % username) + data = """ +
+

+

+ +

+
+ """ % (username,password1,helper.generate_session_id()) + req.write(data) + else: + if username == "": + req.write("Please enter a username you would like to have.
") + if (password1 == "") or (password2 == "") or (password1 != password2): + req.write("Both given passwords have to be the same and non-empty.
") + display_create_form(req,form) + + +def main(req,form): + + req.write(helper.header()) + helper.debug(req,form,str(form.keys())) + + try: + createvalue = form["createaccount"] + except: + createvalue = "" + if createvalue == "process": + process_form(req,form) + else: + display_create_form(req,form) + + req.write(helper.footer()) \ No newline at end of file diff --git a/deletegame.py b/deletegame.py index e1402c5..5fef7eb 100644 --- a/deletegame.py +++ b/deletegame.py @@ -20,7 +20,7 @@ def main(req,form): manage the removal of game from game slots of players and delete game from database. """ - helper.debug(req,form,"
"+str(form.keys())+" sessionid in form:"+form["sessionid"]+"
") + helper.debug(req,form,str(form.keys())+" sessionid in form:"+form["sessionid"]+"
") try: gamename = form["game"] except: diff --git a/documentation/development/TODO b/documentation/development/TODO index d4944a3..5b95037 100644 --- a/documentation/development/TODO +++ b/documentation/development/TODO @@ -3,4 +3,7 @@ - what happens if a game is finished? - add a description field for a goban table - add a date-of-creation-creation field and a last-changed-field to goban table -- display game list more nicely with players and last change. \ No newline at end of file +- display game list more nicely with players and last change. +- delete user if inactive for n months +- add a preferences page with a modify password and delete account button +- modify psql.add_webgo_user to check if user already exists \ No newline at end of file diff --git a/gamecreation.py b/gamecreation.py index c17f81c..b4983ed 100644 --- a/gamecreation.py +++ b/gamecreation.py @@ -1,7 +1,6 @@ from mod_python import * import psql,helper,login -DEBUG = 1 def display_game_creation_form(req,sessionid,username): """ @@ -99,8 +98,7 @@ def main(req,form): gets a request object and a util.FieldStorage form. returns nothing. """ - if DEBUG: - req.write(str(form.keys())+"
") + req.write(str(form.keys())+"
") username = form["username"] #TODO:check if valid session id diff --git a/login.py b/login.py index 01df1a9..36d7b72 100755 --- a/login.py +++ b/login.py @@ -92,11 +92,15 @@ def login_form():

Name:

-

Pasword:
+

Password:

+
+ + +
""" % helper.generate_session_id() data += helper.footer() return data diff --git a/main.py b/main.py index 8dd071e..02506c2 100755 --- a/main.py +++ b/main.py @@ -26,7 +26,6 @@ def handler(req): #if sessionid=sesssionid and time < timeout: # set_timeout - helper = apache.import_module("helper") if (psql.get_user_info(username,'timeout') > int(time.time())) and (sessionid == psql.get_user_info(username,'sessionid')): psql.set_user_timeout(username) if "create" in form.keys(): @@ -43,9 +42,12 @@ def handler(req): login = apache.import_module("login") login.main(req,form) else: - #call login.py - login = apache.import_module("login") - login.main(req,form) + if "createaccount" in form.keys(): + createaccount = apache.import_module("createaccount") + createaccount.main(req,form) + else:#call login.py + login = apache.import_module("login") + login.main(req,form) return apache.OK except: