Example #1
0
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
Example #2
0
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()
Example #3
0
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
Example #4
0
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()
Example #5
0
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
Example #6
0
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
Example #7
0
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
Example #8
0
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
Example #9
0
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
Example #10
0
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
Example #11
0
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
Example #12
0
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()