예제 #1
0
def messages_view_listing():
    user = utils.get_user_from_cookie(request)
    page_name = "messages"
    messages = utils.get_messages_for_user(user['user_id'])
    if request.method.lower() == "get":
        page_content = render_template('view_messages.html', user=user, messages=messages)
        return render_page(page_content, page_name, user=user)
예제 #2
0
def show_registration():
    user = utils.get_user_from_cookie(request)
    page_name = 'register'

    if request.method.lower() == 'get':
        page_content = render_template("register.html")
        return render_page(page_content, "register", user=user)

    if request.method.lower() == 'post':
        username = request.form.get("username") or ""
        password = request.form.get("password") or ""
        if not username or not password:
            page_content = render_template("register.html",
                                           message='Missing field')
            return render_page(page_content, page_name)

        if utils.check_username(username):
            page_content = render_template("register.html",
                                           message='That username is taken!')
            return render_page(page_content, page_name)

        seed = utils.generate_seed(username, request.remote_addr)
        totp_key = utils.get_totp_key(seed)
        utils.register_user(username, password, request.remote_addr)
        qr_url = 'http://api.qrserver.com/v1/create-qr-code/?data=otpauth://totp/%s?secret=%s&size=220x220&margin=0' % (
            username, totp_key)
        page_content = render_template(
            "register.html",
            message=
            "Success! <a href='/login'>login here</a><br />TOTP Key: %s<br /><img src='%s' />"
            % (totp_key, qr_url))

        return render_page(page_content, page_name)
예제 #3
0
def edit_profile():
    user = utils.get_user_from_cookie(request)
    page_name = "edit profile"

    if request.method.lower() == "get":
        page_content = render_template('edit_profile.html', user=user)
        return render_page(page_content, page_name, user=user)

    image_url = request.form.get('image_url') or ''
    profile_text = request.form.get('profile_text') or ''

    if not (image_url and profile_text):
        page_content = render_template('edit_profile.html', user=user, message="Missing fields")
        return render_page(page_content, page_name, user=user)

    parsed_url = urlparse.urlparse(image_url)
    if not (parsed_url.scheme and parsed_url.netloc and parsed_url.path):
        page_content = render_template('edit_profile.html', user=user, message="Malformed url %s"%(repr(parsed_url)))
        return render_page(page_content, page_name, user=user)

    try:
        contents = urllib2.urlopen(image_url).read()
        if imghdr.what(None, contents) not in ['png', 'jpeg', 'gif']:
            page_content = render_template('edit_profile.html', user=user, message="Unknown file type: "+contents)
            return render_page(page_content, page_name, user=user)
    except Exception, e:
        page_content = render_template('edit_profile.html', user=user, message="An exception occurred "+str(e))
        return render_page(page_content, page_name, user=user)
예제 #4
0
def message_compose():
    user = utils.get_user_from_cookie(request)
    page_name = "messages"

    if request.method.lower() == 'post':
        message_to = request.form.get('message_to') or ''
        message_title = request.form.get('message_title') or ''
        message_contents = request.form.get('message_contents') or ''

        if not (message_to and message_title and message_contents):
            message = "Missing field"
            page_content = render_template('compose.html', user=user, message=message)
            return render_page(page_content, page_name, user=user)

        to_user = utils.check_username(message_to)
        if not to_user:
            message = "Invalid user"
            page_content = render_template('compose.html', user=user, message=message)
            return render_page(page_content, page_name, user=user)

        utils.create_message(to_user['user_id'], user['user_id'], message_title, message_contents)
        return redirect('/messages/view')

    page_content = render_template('compose.html', user=user)
    return render_page(page_content, page_name, user=user)
예제 #5
0
def message_compose():
    user = utils.get_user_from_cookie(request)
    page_name = 'messages'

    if request.method.lower() == "post":
        message_to = request.form.get("message_to") or ""
        message_title = request.form.get("message_title") or ""
        message_contents = request.form.get("message_contents") or ""

        if not (message_to and message_title and message_contents):
            message = 'Missing field'
            page_content = render_template("compose.html", user=user, message=message)
            return render_page(page_content, page_name, user=user)

        to_user = utils.check_username(message_to)
        if not to_user:
            message = 'Invalid user'
            page_content = render_template("compose.html", user=user, message=message)
            return render_page(page_content, page_name, user=user)

        utils.create_message(to_user["user_id"], user["user_id"], message_title, message_contents)
        return redirect("/messages/view")

    page_content = render_template("compose.html", user=user)
    return render_page(page_content, page_name, user=user)
