Add mock options in frontend and removed from environment variables

This commit is contained in:
Ettore
2026-05-08 20:16:04 +02:00
parent bd5403b2d3
commit d803e2d7f6
10 changed files with 67 additions and 12 deletions

View File

@@ -1,6 +1,7 @@
from typing import Optional
from fastapi import APIRouter, Depends
from pydantic import BaseModel
from sqlalchemy.orm import Session
from core.auth import encrypt_secret
@@ -38,3 +39,36 @@ async def upsert_credential(
db.commit()
db.refresh(cred)
return CredentialRead(id=cred.id, username=cred.username)
# ── Mock AVConnect setting ─────────────────────────────────────────────────────
class MockSettingResponse(BaseModel):
enabled: bool
class MockSettingRequest(BaseModel):
enabled: bool
@router.get("/mock", response_model=MockSettingResponse)
async def get_mock_setting(
db: Session = Depends(get_db), _: dict = Depends(require_admin)
):
cred: Optional[ApiCredential] = db.query(ApiCredential).first()
return MockSettingResponse(enabled=bool(cred.mock_avconnect) if cred else False)
@router.put("/mock", response_model=MockSettingResponse)
async def set_mock_setting(
req: MockSettingRequest,
db: Session = Depends(get_db),
_: dict = Depends(require_admin),
):
cred: Optional[ApiCredential] = db.query(ApiCredential).first()
if not cred:
from fastapi import HTTPException
raise HTTPException(503, "AVConnect credentials not configured")
cred.mock_avconnect = req.enabled
db.commit()
return MockSettingResponse(enabled=req.enabled)

View File

@@ -88,11 +88,13 @@ async def admin_open_gate(
ip = request.headers.get("X-Forwarded-For", request.client.host if request.client else None)
ua = request.headers.get("User-Agent")
mock = bool(cred_db.mock_avconnect)
success, error_msg, new_sid = call_open_gate(
gate_db.avconnect_macro_id,
cred_db.username,
decrypt_secret(cred_db.password_enc),
cred_db.session_id,
mock=mock,
)
db.add(GateAccessLog(
@@ -154,11 +156,13 @@ async def open_gate(
if allowed is not None and gate_id not in allowed:
raise HTTPException(403, "This keypass does not have access to this gate")
mock = bool(cred_db.mock_avconnect)
success, error_msg, new_sid = call_open_gate(
gate_db.avconnect_macro_id,
cred_db.username,
decrypt_secret(cred_db.password_enc),
cred_db.session_id,
mock=mock,
)
db.add(GateAccessLog(