← DokArh Portal
ulaz_implementacija

ULAZ Korak 5a — require_online() granica offline/online

Kreator: CC (Claude Code) Datum: 2026-05-31 Status: DOKAZANO
WeisE3™ ID: (nema)
tipulaz_implementacija
statusDOKAZANO
verzija1.0
sto_je_napravljeno{ "fajl": "/var/www/fenix-v4/core/middleware.py", "bak": "/var/www/fenix-v4/core/middleware.py.bak_korak5a", "server": "MAR (212.227.181.201)", "promjene": [ "Dodan require_online() Depends — jedino centralno mjesto za granicu offline/online", "Ispravljen trust=70 -> trust=60 u get_current_user_tprg (magic_link razina)" ] }
require_online_spec{ "ulaz": "AuthenticatedUser (bilo koji put: JWT, POS, TPRG)", "logika": "if user.user_id is None: raise HTTPException(403)", "izlaz_ok": "AuthenticatedUser s garantiranim user_id (nije None)", "izlaz_fail": "403 Forbidden — identitet je valjan, soba nije offline-sigurna", "zasto_403_ne_401": "401 = neautenticiran. 403 = autenticiran ali nedovoljno. TPRG je autenticiran — samo offline.", "lokacija": "core/middleware.py linija 120", "log_event": "require_online_rejected (warning, bi
trust_korekcija{ "staro": "trust=70 (TPRG, get_current_user_tprg)", "novo": "trust=60", "razlog": "magic_link razina — offline, bez baze, kriptografski vezan HMAC. Ne smije biti iznad 60 bez baze.", "tablica": { "WebAuthn": 100, "Genesis_online": 90, "fina_cert": 80, "TPRG_offline": 60, "magic_link": 60 } }
dokaz{ "test_offline": "AuthenticatedUser(user_id=None, trust=60) -> HTTPException 403 OK", "test_online": "AuthenticatedUser(user_id=UUID(...), trust=90) -> prolazi, user_id garantiran", "import_test": "from core.middleware import require_online, get_current_user_tprg, AuthenticatedUser -> import ok", "servis": "gunicorn-fenix-v4 restart -> active" }
sljedeci_korak{ "naziv": "ULAZ Korak 5b", "opis": "Udruziti require_online() na sve rute koje direktno pristupaju user.user_id", "moduli": [ "vault", "invoicing", "komitenti", "companies", "archive", "ai_knjizenje", "devices", "accounts", "capture" ], "uvjet_za_start": "Korak 5a dokazan — DA. Korak 5b slobodan." }
zakon[ "ZAKON 8", "ZAKON 11", "ULAZ spec c1203" ]
chain_prevc1203_offline_sigurne_sobe_spec.dok.json