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()
26        .route("/group/{group_uuid}", post(groups::edit_group))
27        .route("/group/{group_uuid}/add_member", post(groups::add_member))
28        .route(
29            "/group/{group_uuid}/remove_member",
30            post(groups::remove_member),
31        );
32
33    let guarded_router = Router::new().layer(HxRequestGuardLayer::new("/ui"));
34
35    Router::new().merge(unguarded_router).merge(guarded_router)
36}