kanidmd_core/https/views/admin/
mod.rs

1use crate::https::ServerState;
2use axum::routing::{get, post};
3use axum::Router;
4use axum_htmx::HxRequestGuardLayer;
5
6pub(crate) mod groups;
7pub(crate) mod persons;
8
9pub fn admin_router() -> Router<ServerState> {
10    let unguarded_router = Router::new()
11        .route("/persons", get(persons::view_persons_get))
12        .route(
13            "/person/:person_uuid/view",
14            get(persons::view_person_view_get),
15        )
16        .route("/groups", get(groups::view_groups_get))
17        .route("/group/:group_uuid/view", get(groups::view_group_view_get));
18
19    let guarded_router = Router::new().layer(HxRequestGuardLayer::new("/ui"));
20
21    Router::new().merge(unguarded_router).merge(guarded_router)
22}
23
24pub fn admin_api_router() -> Router<ServerState> {
25    let unguarded_router = Router::new().route("/edit_group", post(groups::edit_group));
26
27    let guarded_router = Router::new().layer(HxRequestGuardLayer::new("/ui"));
28
29    Router::new().merge(unguarded_router).merge(guarded_router)
30}