diff --git a/crates/handlers/src/admin/model.rs b/crates/handlers/src/admin/model.rs index 5f13db2fa..e481f2add 100644 --- a/crates/handlers/src/admin/model.rs +++ b/crates/handlers/src/admin/model.rs @@ -54,7 +54,7 @@ pub struct User { locked_at: Option>, /// Whether the user can request admin privileges. - can_request_admin: bool, + admin: bool, } impl User { @@ -66,21 +66,21 @@ impl User { username: "alice".to_owned(), created_at: DateTime::default(), locked_at: None, - can_request_admin: false, + admin: false, }, Self { id: Ulid::from_bytes([0x02; 16]), username: "bob".to_owned(), created_at: DateTime::default(), locked_at: None, - can_request_admin: true, + admin: true, }, Self { id: Ulid::from_bytes([0x03; 16]), username: "charlie".to_owned(), created_at: DateTime::default(), locked_at: Some(DateTime::default()), - can_request_admin: false, + admin: false, }, ] } @@ -93,7 +93,7 @@ impl From for User { username: user.username, created_at: user.created_at, locked_at: user.locked_at, - can_request_admin: user.can_request_admin, + admin: user.can_request_admin, } } } diff --git a/crates/handlers/src/admin/v1/users/list.rs b/crates/handlers/src/admin/v1/users/list.rs index 4c3fbb534..d5f7dda63 100644 --- a/crates/handlers/src/admin/v1/users/list.rs +++ b/crates/handlers/src/admin/v1/users/list.rs @@ -55,9 +55,9 @@ impl std::fmt::Display for UserStatus { #[aide(input_with = "Query")] #[from_request(via(Query), rejection(RouteError))] pub struct FilterParams { - /// Retrieve users with (or without) the `can_request_admin` flag set - #[serde(rename = "filter[can_request_admin]")] - can_request_admin: Option, + /// Retrieve users with (or without) the `admin` flag set + #[serde(rename = "filter[admin]")] + admin: Option, /// Retrieve the items with the given status /// @@ -74,8 +74,8 @@ impl std::fmt::Display for FilterParams { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { let mut sep = '?'; - if let Some(can_request_admin) = self.can_request_admin { - write!(f, "{sep}filter[can_request_admin]={can_request_admin}")?; + if let Some(admin) = self.admin { + write!(f, "{sep}filter[admin]={admin}")?; sep = '&'; } if let Some(status) = self.status { @@ -139,7 +139,7 @@ pub async fn handler( let base = format!("{path}{params}", path = User::PATH); let filter = UserFilter::default(); - let filter = match params.can_request_admin { + let filter = match params.admin { Some(true) => filter.can_request_admin_only(), Some(false) => filter.cannot_request_admin_only(), None => filter, diff --git a/crates/handlers/src/admin/v1/users/set_admin.rs b/crates/handlers/src/admin/v1/users/set_admin.rs index 1865a2d08..d75731e81 100644 --- a/crates/handlers/src/admin/v1/users/set_admin.rs +++ b/crates/handlers/src/admin/v1/users/set_admin.rs @@ -57,7 +57,7 @@ impl IntoResponse for RouteError { #[serde(rename = "UserSetAdminRequest")] pub struct Request { /// Whether the user can request admin privileges. - can_request_admin: bool, + admin: bool, } pub fn doc(operation: TransformOperation) -> TransformOperation { @@ -94,7 +94,7 @@ pub async fn handler( let user = repo .user() - .set_can_request_admin(user, params.can_request_admin) + .set_can_request_admin(user, params.admin) .await?; repo.save().await?; @@ -130,14 +130,14 @@ mod tests { let request = Request::post(format!("/api/admin/v1/users/{}/set-admin", user.id)) .bearer(&token) .json(serde_json::json!({ - "can_request_admin": true, + "admin": true, })); let response = state.request(request).await; response.assert_status(StatusCode::OK); let body: serde_json::Value = response.json(); - assert_eq!(body["data"]["attributes"]["can_request_admin"], true); + assert_eq!(body["data"]["attributes"]["admin"], true); // Look at the state from the repository let mut repo = state.repository().await.unwrap(); @@ -149,14 +149,14 @@ mod tests { let request = Request::post(format!("/api/admin/v1/users/{}/set-admin", user.id)) .bearer(&token) .json(serde_json::json!({ - "can_request_admin": false, + "admin": false, })); let response = state.request(request).await; response.assert_status(StatusCode::OK); let body: serde_json::Value = response.json(); - assert_eq!(body["data"]["attributes"]["can_request_admin"], false); + assert_eq!(body["data"]["attributes"]["admin"], false); // Look at the state from the repository let mut repo = state.repository().await.unwrap(); diff --git a/docs/api/spec.json b/docs/api/spec.json index 9d17986fc..e2dc48831 100644 --- a/docs/api/spec.json +++ b/docs/api/spec.json @@ -378,10 +378,10 @@ }, { "in": "query", - "name": "filter[can_request_admin]", - "description": "Retrieve users with (or without) the `can_request_admin` flag set", + "name": "filter[admin]", + "description": "Retrieve users with (or without) the `admin` flag set", "schema": { - "description": "Retrieve users with (or without) the `can_request_admin` flag set", + "description": "Retrieve users with (or without) the `admin` flag set", "type": "boolean", "nullable": true }, @@ -419,7 +419,7 @@ "username": "alice", "created_at": "1970-01-01T00:00:00Z", "locked_at": null, - "can_request_admin": false + "admin": false }, "links": { "self": "/api/admin/v1/users/01040G2081040G2081040G2081" @@ -432,7 +432,7 @@ "username": "bob", "created_at": "1970-01-01T00:00:00Z", "locked_at": null, - "can_request_admin": true + "admin": true }, "links": { "self": "/api/admin/v1/users/02081040G2081040G2081040G2" @@ -445,7 +445,7 @@ "username": "charlie", "created_at": "1970-01-01T00:00:00Z", "locked_at": "1970-01-01T00:00:00Z", - "can_request_admin": false + "admin": false }, "links": { "self": "/api/admin/v1/users/030C1G60R30C1G60R30C1G60R3" @@ -496,7 +496,7 @@ "username": "alice", "created_at": "1970-01-01T00:00:00Z", "locked_at": null, - "can_request_admin": false + "admin": false }, "links": { "self": "/api/admin/v1/users/01040G2081040G2081040G2081" @@ -581,7 +581,7 @@ "username": "alice", "created_at": "1970-01-01T00:00:00Z", "locked_at": null, - "can_request_admin": false + "admin": false }, "links": { "self": "/api/admin/v1/users/01040G2081040G2081040G2081" @@ -744,7 +744,7 @@ "username": "alice", "created_at": "1970-01-01T00:00:00Z", "locked_at": null, - "can_request_admin": false + "admin": false }, "links": { "self": "/api/admin/v1/users/01040G2081040G2081040G2081" @@ -823,7 +823,7 @@ "username": "bob", "created_at": "1970-01-01T00:00:00Z", "locked_at": null, - "can_request_admin": true + "admin": true }, "links": { "self": "/api/admin/v1/users/02081040G2081040G2081040G2" @@ -892,7 +892,7 @@ "username": "charlie", "created_at": "1970-01-01T00:00:00Z", "locked_at": "1970-01-01T00:00:00Z", - "can_request_admin": false + "admin": false }, "links": { "self": "/api/admin/v1/users/030C1G60R30C1G60R30C1G60R3" @@ -961,7 +961,7 @@ "username": "charlie", "created_at": "1970-01-01T00:00:00Z", "locked_at": "1970-01-01T00:00:00Z", - "can_request_admin": false + "admin": false }, "links": { "self": "/api/admin/v1/users/030C1G60R30C1G60R30C1G60R3" @@ -1029,7 +1029,7 @@ "username": "alice", "created_at": "1970-01-01T00:00:00Z", "locked_at": null, - "can_request_admin": false + "admin": false }, "links": { "self": "/api/admin/v1/users/01040G2081040G2081040G2081" @@ -1397,8 +1397,8 @@ "UserFilter": { "type": "object", "properties": { - "filter[can_request_admin]": { - "description": "Retrieve users with (or without) the `can_request_admin` flag set", + "filter[admin]": { + "description": "Retrieve users with (or without) the `admin` flag set", "type": "boolean", "nullable": true }, @@ -1474,7 +1474,7 @@ "description": "A user", "type": "object", "required": [ - "can_request_admin", + "admin", "created_at", "username" ], @@ -1494,7 +1494,7 @@ "format": "date-time", "nullable": true }, - "can_request_admin": { + "admin": { "description": "Whether the user can request admin privileges.", "type": "boolean" } @@ -1571,10 +1571,10 @@ "title": "JSON payload for the `POST /api/admin/v1/users/:id/set-admin` endpoint", "type": "object", "required": [ - "can_request_admin" + "admin" ], "properties": { - "can_request_admin": { + "admin": { "description": "Whether the user can request admin privileges.", "type": "boolean" }