From 9ce1ee817d0f25261b0eb0f38a469e9a0cdbf598 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dalibor=20Markovi=C4=87?= Date: Fri, 31 Jul 2026 11:19:33 +0200 Subject: [PATCH] =?UTF-8?q?Korisnici:=20dozvoljeno=20brisanje=20radnika=20?= =?UTF-8?q?i=20admin=20nalogu=20(ne=20samo=20superadminu);=20frontend=20ne?= =?UTF-8?q?=20navigira=20GET-om=20na=20POST-only=20rutu=20pri=20gre=C5=A1c?= =?UTF-8?q?i=20bez=20redirekta?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/handler/admin.go | 2 +- web/templates/teme/podrazumevana/base.html | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/internal/handler/admin.go b/internal/handler/admin.go index 8efec75..1cb120a 100644 --- a/internal/handler/admin.go +++ b/internal/handler/admin.go @@ -250,7 +250,7 @@ func (h *Handler) AdminPromeniUlogu(w http.ResponseWriter, r *http.Request) { // AdminObrisiKorisnika briše korisnika sa ulogom radnik func (h *Handler) AdminObrisiKorisnika(w http.ResponseWriter, r *http.Request) { k := middleware.KorisnikIzKonteksta(r.Context()) - if k == nil || k.Uloga != "superadmin" { + if !middleware.JeAdmin(k) { http.Error(w, "Pristup odbijen", http.StatusForbidden) return } diff --git a/web/templates/teme/podrazumevana/base.html b/web/templates/teme/podrazumevana/base.html index bc0581e..6ddf3e2 100644 --- a/web/templates/teme/podrazumevana/base.html +++ b/web/templates/teme/podrazumevana/base.html @@ -511,6 +511,11 @@ } // promena teme zahteva reload (menja se ceo CSS fajl) if (f.querySelector('[name="lokalna_tema"]')) location.reload(); + } else if (!res.ok) { + // greška bez redirekta (http.Error — 403/404/500/...) — obavesti korisnika, + // ne navigiraj na POST-only rutu (izaziva 405 kod GET-a) + window.ntechToast('Došlo je do greške. Pokušajte ponovo.', 'greska'); + if (btn) btn.disabled = false; } else { // redirect na drugu stranicu ili bez sacuvano — navigiraj normalno location.href = res.url;