def register(): global path if request.method == 'POST': password = request.form['pass'] # Passwort empfangen username = request.form['user'] if password != "" and username != "": if db.check_valid(username): db.insert(username, password, username) os.mkdir(username) path = username auth.create(session, username, password) print(request.remote_addr + ' - - registred as : ' + username) logger.log(request.remote_addr + ' - - registred as : ' + username) return redirect('/') else: return render_template( 'register.html', register="Benutzername bereits vergeben") else: return render_template('register.html', register="Ungültige Eingabe") if request.method == 'GET': return render_template('register.html')
def login(): global path if request.method == 'POST': # Falls das Passwort gesendet wird password = request.form['pass'] # Passwort empfangen username = request.form['user'] if username != "" and password != "": login = auth.login(username, password) if login != "Wrong": # Passwort prüfen path = login auth.create(session, username, password) # Login session erstellen# print(request.remote_addr + ' - - logged in') logger.log(request.remote_addr + ' - - logged in') return redirect('/') else: #Passwort Falsch login = False print(request.remote_addr + ' - - specified a wrong password : '******' - - specified a wrong password : '******'login.html', login="******") # Erneut die Login Seite login = True else: return render_template('login.html', login="******") elif request.method == 'GET': return render_template('login.html')
def delete_file(): if auth.check(session): # Login Session prüfen if request.method == 'POST': filename = request.form[ 'file'] # Zu löschenden Dateinamen erhalten os.remove(os.path.join( path, filename)) # Datei aus UPLOAD_FOLDER löschen logger.log(request.remote_addr + ' - - deleted ' + filename) return redirect('/') elif request.method == 'GET': return render_template('delete.html', files=os.listdir(path)) else: return redirect('/login')
def upload_file(): if auth.check(session): if request.method == 'POST': if 'file' not in request.files: # Checken ob eine Datei gesendet wurde flash('Keine Datei gesendet') return redirect(request.url) file = request.files['file'] # Datei empfangen if file.filename == '': # Dateiname checken flash('Keine Datei ausgwählt') return redirect(request.url) if file and allowed_file( file.filename): # Checken ob diese Datei erlaubt ist filename = secure_filename(file.filename) file.save(os.path.join( path, filename)) # Datei in UPLOAD_FOLDER speichern logger.log(request.remote_addr + ' - - uploadet ' + filename) return redirect('/') elif request.method == 'GET': return render_template('upload.html') else: return redirect('/login')
def uploaded_file(filename): if auth.check(session): # Login Session prüfen logger.log(request.remote_addr + ' - - viewed ' + filename) return send_from_directory(path, filename) # Datei zurückgeben else: return redirect('/login')
def admin(): if request.method == "GET": logger.log(ip=request.remote_addr, message="Hat die admin-login Seite aufgerufen") if session.get("login"): if db.check_login(session["login"]): logger.log(ip=request.remote_addr, message="Ist als Admin eingeloggt") return render_template("admin.html", loggedin=True, question_count=db.get_question_count(), rooms_count=db.get_rooms_count(), user_count=db.get_user_count(), questions=db.get_questions(), debugging=configure.debug, host=configure.host, port=configure.port) else: session.clear() return redirect("/") else: logger.log(ip=request.remote_addr, message="Hat eine falsche Admin-Session benutzt") return render_template("admin.html") elif request.method == "POST": if "login" in request.form: if "password" in request.form and db.check_password( request.form["password"]): # create session with password hash logger.log(ip=request.remote_addr, message="Hat sich eingeloggt") session["login"] = configure.admin_pw_hash db.clear_statistics() return render_template("admin.html", loggedin=True, question_count=db.get_question_count(), user_count=db.get_user_count(), rooms_count=db.get_rooms_count(), questions=db.get_questions(), debugging=configure.debug, host=configure.host, port=configure.port) else: logger.log(ip=request.remote_addr, message="Hat ein falsches Passwort benutzt") return render_template( "admin.html", message= "Falsches Passwort. Bitte lade die Seite neu und versuche erneut dich anzumelden" ) elif session and session["login"]: if db.check_login(session["login"]): if "save_changes" in request.form: host = configure.host debug = configure.debug port = configure.port admin_password_hash = configure.admin_pw_hash if "admin_password" in request.form: if not request.form["admin_password"] == "": if re.findall( "(?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$", request.form["admin_password"]): admin_password_hash = db.change_admin_password( request.form["admin_password"]) else: session.clear() logger.log( ip=request.remote_addr, message= "attempted to change admin password", ) if "host" in request.form: if re.findall( "^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])(\.([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9]))*$", request.form["host"]): print("valid Host") host = request.form["host"] else: # delete session print("invalid host") if "port" in request.form: if int(request.form["port"]) >= 1 and int( request.form["port"]) <= 65535: port = request.form["port"] else: # delete session pass if "debug_mode" in request.form: if request.form["debug_mode"] == 1: debug = True else: debug = False db.change_config(host, debug, port, admin_password_hash) return redirect("/loading") ########################################################################################################################################################## elif "new_question" in request.form: if "question" in request.form: if len(request.form["question"]) < 10 or len( request.form["question"]) > 255: session.clear() return render_template( "admin.html", message= "Ungültiger Request. Bitte lade die Seite neu und versuche es erneut." ) else: logger.log(ip=request.remote_addr, message="Hat die Frage: '" + request.form["question"] + "' hinzugefügt") return render_template( "admin.html", loggedin=True, question_count=db.get_question_count(), user_count=db.get_user_count(), rooms_count=db.get_rooms_count(), message=db.add_question( request.form["question"]), questions=db.get_questions(), debugging=configure.debug, host=configure.host, port=configure.port) else: session.clear() return render_template( "admin.html", message= "Ungültiger Request. Bitte lade die Seite neu und versuche es erneut." ) elif "delete" in request.form: if "id" in request.form: try: val = int(request.form["id"]) except ValueError: session.clear() return render_template( "admin.html", message= "Ungültiger Request. Bitte lade die Seite neu und versuche es erneut." ) logger.log(ip=request.remote_addr, message="Hat hat Frage " + request.form["id"] + " gelöscht") return render_template( "admin.html", loggedin=True, question_count=db.get_question_count(), user_count=db.get_user_count(), rooms_count=db.get_rooms_count(), message=db.delete_question(request.form["id"]), questions=db.get_questions(), debugging=configure.debug, host=configure.host, port=configure.port) else: session.clear() return render_template( "admin.html", message= "Ungültiger Request. Bitte lade die Seite neu und versuche es erneut." ) elif "update" in request.form: if "question" in request.form and "id" in request.form: try: val = int(request.form["id"]) except ValueError: session.clear() return render_template( "admin.html", message= "Ungültiger Request. Bitte lade die Seite neu und versuche es erneut." ) if len(str(request.form["question"])) < 10 or len( str(request.form["question"])) > 255: session.clear() return render_template( "admin.html", message= "Ungültiger Request. Bitte lade die Seite neu und versuche es erneut." ) else: logger.log(ip=request.remote_addr, message="Hat Frage " + request.form["id"] + " geändert") return render_template( "admin.html", loggedin=True, question_count=db.get_question_count(), user_count=db.get_user_count(), rooms_count=db.get_rooms_count(), message=db.update_question( request.form["id"], request.form["question"]), questions=db.get_questions(), debugging=configure.debug, host=configure.host, port=configure.port) else: session.clear() return render_template( "admin.html", message= "Ungültiger Request. Bitte lade die Seite neu und versuche es erneut." ) else: session.clear() return render_template( "admin.html", message= "Ungültiger Request. Bitte lade die Seite neu und versuche es erneut." ) else: return render_template("admin.html", message="Du bist nicht angemeldet.") else: return render_template( "admin.html", message= "Ungültiger Request. Bitte lade die Seite neu und versuche erneut dich anzumelden" )