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}