aboutsummaryrefslogtreecommitdiffstats
path: root/teleterm/src
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2019-11-26 01:43:12 -0500
committerJesse Luehrs <doy@tozt.net>2019-11-26 01:43:12 -0500
commitcc5a3f9056fe1b563dbb40d51b1621769150c08d (patch)
tree127bb50ebb622783e4529764b6a2735cef1eb8c1 /teleterm/src
parent81fc5c6a2c6df38025961945cb496ccc4d432036 (diff)
downloadteleterm-cc5a3f9056fe1b563dbb40d51b1621769150c08d.tar.gz
teleterm-cc5a3f9056fe1b563dbb40d51b1621769150c08d.zip
add a logout button
Diffstat (limited to 'teleterm/src')
-rw-r--r--teleterm/src/web.rs2
-rw-r--r--teleterm/src/web/logout.rs13
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()))
+}