예제 #6
0
def message_compose():
    user = utils.get_user_from_cookie(request)
    page_name = 'messages'

    if request.method.lower() == "post":
        message_to = request.form.get("message_to") or ""
        message_title = request.form.get("message_title") or ""
        message_contents = request.form.get("message_contents") or ""

        if not (message_to and message_title and message_contents):
            message = 'Missing field'
            page_content = render_template("compose.html",
                                           user=user,
                                           message=message)
            return render_page(page_content, page_name, user=user)

        to_user = utils.check_username(message_to)
        if not to_user:
            message = 'Invalid user'
            page_content = render_template("compose.html",
                                           user=user,
                                           message=message)
            return render_page(page_content, page_name, user=user)

        utils.create_message(to_user["user_id"], user["user_id"],
                             message_title, message_contents)
        return redirect("/messages/view")

    page_content = render_template("compose.html", user=user)
    return render_page(page_content, page_name, user=user)
예제 #7
0
def messages_view_listing():
    user = utils.get_user_from_cookie(request)
    page_name = 'messages'
    messages = utils.get_messages_for_user(user["user_id"])
    if request.method.lower() == 'get':
        page_content = render_template("view_messages.html", user=user, messages=messages)
        return render_page(page_content, page_name, user=user)
예제 #8
0
def edit_profile():
    user = utils.get_user_from_cookie(request)
    page_name = 'edit profile'

    if request.method.lower() == 'get':
        page_content = render_template("edit_profile.html", user=user)
        return render_page(page_content, page_name, user=user)

    image_url = request.form.get("image_url") or ""
    profile_text = request.form.get("profile_text") or ""

    if not (image_url and profile_text):
        page_content = render_template("edit_profile.html", user=user, message='Missing fields')
        return render_page(page_content, page_name, user=user)

    parsed_url = urlparse.urlparse(image_url)
    if not (parsed_url.scheme and parsed_url.netloc and parsed_url.path):
        page_content = render_template("edit_profile.html", user=user, message='Malformed url %s'%(repr(parsed_url)))
        return render_page(page_content, page_name, user=user)

    try:
        contents = urllib2.urlopen(image_url).read()
        if imghdr.what(None, contents) not in ["png", "jpeg", "gif"]:
            page_content = render_template("edit_profile.html", user=user, message='Unknown file type: '+contents)
            return render_page(page_content, page_name, user=user)
    except Exception, e:
        page_content = render_template("edit_profile.html", user=user, message='An exception occurred '+str(e))
        return render_page(page_content, page_name, user=user)
예제 #9
0
def show_registration():
    user = utils.get_user_from_cookie(request)
    page_name = "register"

    if request.method.lower() == "get":
        page_content = render_template('register.html')
        return render_page(page_content, 'register', user=user)

    if request.method.lower() == "post":
        username = request.form.get('username') or ''
        password = request.form.get('password') or ''
        if not username or not password :
            page_content = render_template('register.html', message="Missing field")
            return render_page(page_content, page_name)

        if utils.check_username(username):
            page_content = render_template('register.html', message="That username is taken!")
            return render_page(page_content, page_name)

        seed = utils.generate_seed(username, request.remote_addr)
        totp_key = utils.get_totp_key(seed)
        utils.register_user(username, password, request.remote_addr)
        qr_url = "http://api.qrserver.com/v1/create-qr-code/?data=otpauth://totp/%s?secret=%s&size=220x220&margin=0"%(username, totp_key)
        page_content = render_template(
            'register.html',
            message='Success! <a href="/login">login here</a><br />TOTP Key: %s<br /><img src="%s" />' % (totp_key, qr_url)
        )

        return render_page(page_content, page_name)
