Ejemplo n.º 1
0
def login():
    pop_game_explorer_query()
    error = None
    if request.method == 'POST':
        if DEBUG:
            print("LOGGING IN with username=%(username)s, "
                  "password=%(password)s" % request.form)
        cursor = g.db.cursor()
        database.execSqlWithParams(cursor, database.sqlSelectUser,
                                   request.form)
        userInfo = cursor.fetchone()
        cursor.close()
        if userInfo == None:
            error = 'Invalid username or password'
        else:
            uuid, username, password, email = userInfo
            user = User()
            user.id = uuid
            user.username = username
            user.password = password
            user.email = email
            login_user(user)
            flash('Congratulations! You have successfully logged in.')
            if 'redirectToCollectionExplorer' in session:
                session.pop('redirectToCollectionExplorer')
                return redirect(url_for('collection_explorer'))
            else:
                return redirect(url_for('game_explorer'))
    return render_template('login.html', error=error)
Ejemplo n.º 2
0
def su_get_user(credentials):
    conn = httplib2.Http()
    credentials.authorize(conn)
    resp, content = conn.request('http://www.southural.ru/oauth2/UserInfo',
                                 'POST')
    if resp.status != 200:
        logging.error("Error getting user profile from su api: %d",
                      resp.status)
        logging.error(content)
        return None
    data = json.loads(content)
    if 'error' in data:
        logging.error("Error getting user data from su")
        logging.error(data['error'])
        return None

    user = g.users_dao.get(data['sub'], AUTH_SRC_SU)
    if user is not None:
        return user, False
    user = UserMixin()
    user.oauth_id = data['sub']
    user.name = data['name']
    user.src = AUTH_SRC_SU
    user.location = data.get('city', None)
    user.image_id = None
    user.preview_id = None
    user.id = g.users_dao.create(user)

    return user, True
Ejemplo n.º 3
0
def login():
    pop_game_explorer_query()
    error = None
    if request.method == 'POST':
        if DEBUG:
            print("LOGGING IN with username=%(username)s, "
                                  "password=%(password)s" % request.form)  
        cursor = g.db.cursor()
        database.execSqlWithParams(cursor, database.sqlSelectUser, request.form)
        userInfo = cursor.fetchone()
        cursor.close()
        if  userInfo == None:
            error = 'Invalid username or password'
        else:
            uuid, username, password, email = userInfo
            user = User()
            user.id = uuid
            user.username = username
            user.password = password
            user.email = email
            login_user(user)
            flash('Congratulations! You have successfully logged in.')
            if 'redirectToCollectionExplorer' in session:
                session.pop('redirectToCollectionExplorer')
                return redirect(url_for('collection_explorer'))
            else: 
                return redirect(url_for('game_explorer'))
    return render_template('login.html', error=error)
Ejemplo n.º 4
0
 def climbers(self, summit_id):
     climbers = []
     sql = """SELECT
                 year,
                 month,
                 day,
                 comment,
                 users.id,
                 users.name,
                 users.preview_id
             FROM users LEFT JOIN climbs ON climbs.user_id=users.id
             LEFT JOIN summits ON climbs.summit_id=summits.id
             WHERE climbs.summit_id=%s
             ORDER BY year, month, day;"""
     with self.get_cursor() as cur:
         cur.execute(sql, (summit_id,))
         for row in cur:
             u = UserMixin()
             u.id = row["id"]
             u.name = row["name"]
             u.preview_id = row["preview_id"]
             if row["year"] is not None:
                 date = InexactDate(row["year"], row["month"], row["day"])
             else:
                 date = None
             climbers.append({"user": u, "date": date, "comment": row["comment"]})
     return climbers
Ejemplo n.º 5
0
def load_user(userid):
    if userid == "superuser":
        user = UserMixin()
        user.id = "superuser"
        return user
    else:
        return None
Ejemplo n.º 6
0
def load_user(userid):
	if userid == "superuser":
		user = UserMixin()
		user.id = "superuser"
		return user
	else:
		return None
