Example #1
0
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')
Example #2
0
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')
Example #3
0
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')
Example #4
0
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')
Example #5
0
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')
Example #6
0
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"
            )