Fix Transmission RPC and file browser permissions #43
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user