diff options
author | Sebastian Reichel <sre@ring0.de> | 2012-10-05 20:14:53 +0200 |
---|---|---|
committer | Sebastian Reichel <sre@ring0.de> | 2012-10-05 20:14:53 +0200 |
commit | 133f6d01ce9dcbc01ccbef0bc58cecc9ca713cfe (patch) | |
tree | f6ff702d7a4250c9ba5043a1788c1454f27086f2 | |
parent | a206d0e663cb21814fce05d21a864fa348e79d0f (diff) | |
download | serial-barcode-scanner-133f6d01ce9dcbc01ccbef0bc58cecc9ca713cfe.tar.bz2 |
implement user list
-rw-r--r-- | src/web.vala | 30 | ||||
-rw-r--r-- | templates/users/index.html | 8 |
2 files changed, 37 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); diff --git a/templates/users/index.html b/templates/users/index.html new file mode 100644 index 0000000..246e523 --- /dev/null +++ b/templates/users/index.html @@ -0,0 +1,8 @@ +<table class="sortable table table-bordered table-striped table-condensed"> + <thead> + <tr><th>ID</th></th><th>Name</th></tr> + </thead> + <tbody> + {{{DATA}}} + </tbody> +</table> |