diff options
| author | Tolmachev Igor <me@igorek.dev> | 2025-09-25 14:04:17 +0300 |
|---|---|---|
| committer | Tolmachev Igor <me@igorek.dev> | 2025-09-25 14:04:17 +0300 |
| commit | 7ae7a69c7887937f81401d43cdc34029776fbe2c (patch) | |
| tree | 8f74bcc2912e99ed3ce8a6d1f6b3e370c5377325 /src/routers | |
| parent | 493fe44b23d3f4c3f271278b5137f4968cba036c (diff) | |
| download | queue_server-7ae7a69c7887937f81401d43cdc34029776fbe2c.tar.gz queue_server-7ae7a69c7887937f81401d43cdc34029776fbe2c.zip | |
Improve permission error
Diffstat (limited to 'src/routers')
| -rw-r--r-- | src/routers/queue.rs | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/routers/queue.rs b/src/routers/queue.rs index df846fb..021fbe5 100644 --- a/src/routers/queue.rs +++ b/src/routers/queue.rs | |||
| @@ -24,11 +24,16 @@ async fn get_owned_queue( | |||
| 24 | owner_id: i64, | 24 | owner_id: i64, |
| 25 | db: &DatabaseConnection, | 25 | db: &DatabaseConnection, |
| 26 | ) -> Result<queues::Model, ApiError> { | 26 | ) -> Result<queues::Model, ApiError> { |
| 27 | Ok(queues::Entity::find_by_id(id) | 27 | let queue = queues::Entity::find_by_id(id) |
| 28 | .filter(queues::Column::OwnerId.eq(owner_id)) | ||
| 29 | .one(db) | 28 | .one(db) |
| 30 | .await? | 29 | .await? |
| 31 | .ok_or(ClientError::QueueNotFound { id })?) | 30 | .ok_or(ClientError::QueueNotFound { id })?; |
| 31 | |||
| 32 | if queue.owner_id != owner_id { | ||
| 33 | return Err(ClientError::NotQueueOwner { id: queue.id }.into()); | ||
| 34 | } | ||
| 35 | |||
| 36 | Ok(queue) | ||
| 32 | } | 37 | } |
| 33 | 38 | ||
| 34 | #[derive(Deserialize, ToSchema)] | 39 | #[derive(Deserialize, ToSchema)] |
