diff --git a/app/database.py b/app/database.py
index 8a78147..27a58c4 100644
--- a/app/database.py
+++ b/app/database.py
@@ -160,7 +160,7 @@ def add_rfid_id(rfid_id, userid):
def update_user(u):
#query_db("UPDATE users SET (NAME, LONGNAME, EMAIL, RFID_ID, ISBLACK, ISBARON, ISSHOWN) VALUES (?, ?, ?, ?, ?, ?, ?) WHERE ID=?", (u.name, u.longname, u.email, u.rfid_id, u.isblack, u.isbaron, u.isshown, u.id))
- query_db("UPDATE users SET NAME=?, LONGNAME=?, EMAIL=?, ISBLACK=?, ISBARON=?, ISSHOWN=?, AUTOBLACK=?, ONLYRFID=? WHERE ID=?", (u.name, u.longname, u.email, u.isblack, u.isbaron, u.isshown, u.autoblack, u.onlyrfid ,u.id))
+ query_db("UPDATE users SET NAME=?, LONGNAME=?, EMAIL=?, PASSWORD=?, ISBLACK=?, ISBARON=?, ISSHOWN=?, AUTOBLACK=?, ONLYRFID=? WHERE ID=?", (u.name, u.longname, u.email, u.password, u.isblack, u.isbaron, u.isshown, u.autoblack, u.onlyrfid ,u.id))
set_rfid_to_userid(u.rfid_id, u.id)
get_db().commit()
diff --git a/app/templates/base.html b/app/templates/base.html
index 45ec444..fdaa640 100644
--- a/app/templates/base.html
+++ b/app/templates/base.html
@@ -29,6 +29,7 @@
{{ success }}
+ {% endif %} + +{% endblock %} diff --git a/app/views.py b/app/views.py index e329498..d4ea489 100644 --- a/app/views.py +++ b/app/views.py @@ -153,6 +153,9 @@ def manage_users_edit(name=None): else: u.onlyrfid = False + u2 = get_user_by_id(u.id) + u.password = u2.password + update_user(u) return redirect('/manage_users') @@ -345,6 +348,44 @@ def send_mass_mail(name=None): return render_template('billing_mass_mail.html', user=get_user_by_name(session.get('name'))) +@app.route('/selfmanagement', methods=['GET', 'POST']) +@requires_login +def selfmanagement(): + if request.method == 'POST': + u = get_user_by_name(session.get('name')) + if not bcrypt.checkpw(request.form['password_old'], u.password): + success = "Passwort falsch!" + else: + if ('password1' in request.form) & ('password2' in request.form): + if request.form['password1'] == request.form['password2']: + u.password = bcrypt.hashpw(request.form['password1'], bcrypt.gensalt()) + + u.rfid_id = request.form['rfid_id'] + + if 'onlyrfid' in request.form: + u.onlyrfid = True + else: + u.onlyrfid = False + update_user(u) + success = u'Einstellungen wurden übernommen!' + else: + success = u'Neue Passwörter stimmen nicht überein!' + else: + u.rfid_id = request.form['rfid_id'] + + if 'onlyrfid' in request.form: + u.onlyrfid = True + else: + u.onlyrfid = False + + update_user(u) + success = u'Einstellungen wurden übernommen!' + + return render_template('selfmanagement.html', success=success, user=get_user_by_name(session.get('name'))) + + if request.method == 'GET': + return render_template('selfmanagement.html', user=get_user_by_name(session.get('name'))) + #migrate the db to hashed passwords #@app.route('/hashdb') #@requires_baron