X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/chopwood/blobdiff_plain/d674bfdad1f723556720ba839986ec13dfd250fb..1f8350d2e314e9497fd58c11a125f15b51e98238:/cmd-cgi.py diff --git a/cmd-cgi.py b/cmd-cgi.py index 57de66c..104dd6a 100644 --- a/cmd-cgi.py +++ b/cmd-cgi.py @@ -58,12 +58,14 @@ def operate(what, op, services, *args, **kw): @CGI.subcommand('list', ['cgi-query'], 'List available accounts') def cmd_list_cgi(): CGI.page('list.fhtml', + header = dict(pragma = 'no-cache', cache_control = 'no-cache'), title = 'Chopwood: accounts list', accts = CU.list_accounts(CU.USER), nonce = HA.NONCE) @CGI.subcommand( 'set', ['cgi'], 'Set password for a collection of services.', + methods = ['POST'], params = [SC.Arg('first'), SC.Arg('second')], rparam = SC.Arg('services')) def cmd_set_cgi(first, second, services = []): @@ -73,6 +75,7 @@ def cmd_set_cgi(first, second, services = []): @CGI.subcommand( 'reset', ['cgi'], 'Reset passwords for a collection of services.', + methods = ['POST'], rparam = SC.Arg('services')) def cmd_reset_cgi(services = []): operate('reset passwords', 'reset', services) @@ -80,10 +83,19 @@ def cmd_reset_cgi(services = []): @CGI.subcommand( 'clear', ['cgi'], 'Clear passwords for a collection of services.', + methods = ['POST'], rparam = SC.Arg('services')) def cmd_clear_cgi(services = []): operate('clear passwords', 'clear', services) +@CGI.subcommand( + 'logout', ['cgi'], + 'Log out of the web interface.', + methods = ['POST']) +def cmd_logout_cgi(): + CGI.redirect(CGI.action('login', why = 'LOGOUT'), + set_cookie = HA.bake_cookie('logged-out')) + @CGI.subcommand( 'fail', ['cgi-noauth'], 'Raise an exception, to test the error reporting machinery.',