/
player_edit_profile_update.py
135 lines (110 loc) · 5.1 KB
/
player_edit_profile_update.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
#######################################################################################################
#Authors: Beaudan Campbell-Brown, Derek Mui, Ha Jin Song, Jerry Chen
#INFO20003 assessment
#File used to edit given profile using given input
#######################################################################################################
# The libraries we'll need
import sys, session, cgi, MySQLdb, redirect, sql_handler as sql, html_template as html, calendar
#######################################################################################################
sess = session.Session(expires=20*60, cookie_path='/')
loggedIn = sess.data.get('loggedIn')
params= cgi.FieldStorage()
#######################################################################################################
#######################################################################################################
#edit only if run ends up being true
run = True
#Check if user is loggedIn with authority and does not have deletion flag set up
if not html.check_logged_in(loggedIn):
run = False
#If run is still set to true, get all the information from CGI fieldstorage
if run:
playerID= params['pID'].value
playerfname= params['fname'].value
playerlname= params['lname'].value
playerole= params['role'].value
plaerdesc= params['describtion'].value
playeremail = params['email'].value
playerhandle= params['handle'].value
playerphone= params['phone'].value
playervoip= params['voip'].value
addID= params['aID'].value
addNo= params['stNo'].value
addName= params['stName'].value
addType= params['state'].value
addSuburb= params['stType'].value
addCity= params['city'].value
addState = params['state'].value
addPost = params['postcode'].value
addCountry = params['country'].value
username = sql.run_sql("""SELECT UserName FROM PlayerLogin WHERE PlayerLogin.PlayerID= %s"""%playerID)[0][0]
error = False
result = sql.run_sql("""SELECT PlayerAddress.AddressID FROM PlayerAddress, Player, Address
WHERE PlayerAddress.PlayerID= "%s"
AND PlayerAddress.EndDate is NULL
""" % (playerID))
addressID = result[0][0]
#######################################################################################################
def main():
#Print error if any exist
if error:
redirect.refresh("player_edit_profile.py?error=1", sess.cookie)
return
updateViewerInfo()
redirect.refresh("player_edit_profile.py", sess.cookie)
return
#######################################################################################################
def updateViewerInfo():
sql.run_update(("""UPDATE Player
SET FirstName = "%s", LastName = "%s", Role = "%s", ProfileDescription = "%s", Email = "%s", GameHandle = "%s", Phone = "%s", VoP = "%s"
WHERE PlayerID= "%s"
""" % (playerfname, playerlname,playerole,plaerdesc,playeremail,playerhandle,playerphone,playervoip,playerID)))
updateAddress()
return
#######################################################################################################
def updateAddress():
#update address only if it has been changed
if detect_address_change():
sql.run_update("""
UPDATE PlayerAddress
SET EndDATE = CURDATE()
WHERE PlayerID = "%s" AND AddressID = "%s"
"""% (playerID, addressID))
next_val = sql.run_insert("""
INSERT Address VALUES
(DEFAULT, "%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s")
""" % (addNo, addName, addType, addSuburb, addCity, addState, addPost, addCountry))
sql.run_insert("""
INSERT INTO PlayerAddress VALUES
("%s","%s",CURDATE(),NULL)
""" % (playerID, next_val))
return
#######################################################################################################
def detect_address_change():
result = sql.run_sql("""
SELECT StreetNumber, StreetName, StreetType, MinorMunicipality, MajorMunicipality,
GoverningDistrict,PostalArea,Country FROM Address
WHERE Address.AddressID = "%s"
""" % (addressID))
if result:
address = result[0]
if address[0] != int(addNo):
return True
elif address[1] != addName:
return True
elif address[2] != addType:
return True
elif address[3] != addSuburb:
return True
elif address[4] != addCity:
return True
elif address[5] != addState:
return True
elif address[6] != addPost:
return True
elif address[7] != addCountry:
return True
else:
return False
return False
#######################################################################################################
main()