feat(moduli): mehanizam uključenih modula — Moduli mapa i RequireModul (Faza 0)

config.SviModuli + PodaciStranice.Moduli (uslovni meni, analogno Dozvole)
i middleware.RequireModul (zaštita ruta, analogno RequireDozvola). Sloj
iznad RBAC-a: zahtev mora proći i „modul uključen" i „korisnik sme".
Dopunjen test (TestSviModuli). Time je Faza 0 kompletna.
This commit is contained in:
2026-06-13 20:23:24 +02:00
parent 3817ba4cbd
commit 6d066f6704
5 changed files with 71 additions and 1 deletions
+3
View File
@@ -7,6 +7,7 @@ import (
"net/http"
"sync"
"ntech/internal/config"
"ntech/internal/db"
"ntech/internal/db/sqlite"
"ntech/internal/middleware"
@@ -159,6 +160,8 @@ func (h *Handler) popuniPodaciStranice(r *http.Request, podesavanja map[string]s
ps.CsrfToken = middleware.CsrfToken(r.Context())
ps.AssetV = h.AssetV
ps.Flash = middleware.GetFlash(r, h.DB)
// uključeni zakonski moduli prema profilu firme — šabloni ih koriste za uslovni meni
ps.Moduli = config.SviModuli(podesavanja)
// logika pozadine:
// - lična pozadina → uvek se prikazuje i forsira tamnu temu, bez obzira na KoristiLokalnuTemu