Skip to content

Commit c683b96

Browse files
committed
added GET /roles endpoint
1 parent 2d3f7da commit c683b96

File tree

3 files changed

+17
-0
lines changed

3 files changed

+17
-0
lines changed

src/handlers/http/modal/query_server.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ impl ParseableServer for QueryServer {
6767
.service(Server::get_llm_webscope())
6868
.service(Server::get_oauth_webscope(oidc_client))
6969
.service(Self::get_user_role_webscope())
70+
.service(Server::get_roles_webscope())
7071
.service(Server::get_counts_webscope())
7172
.service(Server::get_metrics_webscope())
7273
.service(Server::get_alerts_webscope())

src/handlers/http/modal/server.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ impl ParseableServer for Server {
8787
.service(Self::get_llm_webscope())
8888
.service(Self::get_oauth_webscope(oidc_client))
8989
.service(Self::get_user_role_webscope())
90+
.service(Self::get_roles_webscope())
9091
.service(Self::get_counts_webscope())
9192
.service(Self::get_alerts_webscope())
9293
.service(Self::get_metrics_webscope()),
@@ -480,6 +481,13 @@ impl Server {
480481
}
481482
}
482483

484+
// get list of roles
485+
pub fn get_roles_webscope() -> Scope {
486+
web::scope("/roles").service(
487+
web::resource("").route(web::get().to(role::list_roles).authorize(Action::ListRole)),
488+
)
489+
}
490+
483491
// get the role webscope
484492
pub fn get_user_role_webscope() -> Scope {
485493
web::scope("/role")

src/handlers/http/role.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,14 @@ pub async fn list() -> Result<impl Responder, RoleError> {
6565
Ok(web::Json(roles))
6666
}
6767

68+
// Handler for GET /api/v1/roles
69+
// Fetch all roles in the system
70+
pub async fn list_roles() -> Result<impl Responder, RoleError> {
71+
let metadata = get_metadata().await?;
72+
let roles = metadata.roles.clone();
73+
Ok(web::Json(roles))
74+
}
75+
6876
// Handler for DELETE /api/v1/role/{username}
6977
// Delete existing role
7078
pub async fn delete(name: web::Path<String>) -> Result<impl Responder, RoleError> {

0 commit comments

Comments
 (0)