diff options
author | Jesse Luehrs <doy@tozt.net> | 2019-11-26 01:43:12 -0500 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2019-11-26 01:43:12 -0500 |
commit | cc5a3f9056fe1b563dbb40d51b1621769150c08d (patch) | |
tree | 127bb50ebb622783e4529764b6a2735cef1eb8c1 /teleterm/src | |
parent | 81fc5c6a2c6df38025961945cb496ccc4d432036 (diff) | |
download | teleterm-cc5a3f9056fe1b563dbb40d51b1621769150c08d.tar.gz teleterm-cc5a3f9056fe1b563dbb40d51b1621769150c08d.zip |
add a logout button
Diffstat (limited to 'teleterm/src')
-rw-r--r-- | teleterm/src/web.rs | 2 | ||||
-rw-r--r-- | teleterm/src/web/logout.rs | 13 |
2 files changed, 15 insertions, 0 deletions
diff --git a/teleterm/src/web.rs b/teleterm/src/web.rs index d3a79d4..ed887a5 100644 --- a/teleterm/src/web.rs +++ b/teleterm/src/web.rs @@ -1,6 +1,7 @@ mod disk_session; mod list; mod login; +mod logout; mod view; mod watch; mod ws; @@ -119,6 +120,7 @@ fn router(data: &Config) -> impl gotham::handler::NewHandler { .get("/login") .with_query_string_extractor::<login::QueryParams>() .to(login::run); + route.get("/logout").to(logout::run); }) } diff --git a/teleterm/src/web/logout.rs b/teleterm/src/web/logout.rs new file mode 100644 index 0000000..1b3fc15 --- /dev/null +++ b/teleterm/src/web/logout.rs @@ -0,0 +1,13 @@ +use gotham::state::FromState as _; + +pub fn run( + mut state: gotham::state::State, +) -> (gotham::state::State, hyper::Response<hyper::Body>) { + let session = gotham::middleware::session::SessionData::< + crate::web::SessionData, + >::take_from(&mut state); + + session.discard(&mut state).unwrap(); + + (state, hyper::Response::new(hyper::Body::empty())) +} |