def deleteAccount(environ, start_response): wasloggedin = login.isLoggedIn(login.getLoginToken(environ)) conn = connectToDatabase.connect() c = conn.cursor() c.execute("DELETE FROM users WHERE userid = %s", [login.getUserId(login.getLoginToken(environ))]) conn.commit() c.close() conn.close() string += genHTML.genPageHeader('EngCupid') string += genHTML.genMenuBar("EngCupid", [dict(link='browse.py', name='Browse', active=True)], login.getLoginToken(environ)) string += genHTML.beginContainer() if wasloggedin: string += """\ <div class='span12'> <div class="hero-unit"> <H1>Account Deleted</H1> <p>Your account has been removed from our system.</p> </div> </div> """ else: return forbidden.forbidden(environ,start_response) string += genHTML.endContainer() string += genHTML.genPageFooter() start_response(ok.code(), [('Content-type', 'text/html')]) return string
def logout(token): conn = connectToDatabase.connect(dictCon=True) c = conn.cursor() c.execute("DELETE FROM logindata WHERE login_token = %s", [token]) conn.commit() c.close() conn.close()
def countUserProfiles(search, prefix,postfix): conn = connectToDatabase.connect() count = conn.cursor() count.execute("SELECT count(*) FROM USERS WHERE userid and account_status = 'Active' ILIKE %s ESCAPE '`'", [prefix + escape(search) + postfix]) countValue = count.fetchone()[0] count.close() conn.close() return countValue
def updateLogin(token): conn = connectToDatabase.connect(dictCon=True) c = conn.cursor() c.execute("DELETE FROM logindata WHERE (lastUsed < CURRENT_TIMESTAMP - INTERVAL 20 MINUTE) and autoLogout") c.execute("DELETE FROM users WHERE (account_created < CURRENT_TIMESTAMP - INTERVAL 20 MINUTE) and account_status = 'Pending'") c.execute("UPDATE FROM logindata SET lastUsed = CURRENT_TIMESTAMP WHERE login_token = %s", [token]) conn.commit() c.close() conn.close()
def isLoggedIn(token): updateLogin(token) conn = connectToDatabase.connect(dictCon=True) c = conn.cursor() c.execute("SELECT * FROM logindata where login_token = %s", [token]) q = c.fetchone() conn.commit() c.close() conn.close() return q is not None
def getUserInfo(query, values): string = '' conn = connectToDatabase.connect(dictCon=True) users = conn.cursor() internalCursor = conn.cursor() users.execute(query, values) l = None for user in users: l = user l = fetchAdditionalProfileInfo(l, internalCursor) internalCursor.close() users.close() conn.close() return l
def getUserId(token): conn = connectToDatabase.connect(dictCon=True) c = conn.cursor() c.execute("SELECT * FROM logindata WHERE login_token = %s", [token]) q = c.fetchone() name = '' if q is not None: userid = q['userid'] c.execute("SELECT userid FROM users WHERE userid = %s", [userid]) name = c.fetchone()['name'] conn.commit() c.close() conn.close() return name
def getCount(query,values): string = '' conn = connectToDatabase.connect(dictCon=True) users = conn.cursor() internalCursor = conn.cursor() users.execute(query, values) for user in users: l = user l = fetchAdditionalProfileInfo(l, internalCursor) string += getUserBioSummaryString(l) internalCursor.close() users.close() conn.close() return string
def login(username, password, autoLogout): conn = connectToDatabase.connect(dictCon=True) c = conn.cursor() c.execute("SELECT userid ,pass FROM users where userid = %s and not account_status = 'Pending'", [username]) if c is None: raise Exception('User Does Not Exist') result = c.fetchone() if result['pass'] != password: return Exception('Incorrect Password') random = base64.b32encode(os.urandom(20)).lower() while c.execute("SELECT login_token FROM logindata where login_token = %s",[random]) != None: random = base64.b32encode(os.urandom(20)).lower() c.execute("INSERT INTO logindata values(%s,%s,NOW(),%s)", [random, username,autoLogout]) conn.commit() c.close() conn.close() return random
def getUserImage(environ, start_response): m = re.search('userid=([^&]*)', environ['QUERY_STRING']) headers = [] status = '' message = '' if not login.isLoggedIn(login.getLoginToken(environ)): return forbidden.forbidden(environ,start_response) if m==None: return notFound.notFound(environ,start_response) userid = m.group(1) connection = connectToDatabase.connect() c = connection.cursor() c.execute("SELECT image,gender FROM users WHERE userid = %s", [userid]) i = c.fetchone() c.close() connection.close() if i==None: return notFound.notFound(environ,start_response) imageData = '' if i[0] == None: if i[1] == None or i[1] == 'M': imageData = open (os.getcwd() + os.sep + 'anonymouse_images' + os.sep + 'wikipedia_annonymous_male.png').read() else: imageData = open(os.getcwd() + os.sep + 'anonymouse_images' + os.sep + 'wikipedia_annonymous_female.png').read() else: imageData = i[0] mime,contentEncoding = mimetypes.guess_type(imageData) headers = [('Content-type', str(mime))] if not contentEncoding == None: headers.append(('Content-encoding', str(contentEncoding))) message = imageData status = ok.code() headers.append(('Content-Length', str(len(message)))) start_response(status, headers) return message
def deleteAccount(environ, start_response): loggedin = login.isLoggedIn(login.getLoginToken(environ)) userid = '' qs = parse_qs(environ['QUERY_STRING'], keep_blank_values=True) if loggedin: userid = login.getUserId(login.getLoginToken(environ)) elif 'userid' in qs: userid = qs['userid'] else: return forbidden.forbidden(environ,start_response) conn = connectToDatabase.connect() c = conn.cursor() c.execute("UPDATE FROM users SET account_status = 'Active' WHERE userid = %s", [userid]) conn.commit() c.close() conn.close() string += genHTML.genPageHeader('EngCupid') string += genHTML.genMenuBar("EngCupid", [dict(link='browse.py', name='Browse', active=True)], login.getLoginToken(environ)) string += genHTML.beginContainer() string += """\ <div class='span12'> <div class="hero-unit"> <H1>Account Deleted</H1> <p>Your account is now active.</p> <p><a class="btn btn-primary btn-large" href="login.py"> Login </a></p> </div> </div> """ string += genHTML.endContainer() string += genHTML.genPageFooter() start_response(ok.code(), [('Content-type', 'text/html')]) return string
import glob import os import connectToDatabase from createTables import createTables from createTables import dropTables from parseUser import parseUser __author__ = 'WS02admin' connection = connectToDatabase.connect() c = connection.cursor() dropTables(c) createTables(c) connection.commit() path = 'users'+os.sep for dir in sorted(glob.glob(os.path.join(path,'*'))): if os.path.isdir(dir): parseUser(connection, dir) c.execute("SELECT * FROM operating_systems") print c.fetchall() c.execute("SELECT * FROM star_wars_movies") print c.fetchall() c.execute("SELECT * FROM editors") print c.fetchall()