The family gate (decisions 63/64, R-780): family members with their own logins, a permanent forwardAuth door per family app, anchored exceptions, min_controller
gates / gates (push) Successful in 27s

- internal/family: the family list (bcrypt, generated 4x4 passwords shown once) + 30-day sessions in family.json
  (0600, atomic); a reset (generation), a removal or a logout ends sessions at the next request.
- internal/stacks/family_gate.go: family_gate / family_gate_except / min_controller in .felhom.yml; the door is written
  BEFORE the first start (install and a removed app's restore), a life record in app.yaml, reconciled by the gate loop;
  priority below the install hold, setup gate and sign-up block; every exception anchored ^/prefix(/|$) (finding F1).
- internal/web/family_gate.go: forwardAuth /__felhom_gate/family (app cookie felhom_famgate, host-only, names a store
  session); /__family/start|login|logout on the dashboard host (session cookie felhom_family, Path=/__family);
  sign-in counted per visitor (clientIP) AND per name, short windows; the household's dashboard session vouches.
  RequireAuth never reads a family cookie. The "Család" card on the security page: add / new password / remove.
Red-proofs RP-F1..RP-F7 (felhom.eu audits/family-gate-2026-10-02/A/).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
This commit is contained in:
2026-10-02 07:42:47 +02:00
parent a4a753b9e2
commit 977665d8c0
25 changed files with 2168 additions and 10 deletions
+30 -1
View File
@@ -2496,5 +2496,34 @@
"flash.offbox.enabled_all": "A távoli mentés be van kapcsolva minden alkalmazásra.",
"login.msg.empty_password": "Add meg a jelszavad.",
"login.msg.rate_limited": "Túl sok hibás próbálkozás erről a címről. Próbáld újra egy perc múlva.",
"login.msg.wrong_password": "Hibás jelszó."
"login.msg.wrong_password": "Hibás jelszó.",
"err.stacks.family_gate_failed": "A családi kapu nem készült el, ezért nem telepítettük az alkalmazást: %s",
"err.stacks.needs_newer_controller": "Ehhez az alkalmazáshoz újabb doboz-szoftver kell, ezért most nem telepítettük: %s",
"family_gate.page_title": "Családi belépés",
"family_gate.page_body": "Ezt az alkalmazást a családi neveddel és jelszavaddal nyithatod meg.",
"family_gate.name": "Neved",
"family_gate.password": "Jelszavad",
"family_gate.sign_in": "Belépés",
"family_gate.sign_out": "Kilépés",
"family_gate.signed_in_note": "Be vagy lépve a családi fiókoddal.",
"family_gate.msg.form_expired": "Az űrlap lejárt. Töltsd be újra az oldalt.",
"family_gate.msg.locked": "Túl sok hibás próbálkozás. Próbáld újra pár perc múlva.",
"family_gate.msg.wrong": "Hibás név vagy jelszó.",
"family_gate.msg.signed_in": "Beléptél. Nyisd meg újra az alkalmazást.",
"family_gate.msg.signed_out": "Kiléptél. A családi alkalmazások újra belépést kérnek.",
"family_gate.msg.store_unreadable": "A családi lista most nem olvasható.",
"family_gate.msg.bad_name": "A név 1–32 karakter: kisbetű, szám, pont, kötőjel vagy aláhúzás.",
"family_gate.msg.exists": "Már van ilyen nevű családtag.",
"family_gate.msg.no_member": "Nincs ilyen nevű családtag.",
"family_gate.card_title": "Család",
"family_gate.card_desc": "A családtagok a saját nevükkel és jelszavukkal lépnek be a családi kapus alkalmazásokba. Ezzel a vezérlőpultot nem érik el.",
"family_gate.add": "Családtag hozzáadása",
"family_gate.name_placeholder": "pl. anna",
"family_gate.reset": "Új jelszó",
"family_gate.remove": "Eltávolítás",
"family_gate.none": "Még nincs családtag.",
"family_gate.pw_once": "A jelszó csak most látszik. Írd fel, vagy add át a családtagnak:",
"family_gate.confirm_remove": "Eltávolítod? A belépései azonnal megszűnnek.",
"family_gate.confirm_reset": "Új jelszót adsz? A régi azonnal megszűnik.",
"family_gate.error": "Nem sikerült. Próbáld újra."
}