diff options
author | Jesse Luehrs <doy@tozt.net> | 2019-11-23 16:10:04 -0500 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2019-11-23 16:10:04 -0500 |
commit | b28008bc97a7fbc9d4e7b6eac2c06d8e91e1fb16 (patch) | |
tree | d4adb7e59dd66e6a1f4a68e37fc2b12debbcc4b9 /teleterm/src/web/watch.rs | |
parent | aa346f8caf62c34ba6f45a4c99056a78b15d6651 (diff) | |
download | teleterm-b28008bc97a7fbc9d4e7b6eac2c06d8e91e1fb16.tar.gz teleterm-b28008bc97a7fbc9d4e7b6eac2c06d8e91e1fb16.zip |
start working on the login flow
Diffstat (limited to 'teleterm/src/web/watch.rs')
-rw-r--r-- | teleterm/src/web/watch.rs | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/teleterm/src/web/watch.rs b/teleterm/src/web/watch.rs index 720e9f8..74a59dd 100644 --- a/teleterm/src/web/watch.rs +++ b/teleterm/src/web/watch.rs @@ -15,6 +15,19 @@ pub struct QueryParams { pub fn run( mut state: gotham::state::State, ) -> (gotham::state::State, hyper::Response<hyper::Body>) { + let session = gotham::middleware::session::SessionData::< + crate::web::SessionData, + >::borrow_from(&state); + if session.username.is_none() { + return ( + state, + hyper::Response::builder() + .status(hyper::StatusCode::FORBIDDEN) + .body(hyper::Body::empty()) + .unwrap(), + ); + } + let body = hyper::Body::take_from(&mut state); let headers = hyper::HeaderMap::take_from(&mut state); let config = crate::web::Config::borrow_from(&state); |