def admin_config(): if request.method == "POST": start = None end = None if request.form.get('start'): start = int(request.form['start']) if request.form.get('end'): end = int(request.form['end']) if end < unix_time(datetime.datetime.now()): end = None try: view_challenges_unregistered = bool( request.form.get('view_challenges_unregistered', None)) view_scoreboard_if_authed = bool( request.form.get('view_scoreboard_if_authed', None)) prevent_registration = bool( request.form.get('prevent_registration', None)) prevent_name_change = bool( request.form.get('prevent_name_change', None)) view_after_ctf = bool(request.form.get('view_after_ctf', None)) verify_emails = bool(request.form.get('verify_emails', None)) mail_tls = bool(request.form.get('mail_tls', None)) mail_ssl = bool(request.form.get('mail_ssl', None)) except (ValueError, TypeError): view_challenges_unregistered = None view_scoreboard_if_authed = None prevent_registration = None prevent_name_change = None view_after_ctf = None verify_emails = None mail_tls = None mail_ssl = None finally: view_challenges_unregistered = set_config( 'view_challenges_unregistered', view_challenges_unregistered) view_scoreboard_if_authed = set_config('view_scoreboard_if_authed', view_scoreboard_if_authed) prevent_registration = set_config('prevent_registration', prevent_registration) prevent_name_change = set_config('prevent_name_change', prevent_name_change) view_after_ctf = set_config('view_after_ctf', view_after_ctf) verify_emails = set_config('verify_emails', verify_emails) mail_tls = set_config('mail_tls', mail_tls) mail_ssl = set_config('mail_ssl', mail_ssl) mail_server = set_config("mail_server", request.form.get('mail_server', None)) mail_port = set_config("mail_port", request.form.get('mail_port', None)) mail_username = set_config("mail_username", request.form.get('mail_username', None)) mail_password = set_config("mail_password", request.form.get('mail_password', None)) ctf_name = set_config("ctf_name", request.form.get('ctf_name', None)) ctf_theme = set_config("ctf_theme", request.form.get('ctf_theme', None)) mailfrom_addr = set_config("mailfrom_addr", request.form.get('mailfrom_addr', None)) mg_base_url = set_config("mg_base_url", request.form.get('mg_base_url', None)) mg_api_key = set_config("mg_api_key", request.form.get('mg_api_key', None)) max_tries = set_config("max_tries", request.form.get('max_tries', None)) db_start = Config.query.filter_by(key='start').first() db_start.value = start db_end = Config.query.filter_by(key='end').first() db_end.value = end db.session.add(db_start) db.session.add(db_end) db.session.commit() db.session.close() with app.app_context(): cache.clear() return redirect(url_for('admin.admin_config')) with app.app_context(): cache.clear() ctf_name = get_config('ctf_name') ctf_theme = get_config('ctf_theme') max_tries = get_config('max_tries') mail_server = get_config('mail_server') mail_port = get_config('mail_port') mail_username = get_config('mail_username') mail_password = get_config('mail_password') mailfrom_addr = get_config('mailfrom_addr') mg_api_key = get_config('mg_api_key') mg_base_url = get_config('mg_base_url') if not max_tries: set_config('max_tries', 0) max_tries = 0 view_after_ctf = get_config('view_after_ctf') start = get_config('start') end = get_config('end') mail_tls = get_config('mail_tls') mail_ssl = get_config('mail_ssl') view_challenges_unregistered = get_config('view_challenges_unregistered') view_scoreboard_if_authed = get_config('view_scoreboard_if_authed') prevent_registration = get_config('prevent_registration') prevent_name_change = get_config('prevent_name_change') verify_emails = get_config('verify_emails') db.session.commit() db.session.close() months = [ 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December' ] curr_year = datetime.date.today().year start_days = 0 end_days = 0 if start: start = datetime.datetime.fromtimestamp(float(start)) start_days = calendar.monthrange(start.year, start.month)[1] if end: end = datetime.datetime.fromtimestamp(float(end)) end_days = calendar.monthrange(end.year, end.month)[1] themes = get_themes() themes.remove(ctf_theme) return render_template( 'admin/config.html', ctf_name=ctf_name, ctf_theme_config=ctf_theme, start=start, end=end, max_tries=max_tries, mail_server=mail_server, mail_port=mail_port, mail_username=mail_username, mail_password=mail_password, mail_tls=mail_tls, mail_ssl=mail_ssl, view_challenges_unregistered=view_challenges_unregistered, view_scoreboard_if_authed=view_scoreboard_if_authed, prevent_registration=prevent_registration, mailfrom_addr=mailfrom_addr, mg_base_url=mg_base_url, mg_api_key=mg_api_key, prevent_name_change=prevent_name_change, verify_emails=verify_emails, view_after_ctf=view_after_ctf, months=months, curr_year=curr_year, start_days=start_days, end_days=end_days, themes=themes)
def admin_config(): if request.method == "POST": start = None end = None if request.form.get('start'): start = int(request.form['start']) if request.form.get('end'): end = int(request.form['end']) try: view_challenges_unregistered = bool( request.form.get('view_challenges_unregistered', None)) view_scoreboard_if_authed = bool( request.form.get('view_scoreboard_if_authed', None)) prevent_registration = bool( request.form.get('prevent_registration', None)) prevent_name_change = bool( request.form.get('prevent_name_change', None)) view_after_ctf = bool(request.form.get('view_after_ctf', None)) verify_emails = bool(request.form.get('verify_emails', None)) mail_tls = bool(request.form.get('mail_tls', None)) mail_ssl = bool(request.form.get('mail_ssl', None)) except (ValueError, TypeError): view_challenges_unregistered = None view_scoreboard_if_authed = None prevent_registration = None prevent_name_change = None view_after_ctf = None verify_emails = None mail_tls = None mail_ssl = None finally: view_challenges_unregistered = set_config( 'view_challenges_unregistered', view_challenges_unregistered) view_scoreboard_if_authed = set_config('view_scoreboard_if_authed', view_scoreboard_if_authed) prevent_registration = set_config('prevent_registration', prevent_registration) prevent_name_change = set_config('prevent_name_change', prevent_name_change) view_after_ctf = set_config('view_after_ctf', view_after_ctf) verify_emails = set_config('verify_emails', verify_emails) mail_tls = set_config('mail_tls', mail_tls) mail_ssl = set_config('mail_ssl', mail_ssl) mail_server = set_config("mail_server", request.form.get('mail_server', None)) mail_port = set_config("mail_port", request.form.get('mail_port', None)) mail_username = set_config("mail_username", request.form.get('mail_username', None)) mail_password = set_config("mail_password", request.form.get('mail_password', None)) ctf_name = set_config("ctf_name", request.form.get('ctf_name', None)) ctf_theme = set_config("ctf_theme", request.form.get('ctf_theme', None)) mailfrom_addr = set_config("mailfrom_addr", request.form.get('mailfrom_addr', None)) mg_base_url = set_config("mg_base_url", request.form.get('mg_base_url', None)) mg_api_key = set_config("mg_api_key", request.form.get('mg_api_key', None)) max_tries = set_config("max_tries", request.form.get('max_tries', None)) db_start = Config.query.filter_by(key='start').first() db_start.value = start db_end = Config.query.filter_by(key='end').first() db_end.value = end db.session.add(db_start) db.session.add(db_end) db.session.commit() db.session.close() with app.app_context(): cache.clear() return redirect(url_for('admin.admin_config')) with app.app_context(): cache.clear() ctf_name = get_config('ctf_name') ctf_theme = get_config('ctf_theme') max_tries = get_config('max_tries') mail_server = get_config('mail_server') mail_port = get_config('mail_port') mail_username = get_config('mail_username') mail_password = get_config('mail_password') mailfrom_addr = get_config('mailfrom_addr') mg_api_key = get_config('mg_api_key') mg_base_url = get_config('mg_base_url') if not max_tries: set_config('max_tries', 0) max_tries = 0 view_after_ctf = get_config('view_after_ctf') start = get_config('start') end = get_config('end') mail_tls = get_config('mail_tls') mail_ssl = get_config('mail_ssl') view_challenges_unregistered = get_config('view_challenges_unregistered') view_scoreboard_if_authed = get_config('view_scoreboard_if_authed') prevent_registration = get_config('prevent_registration') prevent_name_change = get_config('prevent_name_change') verify_emails = get_config('verify_emails') db.session.commit() db.session.close() themes = get_themes() themes.remove(ctf_theme) return render_template( 'admin/config.html', ctf_name=ctf_name, ctf_theme_config=ctf_theme, start=start, end=end, max_tries=max_tries, mail_server=mail_server, mail_port=mail_port, mail_username=mail_username, mail_password=mail_password, mail_tls=mail_tls, mail_ssl=mail_ssl, view_challenges_unregistered=view_challenges_unregistered, view_scoreboard_if_authed=view_scoreboard_if_authed, prevent_registration=prevent_registration, mailfrom_addr=mailfrom_addr, mg_base_url=mg_base_url, mg_api_key=mg_api_key, prevent_name_change=prevent_name_change, verify_emails=verify_emails, view_after_ctf=view_after_ctf, themes=themes)
def admin_config(): if request.method == "POST": start = None end = None freeze = None if request.form.get('start'): start = int(request.form['start']) if request.form.get('end'): end = int(request.form['end']) if request.form.get('freeze'): freeze = int(request.form['freeze']) try: view_challenges_unregistered = bool(request.form.get('view_challenges_unregistered', None)) view_scoreboard_if_authed = bool(request.form.get('view_scoreboard_if_authed', None)) hide_scores = bool(request.form.get('hide_scores', None)) prevent_registration = bool(request.form.get('prevent_registration', None)) prevent_name_change = bool(request.form.get('prevent_name_change', None)) view_after_ctf = bool(request.form.get('view_after_ctf', None)) verify_emails = bool(request.form.get('verify_emails', None)) mail_tls = bool(request.form.get('mail_tls', None)) mail_ssl = bool(request.form.get('mail_ssl', None)) mail_useauth = bool(request.form.get('mail_useauth', None)) workshop_mode = bool(request.form.get('workshop_mode', None)) except (ValueError, TypeError): view_challenges_unregistered = None view_scoreboard_if_authed = None hide_scores = None prevent_registration = None prevent_name_change = None view_after_ctf = None verify_emails = None mail_tls = None mail_ssl = None mail_useauth = None workshop_mode = None finally: view_challenges_unregistered = utils.set_config('view_challenges_unregistered', view_challenges_unregistered) view_scoreboard_if_authed = utils.set_config('view_scoreboard_if_authed', view_scoreboard_if_authed) hide_scores = utils.set_config('hide_scores', hide_scores) prevent_registration = utils.set_config('prevent_registration', prevent_registration) prevent_name_change = utils.set_config('prevent_name_change', prevent_name_change) view_after_ctf = utils.set_config('view_after_ctf', view_after_ctf) verify_emails = utils.set_config('verify_emails', verify_emails) mail_tls = utils.set_config('mail_tls', mail_tls) mail_ssl = utils.set_config('mail_ssl', mail_ssl) mail_useauth = utils.set_config('mail_useauth', mail_useauth) workshop_mode = utils.set_config('workshop_mode', workshop_mode) mail_server = utils.set_config("mail_server", request.form.get('mail_server', None)) mail_port = utils.set_config("mail_port", request.form.get('mail_port', None)) if request.form.get('mail_useauth', None) and (request.form.get('mail_u', None) or request.form.get('mail_p', None)): if len(request.form.get('mail_u')) > 0: mail_username = utils.set_config("mail_username", request.form.get('mail_u', None)) if len(request.form.get('mail_p')) > 0: mail_password = utils.set_config("mail_password", request.form.get('mail_p', None)) elif request.form.get('mail_useauth', None) is None: utils.set_config("mail_username", None) utils.set_config("mail_password", None) ctf_name = utils.set_config("ctf_name", request.form.get('ctf_name', None)) ctf_theme = utils.set_config("ctf_theme", request.form.get('ctf_theme', None)) mailfrom_addr = utils.set_config("mailfrom_addr", request.form.get('mailfrom_addr', None)) mg_base_url = utils.set_config("mg_base_url", request.form.get('mg_base_url', None)) mg_api_key = utils.set_config("mg_api_key", request.form.get('mg_api_key', None)) db_freeze = utils.set_config("freeze", freeze) db_start = Config.query.filter_by(key='start').first() db_start.value = start db_end = Config.query.filter_by(key='end').first() db_end.value = end db.session.add(db_start) db.session.add(db_end) db.session.commit() db.session.close() with app.app_context(): cache.clear() return redirect(url_for('admin.admin_config')) with app.app_context(): cache.clear() ctf_name = utils.get_config('ctf_name') ctf_theme = utils.get_config('ctf_theme') hide_scores = utils.get_config('hide_scores') mail_server = utils.get_config('mail_server') mail_port = utils.get_config('mail_port') mail_username = utils.get_config('mail_username') mail_password = utils.get_config('mail_password') mailfrom_addr = utils.get_config('mailfrom_addr') mg_api_key = utils.get_config('mg_api_key') mg_base_url = utils.get_config('mg_base_url') view_after_ctf = utils.get_config('view_after_ctf') start = utils.get_config('start') end = utils.get_config('end') freeze = utils.get_config('freeze') mail_tls = utils.get_config('mail_tls') mail_ssl = utils.get_config('mail_ssl') mail_useauth = utils.get_config('mail_useauth') view_challenges_unregistered = utils.get_config('view_challenges_unregistered') view_scoreboard_if_authed = utils.get_config('view_scoreboard_if_authed') prevent_registration = utils.get_config('prevent_registration') prevent_name_change = utils.get_config('prevent_name_change') verify_emails = utils.get_config('verify_emails') workshop_mode = utils.get_config('workshop_mode') db.session.commit() db.session.close() themes = utils.get_themes() themes.remove(ctf_theme) return render_template('admin/config.html', ctf_name=ctf_name, ctf_theme_config=ctf_theme, start=start, end=end, freeze=freeze, hide_scores=hide_scores, mail_server=mail_server, mail_port=mail_port, mail_useauth=mail_useauth, mail_username=mail_username, mail_password=mail_password, mail_tls=mail_tls, mail_ssl=mail_ssl, view_challenges_unregistered=view_challenges_unregistered, view_scoreboard_if_authed=view_scoreboard_if_authed, prevent_registration=prevent_registration, mailfrom_addr=mailfrom_addr, mg_base_url=mg_base_url, mg_api_key=mg_api_key, prevent_name_change=prevent_name_change, verify_emails=verify_emails, view_after_ctf=view_after_ctf, themes=themes, workshop_mode=workshop_mode)
def admin_config(): if request.method == "POST": start = None end = None freeze = None if request.form.get('start'): start = int(request.form['start']) if request.form.get('end'): end = int(request.form['end']) if request.form.get('freeze'): freeze = int(request.form['freeze']) try: # Set checkbox config values view_challenges_unregistered = 'view_challenges_unregistered' in request.form view_scoreboard_if_authed = 'view_scoreboard_if_authed' in request.form hide_scores = 'hide_scores' in request.form prevent_registration = 'prevent_registration' in request.form prevent_name_change = 'prevent_name_change' in request.form view_after_ctf = 'view_after_ctf' in request.form verify_emails = 'verify_emails' in request.form mail_tls = 'mail_tls' in request.form mail_ssl = 'mail_ssl' in request.form mail_useauth = 'mail_useauth' in request.form workshop_mode = 'workshop_mode' in request.form paused = 'paused' in request.form finally: utils.set_config('view_challenges_unregistered', view_challenges_unregistered) utils.set_config('view_scoreboard_if_authed', view_scoreboard_if_authed) utils.set_config('hide_scores', hide_scores) utils.set_config('prevent_registration', prevent_registration) utils.set_config('prevent_name_change', prevent_name_change) utils.set_config('view_after_ctf', view_after_ctf) utils.set_config('verify_emails', verify_emails) utils.set_config('mail_tls', mail_tls) utils.set_config('mail_ssl', mail_ssl) utils.set_config('mail_useauth', mail_useauth) utils.set_config('workshop_mode', workshop_mode) utils.set_config('paused', paused) utils.set_config("mail_server", request.form.get('mail_server', None)) utils.set_config("mail_port", request.form.get('mail_port', None)) if request.form.get('mail_useauth', None) and (request.form.get( 'mail_u', None) or request.form.get('mail_p', None)): if len(request.form.get('mail_u')) > 0: utils.set_config("mail_username", request.form.get('mail_u', None)) if len(request.form.get('mail_p')) > 0: utils.set_config("mail_password", request.form.get('mail_p', None)) elif request.form.get('mail_useauth', None) is None: utils.set_config("mail_username", None) utils.set_config("mail_password", None) if request.files.get('ctf_logo_file', None): ctf_logo = request.files['ctf_logo_file'] file_id, file_loc = utils.upload_file(ctf_logo, None) utils.set_config("ctf_logo", file_loc) elif request.form.get('ctf_logo') == '': utils.set_config("ctf_logo", None) utils.set_config("ctf_name", request.form.get('ctf_name', None)) utils.set_config("ctf_theme", request.form.get('ctf_theme', None)) utils.set_config('css', request.form.get('css', None)) utils.set_config("mailfrom_addr", request.form.get('mailfrom_addr', None)) utils.set_config("mg_base_url", request.form.get('mg_base_url', None)) utils.set_config("mg_api_key", request.form.get('mg_api_key', None)) utils.set_config("freeze", freeze) db_start = Config.query.filter_by(key='start').first() db_start.value = start db_end = Config.query.filter_by(key='end').first() db_end.value = end db.session.add(db_start) db.session.add(db_end) db.session.commit() db.session.close() with app.app_context(): cache.clear() return redirect(url_for('admin.admin_config')) # Clear the cache so that we don't get stale values cache.clear() ctf_name = utils.get_config('ctf_name') ctf_logo = utils.get_config('ctf_logo') ctf_theme = utils.get_config('ctf_theme') hide_scores = utils.get_config('hide_scores') css = utils.get_config('css') mail_server = utils.get_config('mail_server') mail_port = utils.get_config('mail_port') mail_username = utils.get_config('mail_username') mail_password = utils.get_config('mail_password') mailfrom_addr = utils.get_config('mailfrom_addr') mg_api_key = utils.get_config('mg_api_key') mg_base_url = utils.get_config('mg_base_url') view_after_ctf = utils.get_config('view_after_ctf') start = utils.get_config('start') end = utils.get_config('end') freeze = utils.get_config('freeze') mail_tls = utils.get_config('mail_tls') mail_ssl = utils.get_config('mail_ssl') mail_useauth = utils.get_config('mail_useauth') view_challenges_unregistered = utils.get_config( 'view_challenges_unregistered') view_scoreboard_if_authed = utils.get_config('view_scoreboard_if_authed') prevent_registration = utils.get_config('prevent_registration') prevent_name_change = utils.get_config('prevent_name_change') verify_emails = utils.get_config('verify_emails') workshop_mode = utils.get_config('workshop_mode') paused = utils.get_config('paused') db.session.commit() db.session.close() themes = utils.get_themes() themes.remove(ctf_theme) return render_template( 'admin/config.html', ctf_name=ctf_name, ctf_logo=ctf_logo, ctf_theme_config=ctf_theme, css=css, start=start, end=end, freeze=freeze, hide_scores=hide_scores, mail_server=mail_server, mail_port=mail_port, mail_useauth=mail_useauth, mail_username=mail_username, mail_password=mail_password, mail_tls=mail_tls, mail_ssl=mail_ssl, view_challenges_unregistered=view_challenges_unregistered, view_scoreboard_if_authed=view_scoreboard_if_authed, prevent_registration=prevent_registration, mailfrom_addr=mailfrom_addr, mg_base_url=mg_base_url, mg_api_key=mg_api_key, prevent_name_change=prevent_name_change, verify_emails=verify_emails, view_after_ctf=view_after_ctf, themes=themes, workshop_mode=workshop_mode, paused=paused)
def admin_config(): if request.method == "POST": start = None end = None freeze = None if request.form.get('start'): start = int(request.form['start']) if request.form.get('end'): end = int(request.form['end']) if request.form.get('freeze'): freeze = int(request.form['freeze']) try: view_challenges_unregistered = bool(request.form.get('view_challenges_unregistered', None)) view_scoreboard_if_authed = bool(request.form.get('view_scoreboard_if_authed', None)) hide_scores = bool(request.form.get('hide_scores', None)) prevent_registration = bool(request.form.get('prevent_registration', None)) prevent_name_change = bool(request.form.get('prevent_name_change', None)) view_after_ctf = bool(request.form.get('view_after_ctf', None)) verify_emails = bool(request.form.get('verify_emails', None)) mail_tls = bool(request.form.get('mail_tls', None)) mail_ssl = bool(request.form.get('mail_ssl', None)) except (ValueError, TypeError): view_challenges_unregistered = None view_scoreboard_if_authed = None hide_scores = None prevent_registration = None prevent_name_change = None view_after_ctf = None verify_emails = None mail_tls = None mail_ssl = None finally: view_challenges_unregistered = utils.set_config('view_challenges_unregistered', view_challenges_unregistered) view_scoreboard_if_authed = utils.set_config('view_scoreboard_if_authed', view_scoreboard_if_authed) hide_scores = utils.set_config('hide_scores', hide_scores) prevent_registration = utils.set_config('prevent_registration', prevent_registration) prevent_name_change = utils.set_config('prevent_name_change', prevent_name_change) view_after_ctf = utils.set_config('view_after_ctf', view_after_ctf) verify_emails = utils.set_config('verify_emails', verify_emails) mail_tls = utils.set_config('mail_tls', mail_tls) mail_ssl = utils.set_config('mail_ssl', mail_ssl) mail_server = utils.set_config("mail_server", request.form.get('mail_server', None)) mail_port = utils.set_config("mail_port", request.form.get('mail_port', None)) mail_username = utils.set_config("mail_username", request.form.get('mail_username', None)) mail_password = utils.set_config("mail_password", request.form.get('mail_password', None)) ctf_name = utils.set_config("ctf_name", request.form.get('ctf_name', None)) ctf_theme = utils.set_config("ctf_theme", request.form.get('ctf_theme', None)) mailfrom_addr = utils.set_config("mailfrom_addr", request.form.get('mailfrom_addr', None)) mg_base_url = utils.set_config("mg_base_url", request.form.get('mg_base_url', None)) mg_api_key = utils.set_config("mg_api_key", request.form.get('mg_api_key', None)) db_freeze = utils.set_config("freeze", freeze) db_start = Config.query.filter_by(key='start').first() db_start.value = start db_end = Config.query.filter_by(key='end').first() db_end.value = end db.session.add(db_start) db.session.add(db_end) db.session.commit() db.session.close() with app.app_context(): cache.clear() return redirect(url_for('admin.admin_config')) with app.app_context(): cache.clear() ctf_name = utils.get_config('ctf_name') ctf_theme = utils.get_config('ctf_theme') hide_scores = utils.get_config('hide_scores') mail_server = utils.get_config('mail_server') mail_port = utils.get_config('mail_port') mail_username = utils.get_config('mail_username') mail_password = utils.get_config('mail_password') mailfrom_addr = utils.get_config('mailfrom_addr') mg_api_key = utils.get_config('mg_api_key') mg_base_url = utils.get_config('mg_base_url') view_after_ctf = utils.get_config('view_after_ctf') start = utils.get_config('start') end = utils.get_config('end') freeze = utils.get_config('freeze') mail_tls = utils.get_config('mail_tls') mail_ssl = utils.get_config('mail_ssl') view_challenges_unregistered = utils.get_config('view_challenges_unregistered') view_scoreboard_if_authed = utils.get_config('view_scoreboard_if_authed') prevent_registration = utils.get_config('prevent_registration') prevent_name_change = utils.get_config('prevent_name_change') verify_emails = utils.get_config('verify_emails') db.session.commit() db.session.close() themes = utils.get_themes() themes.remove(ctf_theme) return render_template('admin/config.html', ctf_name=ctf_name, ctf_theme_config=ctf_theme, start=start, end=end, freeze=freeze, hide_scores=hide_scores, mail_server=mail_server, mail_port=mail_port, mail_username=mail_username, mail_password=mail_password, mail_tls=mail_tls, mail_ssl=mail_ssl, view_challenges_unregistered=view_challenges_unregistered, view_scoreboard_if_authed=view_scoreboard_if_authed, prevent_registration=prevent_registration, mailfrom_addr=mailfrom_addr, mg_base_url=mg_base_url, mg_api_key=mg_api_key, prevent_name_change=prevent_name_change, verify_emails=verify_emails, view_after_ctf=view_after_ctf, themes=themes)