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 = """
+
+ """ % 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():
+
""" % 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: