Beispiel #1
0
def admin():
    # Vraagt het eerder gemaakte 'NieuweGebruikerForm' form aan.
    form = NieuweGebruikerForm()

    # Zodra de post op de pagina langs de vallidators van WTForm zijn gegaan kan de rest plaatsvinden.
    if form.validate_on_submit():
        # Nodig voor de request die we hierna gaan maken.
        admin = NieuweGebruikerForm(request.form)

        # Alle velden worden binnengehaald en aan een variabele gekoppelt.
        username = admin.gebruikersnaam.data
        password = admin.password.data
        voornaam = admin.voornaam.data
        achternaam = admin.achternaam.data
        rang = admin.rang.data

        # Een laatste check of de username wel beschikbaar is (Deze moet uniek zijn):
        cur.execute("SELECT username FROM User WHERE username =%s", (escape(username)))
        beschikbaar = cur.fetchall()

        if beschikbaar == ():
            # Het wachtwoord wordt met een random salt gehashed en beide worden in één variabele gestopt.
            versleutelde_password = hash.encrypt(escape(password))

            # De gegevens worden naar de database verstuurd:
            cur.execute(
                "INSERT INTO User (username, forename, lastname, password, rank) VALUES (%s, %s, %s, %s, %s)",
                (escape(username), escape(voornaam), escape(achternaam), versleutelde_password, int(rang)),
            )
            g.db_conn.commit()

            # Redirect naar dezelfde pagina voor een refresh, later misschien naar de net aangemaakte user?
            return redirect(url_for("admin"))

    return render_template("admin.html", NieuweGebruikerForm=form)
Beispiel #2
0
def gebruikerswachtwoordaanpassen(id):

    cur.execute(
        "SELECT idUser, forename, lastname, username, idWoning, rank FROM domotica_db.User WHERE idUser=%s", (int(id))
    )
    gebruiker = cur.fetchall()

    # Vraagt het eerder gemaakte 'wachtwoordaanpassen' form aan.
    form = wachtwoordaanpassen()

    cur.execute(
        "SELECT idUser, forename, lastname, username, idWoning, rank FROM domotica_db.User WHERE idUser=%s", (int(id))
    )
    gebruiker = cur.fetchall()

    # Zodra de post op de pagina langs de vallidators van WTForm zijn gegaan kan de rest plaatsvinden.
    if form.validate_on_submit():
        # Nodig voor de request die we hierna gaan maken.
        forminfo = wachtwoordaanpassen(request.form)

        # Alle velden worden binnengehaald en aan een variabele gekoppelt.
        wachtwoord = forminfo.password.data

        # Het wachtwoord wordt met een random salt gehashed en beide worden in één variabele gestopt.
        versleutelde_password = hash.encrypt(escape(wachtwoord))

        cur.execute("UPDATE User SET password=%s WHERE idUser=%s", (versleutelde_password, int(id)))
        g.db_conn.commit()

        return redirect(url_for("admin"))

    return render_template("gebruiker_wachtwoord_aanpassen.html", gebruiker=gebruiker, form=form)
Beispiel #3
0
	def escape(self, string):
		"""
		Escapes a string for use in a query
		
		This is the equivilate and MySQLdb.escape()
		
		@author: Nick Verbeck
		@since: 9/7/2008
		"""
		return pymysql.escape(string)
Beispiel #4
0
    def escape(self, string):
        """
		Escapes a string for use in a query
		
		This is the equivilate and MySQLdb.escape()
		
		@author: Nick Verbeck
		@since: 9/7/2008
		"""
        return pymysql.escape(string)
Beispiel #5
0
def login():
    # Vraagt het eerder gemaakte 'NieuweGebruikerForm' form aan.
    form = LoginForm()

    # Zodra de post op de pagina langs de vallidators van WTForm zijn gegaan kan de rest plaatsvinden.
    if form.validate_on_submit():
        # Nodig voor de request die we hierna gaan maken.
        inloggen = LoginForm(request.form)

        # Alle velden worden binnengehaald en aan een variabele gekoppelt.
        username = inloggen.gebruikersnaam.data
        password = inloggen.password.data

        # Haal username en wachtwoord op uit de database.
        cur.execute(
            "SELECT username, password, rank, forename, lastname, idUser, idWoning FROM User WHERE username =%s",
            (escape(username)),
        )
        login_info = cur.fetchall()

        # Bestaat deze username wel? Anders een error...:
        if not login_info == ():

            # Wachtwoord vergelijken met hash:
            if hash.verify(password, login_info[0][1]):
                session["ingelogd"] = True
                session["login"] = login_info
                if int(login_info[0][2]) == 3:
                    return redirect(url_for("admin"))
                elif int(login_info[0][2]) == 2:
                    return redirect(url_for("meldkamer"))
                else:
                    return redirect(url_for("bewoner"))

            else:
                form.password.errors.append("")

        else:
            form.gebruikersnaam.errors.append("")

    return render_template("login.html", LoginForm=form)