Skip to content

Commit 0fe2ca6

Browse files
status code in response
1 parent 19967fd commit 0fe2ca6

File tree

2 files changed

+14
-35
lines changed

2 files changed

+14
-35
lines changed

src/handlers/http/modal/ingest/ingestor_rbac.rs

Lines changed: 13 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@
1818

1919
use std::collections::HashSet;
2020

21-
use actix_web::{HttpResponse, Responder, web};
21+
use actix_web::{HttpResponse, web};
22+
use http::StatusCode;
2223

2324
use crate::{
2425
handlers::http::{
@@ -27,7 +28,7 @@ use crate::{
2728
},
2829
rbac::{
2930
Users,
30-
map::{roles, users},
31+
map::roles,
3132
user::{self, User as ParseableUser},
3233
},
3334
storage,
@@ -38,10 +39,9 @@ use crate::{
3839
pub async fn post_user(
3940
username: web::Path<String>,
4041
body: Option<web::Json<serde_json::Value>>,
41-
) -> Result<impl Responder, RBACError> {
42+
) -> Result<HttpResponse, RBACError> {
4243
let username = username.into_inner();
4344

44-
let generated_password = String::default();
4545
let metadata = get_metadata().await?;
4646
if let Some(body) = body {
4747
let user: ParseableUser = serde_json::from_value(body.into_inner())?;
@@ -51,25 +51,18 @@ pub async fn post_user(
5151
Users.add_roles(&username, created_role.clone());
5252
}
5353

54-
Ok(HttpResponse::Ok().json(generated_password))
54+
Ok(HttpResponse::Ok().status(StatusCode::OK).finish())
5555
}
5656

5757
// Handler for DELETE /api/v1/user/delete/{userid}
58-
pub async fn delete_user(userid: web::Path<String>) -> Result<impl Responder, RBACError> {
58+
pub async fn delete_user(userid: web::Path<String>) -> Result<HttpResponse, RBACError> {
5959
let userid = userid.into_inner();
6060
let _guard = UPDATE_LOCK.lock().await;
6161
// fail this request if the user does not exists
6262
if !Users.contains(&userid) {
6363
return Err(RBACError::UserDoesNotExist);
6464
};
6565

66-
// find username by userid, for native users, username is userid, for oauth users, we need to look up
67-
let username = if let Some(user) = users().get(&userid) {
68-
user.username_by_userid()
69-
} else {
70-
return Err(RBACError::UserDoesNotExist);
71-
};
72-
7366
// delete from parseable.json first
7467
let mut metadata = get_metadata().await?;
7568
metadata.users.retain(|user| user.userid() != userid);
@@ -78,28 +71,21 @@ pub async fn delete_user(userid: web::Path<String>) -> Result<impl Responder, RB
7871

7972
// update in mem table
8073
Users.delete_user(&userid);
81-
Ok(HttpResponse::Ok().json(format!("deleted user: {username}")))
74+
Ok(HttpResponse::Ok().status(StatusCode::OK).finish())
8275
}
8376

8477
// Handler PATCH /user/{userid}/role/sync/add => Add roles to a user
8578
pub async fn add_roles_to_user(
8679
userid: web::Path<String>,
8780
roles_to_add: web::Json<HashSet<String>>,
88-
) -> Result<String, RBACError> {
81+
) -> Result<HttpResponse, RBACError> {
8982
let userid = userid.into_inner();
9083
let roles_to_add = roles_to_add.into_inner();
9184

9285
if !Users.contains(&userid) {
9386
return Err(RBACError::UserDoesNotExist);
9487
};
9588

96-
// find username by userid, for native users, username is userid, for oauth users, we need to look up
97-
let username = if let Some(user) = users().get(&userid) {
98-
user.username_by_userid()
99-
} else {
100-
return Err(RBACError::UserDoesNotExist);
101-
};
102-
10389
// check if all roles exist
10490
let mut non_existent_roles = Vec::new();
10591
roles_to_add.iter().for_each(|r| {
@@ -128,28 +114,21 @@ pub async fn add_roles_to_user(
128114
let _ = storage::put_staging_metadata(&metadata);
129115
// update in mem table
130116
Users.add_roles(&userid.clone(), roles_to_add.clone());
131-
Ok(format!("Roles updated successfully for {username}"))
117+
Ok(HttpResponse::Ok().status(StatusCode::OK).finish())
132118
}
133119

134120
// Handler PATCH /user/{userid}/role/sync/add => Add roles to a user
135121
pub async fn remove_roles_from_user(
136122
userid: web::Path<String>,
137123
roles_to_remove: web::Json<HashSet<String>>,
138-
) -> Result<String, RBACError> {
124+
) -> Result<HttpResponse, RBACError> {
139125
let userid = userid.into_inner();
140126
let roles_to_remove = roles_to_remove.into_inner();
141127

142128
if !Users.contains(&userid) {
143129
return Err(RBACError::UserDoesNotExist);
144130
};
145131

146-
// find username by userid, for native users, username is userid, for oauth users, we need to look up
147-
let username = if let Some(user) = users().get(&userid) {
148-
user.username_by_userid()
149-
} else {
150-
return Err(RBACError::UserDoesNotExist);
151-
};
152-
153132
// check if all roles exist
154133
let mut non_existent_roles = Vec::new();
155134
roles_to_remove.iter().for_each(|r| {
@@ -192,12 +171,12 @@ pub async fn remove_roles_from_user(
192171
// update in mem table
193172
Users.remove_roles(&userid.clone(), roles_to_remove.clone());
194173

195-
Ok(format!("Roles updated successfully for {username}"))
174+
Ok(HttpResponse::Ok().status(StatusCode::OK).finish())
196175
}
197176

198177
// Handler for POST /api/v1/user/{username}/generate-new-password
199178
// Resets password for the user to a newly generated one and returns it
200-
pub async fn post_gen_password(username: web::Path<String>) -> Result<impl Responder, RBACError> {
179+
pub async fn post_gen_password(username: web::Path<String>) -> Result<HttpResponse, RBACError> {
201180
let username = username.into_inner();
202181
let mut new_hash = String::default();
203182
let mut metadata = get_metadata().await?;
@@ -217,5 +196,5 @@ pub async fn post_gen_password(username: web::Path<String>) -> Result<impl Respo
217196
return Err(RBACError::UserDoesNotExist);
218197
}
219198
Users.change_password_hash(&username, &new_hash);
220-
Ok(HttpResponse::Ok().json("Updated"))
199+
Ok(HttpResponse::Ok().status(StatusCode::OK).finish())
221200
}

src/handlers/http/modal/ingest_server.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ impl IngestServer {
184184
web::scope("/user")
185185
.service(
186186
web::resource("/{username}/sync")
187-
// PUT /user/{username}/sync => Sync creation of a new user
187+
// POST /user/{username}/sync => Sync creation of a new user
188188
.route(
189189
web::post()
190190
.to(ingestor_rbac::post_user)

0 commit comments

Comments
 (0)