예제 #10
0
def show_registration():
    user = utils.get_user_from_cookie(request)
    page_name = 'register'

    if request.method.lower() == 'get':
        page_content = render_template("register.html")
        return render_page(page_content, "register", user=user)

    if request.method.lower() == 'post':
        username = request.form.get("username") or ""
        password = request.form.get("password") or ""
        if not username or not password :
            page_content = render_template("register.html", message='Missing field')
            return render_page(page_content, page_name)

        if utils.check_username(username):
            page_content = render_template("register.html", message='That username is taken!')
            return render_page(page_content, page_name)

        seed = utils.generate_seed(username, request.remote_addr)
        totp_key = utils.get_totp_key(seed)
        utils.register_user(username, password, request.remote_addr)
        qr_url = 'http://api.qrserver.com/v1/create-qr-code/?data=otpauth://totp/%s?secret=%s&amp;size=220x220&amp;margin=0'%(username, totp_key)
        page_content = render_template(
            "register.html",
            message="Success! <a href='/login'>login here</a><br />TOTP Key: %s<br /><img src='%s' />" % (totp_key, qr_url)
        )

        return render_page(page_content, page_name)
예제 #11
0
def messages_view_listing():
    user = utils.get_user_from_cookie(request)
    page_name = 'messages'
    messages = utils.get_messages_for_user(user["user_id"])
    if request.method.lower() == 'get':
        page_content = render_template("view_messages.html",
                                       user=user,
                                       messages=messages)
        return render_page(page_content, page_name, user=user)
예제 #12
0
def browse_profile(username):
    page_name = 'search'
    user = utils.get_user_from_cookie(request)
    if username and utils.check_username(username):
        user_profile = utils.check_username(username)
        page_content = render_template("user_profile.html", message=None, user_profile=user_profile, user=user)
        return render_page(page_content, page_name)

    return redirect("/")
예제 #13
0
def messages_view_individual(message_id):
    user = utils.get_user_from_cookie(request)
    message = utils.get_message_by_id(message_id)
    page_name = 'message'

    if not message or user["user_id"] not in (message["message_from"], message["message_to"]):
        return redirect("/messages/view")

    page_content = render_template("individual_message.html", user=user, message=message)
    return render_page(page_content, page_name, user=user)
예제 #14
0
def messages_view_individual(message_id):
    user = utils.get_user_from_cookie(request)
    message = utils.get_message_by_id(message_id)
    page_name = "message"

    if not message or user['user_id'] not in (message['message_from'], message['message_to']):
        return redirect('/messages/view')

    page_content = render_template('individual_message.html', user=user, message=message)
    return render_page(page_content, page_name, user=user)
예제 #15
0
def browse_profile(username):
    page_name = 'search'
    user = utils.get_user_from_cookie(request)
    if username and utils.check_username(username):
        user_profile = utils.check_username(username)
        page_content = render_template("user_profile.html",
                                       message=None,
                                       user_profile=user_profile,
                                       user=user)
        return render_page(page_content, page_name)

    return redirect("/")
예제 #16
0
def messages_view_individual(message_id):
    user = utils.get_user_from_cookie(request)
    message = utils.get_message_by_id(message_id)
    page_name = 'message'

    if not message or user["user_id"] not in (message["message_from"],
                                              message["message_to"]):
        return redirect("/messages/view")

    page_content = render_template("individual_message.html",
                                   user=user,
                                   message=message)
    return render_page(page_content, page_name, user=user)
예제 #17
0
def search():
    page_name = 'search'
    user = utils.get_user_from_cookie(request)
    search_query = request.args.get("query")
    if not search_query:
        page_content = render_template("search.html", user=user, message='')
        return render_page(page_content, page_name, user=user)

    users = utils.search(search_query)
    if not users:
        page_content = render_template("search.html", message='NO USERS FOUND :(', user=user)
        return render_page(page_content, page_name, user=user)

    page_content = render_template("search.html", message='', users=users)
    return render_page(page_content, page_name, user=user)
예제 #18
0
def search():
    page_name = "search"
    user = utils.get_user_from_cookie(request)
    search_query = request.args.get('query')
    if not search_query:
        page_content = render_template('search.html', user=user, message="")
        return render_page(page_content, page_name, user=user)

    users = utils.search(search_query)
    if not users:
        page_content = render_template('search.html', message="NO USERS FOUND :(", user=user)
        return render_page(page_content, page_name, user=user)

    page_content = render_template('search.html', message="", users=users)
    return render_page(page_content, page_name, user=user)
예제 #19
0
def search():
    page_name = 'search'
    user = utils.get_user_from_cookie(request)
    search_query = request.args.get("query")
    if not search_query:
        page_content = render_template("search.html", user=user, message='')
        return render_page(page_content, page_name, user=user)

    users = utils.search(search_query)
    if not users:
        page_content = render_template("search.html",
                                       message='NO USERS FOUND :(',
                                       user=user)
        return render_page(page_content, page_name, user=user)

    page_content = render_template("search.html", message='', users=users)
    return render_page(page_content, page_name, user=user)
