Пример #1
0
def site_userchallengedownload(username, challengename):
    u = User(username)
    if not u.authenticated() and not u.isadminsession():
        return redirect(url_for('site_authenticate', name=username))
    c = u.challenge(challengename)
    rv = app.make_response(c.testcode)
    #rv.headers.add_header('Content-Disposition: attachment', 'filename=' + u.shortname + c.testname + '.py')
    rv.headers.add('Content-Disposition','attachment', filename=u.shortname + c.testname + '.py')
    rv.mimetype = 'text/plain'
    return rv
Пример #2
0
def site_userchallengesubmit(username, challengename):
    u = User(username)
    c = u.challenge(challengename)
    if not u.authenticated():
        return redirect(url_for('site_authenticate', name=username))
    if request.method == 'POST':
        file = request.files['file']
        file.seek(0,2)
        if not file.tell():
            file.close()
            file = tempfile.NamedTemporaryFile(mode='br+')
            file.write(bytes(request.form['data'], 'UTF-8'))
        file.seek(0)
        c.testcanonicalexample()
        c.runtest(file)
        c.savestate(u.datapath)
    return redirect(c.userchallengeurl(username))
Пример #3
0
def site_userchallenge(username, challengename):
    u = User(username)
    c = u.challenge(challengename)
    if not u.authenticated() and not u.isadminsession():
        return redirect(url_for('site_authenticate', name=username))
    return render_template('userchallenge.html', title=u.longname+' - '+c.testname, user=u, challenge=c)