Ejemplo n.º 7
0
def vk_get_user(credentials):
    user = g.users_dao.get(unicode(credentials.token_response['user_id']),
                           AUTH_SRC_VK)
    if user is not None:
        return user, False

    conn = httplib2.Http()
    credentials.authorize(conn)
    params = {
        'v': '5.37',
        'lang': 'ru',
        'user_ids': credentials.token_response['user_id'],
        'fields': 'photo_50, photo_200_orig, city'}

    resp, content = conn.request('https://api.vk.com/method/users.get',
                                 'POST',
                                 urllib.urlencode(params))

    if resp.status != 200:
        logging.error("Error getting user profile from vk api: %d",
                      resp.status)
        logging.error(content)
        return None

    data = json.loads(content)['response'][0]
    if 'error' in data:
        logging.error("Error getting profile data")
        logging.error(data['error'])
        return None

    user = UserMixin()
    user.oauth_id = unicode(credentials.token_response['user_id'])
    user.name = u"{} {}".format(
        data.get('first_name', ''),
        data.get('last_name', ''))
    user.src = AUTH_SRC_VK

    if 'city' in data:
        user.location = data['city']['title']
    else:
        user.location = None

    fd = urllib.urlopen(data['photo_200_orig'])
    if fd.getcode() == 200:
        user.image_id = g.images_dao.create(fd.read(), fd.info().gettype())
    else:
        user.image_id = None

    fd = urllib.urlopen(data['photo_50'])
    if fd.getcode() == 200:
        user.preview_id = g.images_dao.create(fd.read(), fd.info().gettype())
    else:
        user.preview_id = None

    user.id = g.users_dao.create(user)

    return user, True
Ejemplo n.º 8
0
def load_user(uuid):
    cursor = g.db.cursor()
    user_query = ("SELECT u.uuid, u.username, u.password, u.email "
                  "FROM Users u "
                  "WHERE u.uuid = %(uuid)s")
    params = dict(uuid=uuid)
    database.execSqlWithParams(cursor, user_query, params)
    row = cursor.fetchone()
    cursor.close()
    if not row: return None
    user = User()
    user.id = row[0]
    user.username = row[1]
    user.password = row[2]
    user.email = row[3]
    return user
Ejemplo n.º 9
0
 def top(self):
     users = []
     sql = """SELECT users.id, users.name, users.preview_id, COUNT(climbs.*) AS climbs
             FROM users LEFT JOIN climbs ON users.id=climbs.user_id
             GROUP BY users.id, users.name, users.preview_id
             ORDER BY climbs DESC
     """
     with self.get_cursor() as cur:
         cur.execute(sql)
         for row in cur:
             u = UserMixin()
             u.id = row["id"]
             u.name = row["name"]
             u.preview_id = row["preview_id"]
             u.climbs = row["climbs"]
             users.append(u)
     return users
Ejemplo n.º 10
0
def load_user(uuid):
    cursor = g.db.cursor()
    user_query = (
        "SELECT u.uuid, u.username, u.password, u.email "
        "FROM Users u "
        "WHERE u.uuid = %(uuid)s"
        )
    params = dict(uuid=uuid)
    database.execSqlWithParams(cursor,user_query,params)
    row = cursor.fetchone()
    cursor.close()
    if not row: return None
    user = User()
    user.id = row[0]
    user.username = row[1]
    user.password = row[2]
    user.email = row[3]
    return user 
Ejemplo n.º 11
0
def login_user(token):
    um = UserMixin()
    um.id = token
    login.login_user(um)
    return um
Ejemplo n.º 12
0
def load_user(userid):
    if userid == u'adr':
        user = UserMixin()
        user.id = userid
        return user
    return None
Ejemplo n.º 13
0
def load_user(user_id):
    # Since they aren't stored in the DB, just assume the user really exists.
    user = UserMixin()
    user.id = user_id
    return user
Ejemplo n.º 14
0
def load_user(userid):
    if userid == u'adr':
        user = UserMixin()
        user.id = userid
        return user
    return None