Korisnici: dozvoljeno brisanje radnika i admin nalogu (ne samo superadminu); frontend ne navigira GET-om na POST-only rutu pri grešci bez redirekta
This commit is contained in:
@@ -250,7 +250,7 @@ func (h *Handler) AdminPromeniUlogu(w http.ResponseWriter, r *http.Request) {
|
|||||||
// AdminObrisiKorisnika briše korisnika sa ulogom radnik
|
// AdminObrisiKorisnika briše korisnika sa ulogom radnik
|
||||||
func (h *Handler) AdminObrisiKorisnika(w http.ResponseWriter, r *http.Request) {
|
func (h *Handler) AdminObrisiKorisnika(w http.ResponseWriter, r *http.Request) {
|
||||||
k := middleware.KorisnikIzKonteksta(r.Context())
|
k := middleware.KorisnikIzKonteksta(r.Context())
|
||||||
if k == nil || k.Uloga != "superadmin" {
|
if !middleware.JeAdmin(k) {
|
||||||
http.Error(w, "Pristup odbijen", http.StatusForbidden)
|
http.Error(w, "Pristup odbijen", http.StatusForbidden)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -511,6 +511,11 @@
|
|||||||
}
|
}
|
||||||
// promena teme zahteva reload (menja se ceo CSS fajl)
|
// promena teme zahteva reload (menja se ceo CSS fajl)
|
||||||
if (f.querySelector('[name="lokalna_tema"]')) location.reload();
|
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 {
|
} else {
|
||||||
// redirect na drugu stranicu ili bez sacuvano — navigiraj normalno
|
// redirect na drugu stranicu ili bez sacuvano — navigiraj normalno
|
||||||
location.href = res.url;
|
location.href = res.url;
|
||||||
|
|||||||
Reference in New Issue
Block a user