Fix file download authentication with public router #55
@@ -279,8 +279,10 @@ app.include_router(
|
|||||||
gitea.router, prefix="/api/gitea", dependencies=[Depends(_inject_user), Depends(require_page("gitea"))]
|
gitea.router, prefix="/api/gitea", dependencies=[Depends(_inject_user), Depends(require_page("gitea"))]
|
||||||
)
|
)
|
||||||
app.include_router(
|
app.include_router(
|
||||||
files.router, prefix="/api/files"
|
files.router, prefix="/api/files", dependencies=[Depends(_inject_user)]
|
||||||
)
|
)
|
||||||
|
# Public file download endpoint (no auth required for token-based downloads)
|
||||||
|
app.include_router(files.public_router, prefix="/api/files")
|
||||||
app.include_router(
|
app.include_router(
|
||||||
system.router, prefix="/api/system", dependencies=[Depends(_inject_user), Depends(require_page("dashboard"))]
|
system.router, prefix="/api/system", dependencies=[Depends(_inject_user), Depends(require_page("dashboard"))]
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ from config import VOLUME_ROOT
|
|||||||
from rbac import require_admin
|
from rbac import require_admin
|
||||||
|
|
||||||
router = APIRouter()
|
router = APIRouter()
|
||||||
|
public_router = APIRouter() # For endpoints that don't require auth
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
BASE = Path(VOLUME_ROOT)
|
BASE = Path(VOLUME_ROOT)
|
||||||
|
|
||||||
@@ -117,7 +118,7 @@ def create_download_token(path: str):
|
|||||||
raise HTTPException(status_code=403, detail="Access denied")
|
raise HTTPException(status_code=403, detail="Access denied")
|
||||||
|
|
||||||
|
|
||||||
@router.get("/download")
|
@public_router.get("/download")
|
||||||
def download(path: str = None, token: str = Query(None)):
|
def download(path: str = None, token: str = Query(None)):
|
||||||
"""Download a file. Supports both authenticated access (path param) and token-based access (token param)."""
|
"""Download a file. Supports both authenticated access (path param) and token-based access (token param)."""
|
||||||
try:
|
try:
|
||||||
|
|||||||
Reference in New Issue
Block a user