diff options
Diffstat (limited to 'teleterm/src/web.rs')
-rw-r--r-- | teleterm/src/web.rs | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/teleterm/src/web.rs b/teleterm/src/web.rs index 992b79d..07ece12 100644 --- a/teleterm/src/web.rs +++ b/teleterm/src/web.rs @@ -1,4 +1,6 @@ +mod disk_session; mod list; +mod login; mod view; mod watch; mod ws; @@ -15,6 +17,11 @@ struct Config { public_address: String, } +#[derive(Default, serde::Deserialize, serde::Serialize)] +struct SessionData { + username: Option<String>, +} + pub struct Server { server: Box<dyn futures::Future<Item = (), Error = ()> + Send>, } @@ -54,6 +61,14 @@ fn router(data: &Config) -> impl gotham::handler::NewHandler { .add(gotham::middleware::state::StateMiddleware::new( data.clone(), )) + .add( + gotham::middleware::session::NewSessionMiddleware::new( + disk_session::DiskSession, + ) + .insecure() + .with_cookie_name("teleterm") + .with_session_type::<SessionData>(), + ) .build(), ); gotham::router::builder::build_router(chain, pipeline, |route| { @@ -75,6 +90,10 @@ fn router(data: &Config) -> impl gotham::handler::NewHandler { .get("/watch") .with_query_string_extractor::<watch::QueryParams>() .to(watch::run); + route + .get("/login") + .with_query_string_extractor::<login::QueryParams>() + .to(login::run); }) } |