tipplan_faza
prev_chainc0025
parent_masterc0024
ciljSigurnosna granica po tenantu — komitent A ne vidi komitenta B; Limit-admin vidi sve klijente Limita; Konjik root vidi sve.
koraci{
"2.1": {
"naziv": "Sesija dobija tenant_scope[]",
"akcije": [
"POST /genesis/auth/verify dodaje tenant_scope: [{\"tenant_id\": \"limit\", \"uloge\": [\"knjigovodja\"]}]",
"tenant_scope se izvodi iz osoba_wid (tko je login-nuo) preko get_user_tenants()",
"Pohranjeno u Redis session (tier vec je tu, sad i tenant_scope)"
],
"fajlovi": [
"api/genesis_auth.py"
]
},
"2.2": {
"naziv": "SudacMiddleware tenant check",
"akcije": [
"Novi hel
acceptance_kriteriji[
"Login kao komitent_a, GET /partneri/ -> samo svoje partnere",
"Login kao komitent_a, GET /firme/by-slug/komitent_b -> 403 + tenant_nedovoljan",
"Login kao limit_admin, GET /firme/by-slug/komitent_b -> 200 (jer Limit ima manager scope)",
"Login kao konjik_root, GET bilo koji firma -> 200",
"POST /tenants/komitent_a/impersonate kao limit_admin -> nova sesija + audit dokarh",
"Playwright: 4 cross-tenant pokusaja, sve 403 osim za root/manager"
]