summaryrefslogtreecommitdiffstats
path: root/src/web.vala
diff options
context:
space:
mode:
authorSebastian Reichel <sre@ring0.de>2012-10-05 20:14:53 +0200
committerSebastian Reichel <sre@ring0.de>2012-10-05 20:14:53 +0200
commit133f6d01ce9dcbc01ccbef0bc58cecc9ca713cfe (patch)
treef6ff702d7a4250c9ba5043a1788c1454f27086f2 /src/web.vala
parenta206d0e663cb21814fce05d21a864fa348e79d0f (diff)
downloadserial-barcode-scanner-133f6d01ce9dcbc01ccbef0bc58cecc9ca713cfe.tar.bz2
implement user list
Diffstat (limited to 'src/web.vala')
-rw-r--r--src/web.vala30
1 files changed, 29 insertions, 1 deletions
diff --git a/src/web.vala b/src/web.vala
index 1b68ee4..8c87eed 100644
--- a/src/web.vala
+++ b/src/web.vala
@@ -47,7 +47,7 @@ public class WebServer {
string[] pathparts = path.split("/");
if(pathparts.length <= 2) {
- handler_todo(server, msg, path, query, client);
+ handler_user_list(server, msg, path, query, client);
} else {
int id = int.parse(pathparts[2]);
@@ -72,6 +72,34 @@ public class WebServer {
}
}
+ void handler_user_list(Soup.Server server, Soup.Message msg, string path, GLib.HashTable<string,string>? query, Soup.ClientContext client) {
+ try {
+ var session = new WebSession(server, msg, path, query, client);
+ if(!session.superuser) {
+ handler_403(server, msg, path, query, client);
+ return;
+ }
+
+ var t = new WebTemplate("users/index.html", session);
+ t.replace("TITLE", "KtT Shop System: User");
+ t.menu_set_active("users");
+ var data = "";
+ foreach(var m in db.get_member_ids()) {
+ try {
+ var name = db.get_username(m);
+ data += @"<tr><td>$m</td><td><a href=\"/users/$m\">$name</a></td></tr>";
+ } catch(WebSessionError e) {
+ }
+ }
+ t.replace("DATA", data);
+
+ msg.set_response("text/html", Soup.MemoryUse.COPY, t.data);
+ } catch(TemplateError e) {
+ stderr.printf(e.message+"\n");
+ handler_404(server, msg, path, query, client);
+ }
+ }
+
void handler_user_import(Soup.Server server, Soup.Message msg, string path, GLib.HashTable<string,string>? query, Soup.ClientContext client) {
try {
var session = new WebSession(server, msg, path, query, client);