fc-server: restore dashboard routes; add extract_session middleware
Signed-off-by: NotAShelf <raf@notashelf.dev> Change-Id: I91b71875b936ba2a1efbede1cb1ed4886a6a6964
This commit is contained in:
parent
ea94adb6d1
commit
4d8564f56b
2 changed files with 8 additions and 23 deletions
|
|
@ -1207,8 +1207,7 @@ async fn logout_action(
|
||||||
.into_response()
|
.into_response()
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn router(state: AppState) -> Router<AppState> {
|
pub fn router() -> Router<AppState> {
|
||||||
let _ = state; // used by middleware layer in mod.rs
|
|
||||||
Router::new()
|
Router::new()
|
||||||
.route("/login", get(login_page).post(login_action))
|
.route("/login", get(login_page).post(login_action))
|
||||||
.route("/logout", axum::routing::post(logout_action))
|
.route("/logout", axum::routing::post(logout_action))
|
||||||
|
|
|
||||||
|
|
@ -126,8 +126,13 @@ pub fn router(state: AppState, config: &ServerConfig) -> Router {
|
||||||
let mut app = Router::new()
|
let mut app = Router::new()
|
||||||
// Static assets
|
// Static assets
|
||||||
.route("/static/style.css", get(serve_style_css))
|
.route("/static/style.css", get(serve_style_css))
|
||||||
// Dashboard routes with session extraction middleware
|
// Dashboard routes (SSR templates) with session extraction
|
||||||
.nest(
|
.merge(dashboard::router().route_layer(middleware::from_fn_with_state(
|
||||||
|
state.clone(),
|
||||||
|
extract_session,
|
||||||
|
)))
|
||||||
|
// API routes
|
||||||
|
.nest(
|
||||||
"/api/v1",
|
"/api/v1",
|
||||||
Router::new()
|
Router::new()
|
||||||
.merge(projects::router())
|
.merge(projects::router())
|
||||||
|
|
@ -151,25 +156,6 @@ pub fn router(state: AppState, config: &ServerConfig) -> Router {
|
||||||
.merge(metrics::router())
|
.merge(metrics::router())
|
||||||
// Webhooks use their own HMAC auth, outside the API key gate
|
// Webhooks use their own HMAC auth, outside the API key gate
|
||||||
.merge(webhooks::router())
|
.merge(webhooks::router())
|
||||||
// API routes with Bearer token auth
|
|
||||||
.nest(
|
|
||||||
"/api/v1",
|
|
||||||
Router::new()
|
|
||||||
.merge(projects::router())
|
|
||||||
.merge(jobsets::router())
|
|
||||||
.merge(evaluations::router())
|
|
||||||
.merge(builds::router())
|
|
||||||
.merge(logs::router())
|
|
||||||
.merge(auth::router())
|
|
||||||
.merge(search::router())
|
|
||||||
.merge(badges::router())
|
|
||||||
.merge(channels::router())
|
|
||||||
.merge(admin::router())
|
|
||||||
.route_layer(middleware::from_fn_with_state(
|
|
||||||
state.clone(),
|
|
||||||
require_api_key,
|
|
||||||
)),
|
|
||||||
)
|
|
||||||
.layer(TraceLayer::new_for_http())
|
.layer(TraceLayer::new_for_http())
|
||||||
.layer(cors_layer)
|
.layer(cors_layer)
|
||||||
.layer(RequestBodyLimitLayer::new(config.max_body_size))
|
.layer(RequestBodyLimitLayer::new(config.max_body_size))
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue