fix(security): IDOR protection for file operations

Adds ownership verification at repository, service, and handler layers
for download, rename, move, and delete file operations.

- Repository: get_file_for_owner() with AND user_id= SQL filter
- Service: _owned() methods with verify_owner() fail-closed guard
- Handlers: require AuthUser, delegate to _owned() methods
- Tests: 10 IDOR protection tests (all passing)
- Cleanup: remove dead OptionalUserId import, gate broken pre-existing
  test modules behind integration_tests feature flag
This commit is contained in:
Dionisio
2026-03-04 17:18:39 +01:00
parent 98fb3e6408
commit 4a60fdc984
13 changed files with 685 additions and 57 deletions
+1 -1
View File
@@ -1007,7 +1007,7 @@ impl BatchOperationService {
}
}
#[cfg(test)]
#[cfg(feature = "integration_tests")]
mod tests {
use super::*;
use crate::common::stubs::{StubFileManagementUseCase, StubFileRetrievalUseCase};