예제 #20
0
def edit_profile():
    user = utils.get_user_from_cookie(request)
    page_name = 'edit profile'

    if request.method.lower() == 'get':
        page_content = render_template("edit_profile.html", user=user)
        return render_page(page_content, page_name, user=user)

    image_url = request.form.get("image_url") or ""
    profile_text = request.form.get("profile_text") or ""

    if not (image_url and profile_text):
        page_content = render_template("edit_profile.html",
                                       user=user,
                                       message='Missing fields')
        return render_page(page_content, page_name, user=user)

    parsed_url = urlparse.urlparse(image_url)
    if not (parsed_url.scheme and parsed_url.netloc and parsed_url.path):
        page_content = render_template("edit_profile.html",
                                       user=user,
                                       message='Malformed url %s' %
                                       (repr(parsed_url)))
        return render_page(page_content, page_name, user=user)

    try:
        contents = urllib2.urlopen(image_url).read()
        if imghdr.what(None, contents) not in ["png", "jpeg", "gif"]:
            page_content = render_template("edit_profile.html",
                                           user=user,
                                           message='Unknown file type: ' +
                                           contents)
            return render_page(page_content, page_name, user=user)
    except Exception, e:
        page_content = render_template("edit_profile.html",
                                       user=user,
                                       message='An exception occurred ' +
                                       str(e))
        return render_page(page_content, page_name, user=user)
예제 #21
0
def index():
    user = utils.get_user_from_cookie(request)
    page_name = 'home page'
    page_content = render_template("home.html")
    return render_page(page_content, page_name, user=user)
예제 #22
0
def index():
    user = utils.get_user_from_cookie(request)
    page_name = 'home page'
    page_content = render_template("home.html")
    return render_page(page_content, page_name, user=user)
예제 #23
0
    parsed_url = urlparse.urlparse(image_url)
    if not (parsed_url.scheme and parsed_url.netloc and parsed_url.path):
        page_content = render_template("edit_profile.html", user=user, message='Malformed url %s'%(repr(parsed_url)))
        return render_page(page_content, page_name, user=user)

    try:
        contents = urllib2.urlopen(image_url).read()
        if imghdr.what(None, contents) not in ["png", "jpeg", "gif"]:
            page_content = render_template("edit_profile.html", user=user, message='Unknown file type: '+contents)
            return render_page(page_content, page_name, user=user)
    except Exception, e:
        page_content = render_template("edit_profile.html", user=user, message='An exception occurred '+str(e))
        return render_page(page_content, page_name, user=user)

    utils.update_user_profile(user["user_id"], image_url, profile_text)
    user = utils.get_user_from_cookie(request)
    page_content = render_template("edit_profile.html", user=user, message='Success')
    return render_page(page_content, page_name, user=user)

@app.route("/messages/")
def messages_redirect():
    return redirect("/messages/view")

@app.route("/messages/compose", methods=["GET", "POST"])
@require_auth
def message_compose():
    user = utils.get_user_from_cookie(request)
    page_name = 'messages'

    if request.method.lower() == "post":
        message_to = request.form.get("message_to") or ""
예제 #24
0
        contents = urllib2.urlopen(image_url).read()
        if imghdr.what(None, contents) not in ["png", "jpeg", "gif"]:
            page_content = render_template("edit_profile.html",
                                           user=user,
                                           message='Unknown file type: ' +
                                           contents)
            return render_page(page_content, page_name, user=user)
    except Exception, e:
        page_content = render_template("edit_profile.html",
                                       user=user,
                                       message='An exception occurred ' +
                                       str(e))
        return render_page(page_content, page_name, user=user)

    utils.update_user_profile(user["user_id"], image_url, profile_text)
    user = utils.get_user_from_cookie(request)
    page_content = render_template("edit_profile.html",
                                   user=user,
                                   message='Success')
    return render_page(page_content, page_name, user=user)


@app.route("/messages/")
def messages_redirect():
    return redirect("/messages/view")


@app.route("/messages/compose", methods=["GET", "POST"])
@require_auth
def message_compose():
    user = utils.get_user_from_cookie(request)