Example #1
0
def admin_files(filename):
    u = User(ADMIN)
    if u.isadminsession() and filename in PATHNAMES:
        data = open(PATHNAMES[filename],'r').read()
        return render_template('editfile.html', filename=filename, data=data)
    else:
        return redirect(url_for('site_main'))
Example #2
0
def site_user(name):
    u = User(name)
    if u.isadminsession() or u.authenticated():
        return render_template('user.html', title=u.longname, user=u )
    elif not u.passhash:
        return redirect(url_for('site_getnewpass', name=name))
    elif not u.authenticated():
        return redirect(url_for('site_authenticate', name=name))
    else:
        return redirect(url_for('site_users'))
Example #3
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
Example #4
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))
Example #5
0
def site_authenticatesubmit(name):
    u = User(name)
    if request.method == 'POST':
        u.login(request.form['pass'])
    return redirect(url_for('site_user', name=name))
Example #6
0
def site_getnewpasssubmit(name):
    u = User(name)
    if (not u.passhash or u.authenticated()) and request.form['pass1'] == request.form['pass2']:
        u.setpassword(request.form['pass1'])
    return redirect(url_for('site_authenticate', name=name))
Example #7
0
def site_getnewpass(name):
    u = User(name)
    if not u.passhash or u.authenticated():
        return render_template('setpass.html', user=u)
    else:
        redirect(url_for('site_authenticate', name=name))
Example #8
0
def admin_filessubmit(filename):
    u = User(ADMIN)
    if u.isadminsession() and filename in PATHNAMES:
        data = request.form['data']
        open(PATHNAMES[filename],'w').write(data)
    return redirect(url_for('site_main'))
Example #9
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)