Fix Transmission RPC and file browser permissions #43

Merged
jimmy merged 4 commits from dev into main 2026-04-11 16:35:16 +08:00
Showing only changes of commit 67c4394c2d - Show all commits
+11 -1
View File
@@ -66,8 +66,18 @@ def browse(path: str = ""):
target = _safe_path(path) target = _safe_path(path)
except ValueError: except ValueError:
raise HTTPException(status_code=403, detail="Access denied") raise HTTPException(status_code=403, detail="Access denied")
# Check if we have permission to read the directory
try:
items = list(target.iterdir())
except PermissionError:
raise HTTPException(status_code=403, detail="Permission denied")
except OSError as e:
logger.error(f"Error reading directory {target}: {e}")
raise HTTPException(status_code=500, detail="Error reading directory")
entries = [] entries = []
for item in sorted(target.iterdir()): for item in sorted(items):
try: try:
if not _is_safe_symlink(item): if not _is_safe_symlink(item):
continue continue