From 4b1bc8f73d22bd6c1cb81625bd180f0d6ecf7d6a Mon Sep 17 00:00:00 2001 From: Enno Rehling Date: Sat, 2 Mar 2002 03:59:40 +0000 Subject: [PATCH] =?UTF-8?q?script=C3=A4nderungen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/register/register.py | 91 ++++++++++++++++++++++++------------ scripts/register/unpaid.sql | 4 +- 2 files changed, 64 insertions(+), 31 deletions(-) diff --git a/scripts/register/register.py b/scripts/register/register.py index 17e5e420d..33b42f636 100755 --- a/scripts/register/register.py +++ b/scripts/register/register.py @@ -54,6 +54,16 @@ matchemail=re.compile( re.IGNORECASE | re.DOTALL | re.VERBOSE) email=None +matchuserid=re.compile( + r""".*userid:\s*([^\n\r]*)\s*""", + re.IGNORECASE | re.DOTALL | re.VERBOSE) +userid=None + +matchpassword=re.compile( + r""".*passwort:\s*([^\n\r]*)\s*""", + re.IGNORECASE | re.DOTALL | re.VERBOSE) +password=None + matchaddress=re.compile( r""".*adresse:\s*([^\n\r]*)\s*""", re.IGNORECASE | re.DOTALL | re.VERBOSE) @@ -90,7 +100,7 @@ matchstandin=re.compile( standin=0 matchwaiting=re.compile( - r""".*Warteliste: on\s(on)\s*""", + r""".*Warteliste:\s(on)\s*""", re.IGNORECASE | re.DOTALL | re.VERBOSE) waiting=0 @@ -117,6 +127,15 @@ for line in sys.stdin.readlines(): email=match.group(1) continue + match=matchuserid.match(line) + if (match!=None): + userid=match.group(1) + continue + match=matchpassword.match(line) + if (match!=None): + password=match.group(1) + continue + match=matchfirstname.match(line) if (match!=None): firstname=match.group(1) @@ -149,46 +168,60 @@ for line in sys.stdin.readlines(): oldrace=validrace(oldrace) newrace=validrace(newrace) -if (email==None): - error("enno@eressea.upb.de", - "Es wurde keine Emailadresse angegeben: "+firstname+" "+lastname) -elif (oldrace==None) & (newrace==None) & (standin==0) & (waiting==0): - error(email, "Es wurde kein Spiel ausgewählt.") -elif (firstname==None): - error(email, "Es wurde kein Vorname angegeben") -elif (lastname==None): - error(email, "Es wurde kein Nachname angegeben") -elif (address==None): - error(email, "Es wurde keine Adresse angegeben") -elif (city==None): - error(email, "Es wurde kein Wohnort angegeben") -elif (country==None): - error(email, "Es wurde kein Land angegeben") -else: - if (phone==None): - phone = "NULL" - +okay=0 +if (password!=None) & (userid!=None): + query="select id from users where password='" + password + "' and id="+str(userid) cursor=db.cursor() - cursor.execute("INSERT INTO users (firstname, lastname, email, address, city, phone, country, password) "+ - "VALUES ('"+firstname+"', '"+lastname+"', '"+email+"', '"+address+"', '"+city+"', '"+phone+"', "+country+", '"+genpasswd()+"')") - - cursor.execute("SELECT LAST_INSERT_ID() from dual") - lastid=str(int(cursor.fetchone()[0])) + num=cursor.execute(query) + if num==1: + okay=1 + else: + if email==None: + email="enno@eressea.upb.de" + error(email, "Das Passwort für Kundennummer "+str(userid)+" war nicht korrekt.") +else: + if email==None: + error("enno@eressea.upb.de", + "Es wurde keine Emailadresse angegeben: "+firstname+" "+lastname) + elif (oldrace==None) & (newrace==None) & (standin==0) & (waiting==0): + error(email, "Es wurde kein Spiel ausgewählt.") + elif (firstname==None): + error(email, "Es wurde kein Vorname angegeben") + elif (lastname==None): + error(email, "Es wurde kein Nachname angegeben") + elif (address==None): + error(email, "Es wurde keine Adresse angegeben") + elif (city==None): + error(email, "Es wurde kein Wohnort angegeben") + elif (country==None): + error(email, "Es wurde kein Land angegeben") + else: + if (phone==None): + phone = "NULL" + okay=1 + cursor=db.cursor() + cursor.execute("INSERT INTO users (firstname, lastname, email, address, city, phone, country, password) "+ + "VALUES ('"+firstname+"', '"+lastname+"', '"+email+"', '"+address+"', '"+city+"', '"+phone+"', "+country+", '"+genpasswd()+"')") + + cursor.execute("SELECT LAST_INSERT_ID() from dual") + userid=str(int(cursor.fetchone()[0])) + +if okay: if (oldrace!=None): error(email, "Derzeit wird kein Spiel nach alten Regeln angeboten") # cursor.execute("INSERT INTO subscriptions (user, race, game) "+ -# "VALUES ("+lastid+", '"+oldrace+"', 1)") +# "VALUES ("+str(userid)+", '"+oldrace+"', 1)") if (newrace!=None): error(email, "Derzeit wird kein Spiel nach neuen Regeln angeboten") # cursor.execute("INSERT INTO subscriptions (user, race, game, status) "+ -# "VALUES ("+lastid+", '"+newrace+"', 2, 'WAITING')") +# "VALUES ("+str(userid)+", '"+newrace+"', 2, 'WAITING')") if waiting: cursor.execute("INSERT INTO subscriptions (user, game, status) "+ - "VALUES ("+lastid+", 3, 'WAITING')") + "VALUES ("+str(userid)+", 3, 'WAITING')") if standin: cursor.execute("INSERT INTO subscriptions (user, game, status) "+ - "VALUES ("+lastid+", 4, 'WAITING')") + "VALUES ("+str(userid)+", 4, 'WAITING')") errors.close() unlock(sys.argv[1]+".err") diff --git a/scripts/register/unpaid.sql b/scripts/register/unpaid.sql index f4030fc3d..efeb06841 100644 --- a/scripts/register/unpaid.sql +++ b/scripts/register/unpaid.sql @@ -5,9 +5,9 @@ select u.id ID, left(concat(firstname,' ',lastname, ' <',email,'>'),43) Name, su GROUP BY u.id HAVING SUM(t.balance)<2.5; -select count(users.status) Anzahl, users.status Status, games.name Spiel +select count(users.status) Anzahl, subscriptions.status Status, games.name Spiel from users, games, subscriptions where games.id = subscriptions.game and users.id = subscriptions.user - group by games.name, users.status + group by games.name, subscriptions.status order by subscriptions.game;