def setup(): # with app.app_context(): # admin = Teams.query.filter_by(admin=True).first() if not is_setup(): if not session.get('nonce'): session['nonce'] = sha512(os.urandom(10)) if request.method == 'POST': ctf_name = request.form['ctf_name'] ctf_name = Config('ctf_name', ctf_name) ## CSS css = Config('start', '') ## Admin user name = request.form['name'] email = request.form['email'] password = request.form['password'] admin = Teams(name, email, password) admin.admin = True admin.banned = True ## Index page html = request.form['html'] page = Pages('index', html) #max attempts per challenge max_tries = Config("max_tries", 0) ## Start time start = Config('start', None) end = Config('end', None) ## Challenges cannot be viewed by unregistered users view_challenges_unregistered = Config( 'view_challenges_unregistered', None) ## Allow/Disallow registration prevent_registration = Config('prevent_registration', None) setup = Config('setup', True) db.session.add(ctf_name) db.session.add(admin) db.session.add(page) db.session.add(max_tries) db.session.add(start) db.session.add(end) db.session.add(view_challenges_unregistered) db.session.add(prevent_registration) db.session.add(css) db.session.add(setup) db.session.commit() app.setup = False return redirect('/') print(session.get('nonce')) return render_template('setup.html', nonce=session.get('nonce')) return redirect('/')
def set_config(key, value): config = Config.query.filter_by(key=key).first() if config: config.value = value else: config = Config(key, value) db.session.add(config) db.session.commit() return config
def setup(): # with app.app_context(): # admin = Teams.query.filter_by(admin=True).first() if not is_setup(): if request.method == 'POST': ## Admin user name = request.form['name'] email = request.form['email'] password = request.form['password'] admin = Teams(name, email, password) admin.admin = True ## Index page html = request.form['html'] page = Pages('index', html) ## Start time start = Config('start', None) end = Config('end', None) ## Challenges cannot be viewed by unregistered users view_challenges_unregistered = Config( 'view_challenges_unregistered', None) ## Allow/Disallow registration prevent_registration = Config('prevent_registration', None) setup = Config('setup', True) db.session.add(admin) db.session.add(page) db.session.add(start) db.session.add(end) db.session.add(view_challenges_unregistered) db.session.add(prevent_registration) db.session.add(setup) db.session.commit() app.setup = False return redirect('/') return render_template('setup.html') return redirect('/')