diff options
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); |