From 6b69561a171568b36710e0e28aea9f0bd59a295c Mon Sep 17 00:00:00 2001 From: Sebastian Reichel Date: Fri, 5 Oct 2012 20:52:04 +0200 Subject: add password change option (Closes GH-15) --- src/web.vala | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) (limited to 'src/web.vala') diff --git a/src/web.vala b/src/web.vala index 8c87eed..2e2e13f 100644 --- a/src/web.vala +++ b/src/web.vala @@ -200,12 +200,12 @@ public class WebServer { void handler_user_entry(Soup.Server server, Soup.Message msg, string path, GLib.HashTable? query, Soup.ClientContext client, int id) { try { - var l = new WebSession(server, msg, path, query, client); - if(id != l.user && !l.superuser) { + var session = new WebSession(server, msg, path, query, client); + if(id != session.user && !session.superuser) { handler_403(server, msg, path, query, client); return; } - var t = new WebTemplate("users/entry.html", l); + var t = new WebTemplate("users/entry.html", session); t.replace("TITLE", "KtT Shop System: User Info %llu".printf(id)); t.menu_set_active("users"); @@ -224,6 +224,20 @@ public class WebServer { t.replace("DISABLED", userauth.disabled ? "true" : "false"); t.replace("ISSUPERUSER", userauth.superuser ? "true" : "false"); + var postdata = Soup.Form.decode_multipart(msg, null, null, null, null); + if(postdata != null && postdata.contains("password1") && postdata.contains("password2")) { + if(postdata["password1"] != postdata["password2"]) { + t.replace("MESSAGE", "
Error! Passwords do not match!
"); + } else if(postdata["password1"] == "") { + t.replace("MESSAGE", "
Error! Empty Password not allowed!
"); + } else { + db.set_user_password(session.user, postdata["password1"]); + t.replace("MESSAGE", "
Password Changed!
"); + } + } else { + t.replace("MESSAGE", ""); + } + msg.set_response("text/html", Soup.MemoryUse.COPY, t.data); } catch(TemplateError e) { stderr.printf(e.message+"\n"); -- cgit v1.2.3