Evidencija prijava — login_istorija tabela, logovanje svih pokušaja, stranica istorije po korisniku, WebAuthn shema
This commit is contained in:
@@ -20,6 +20,12 @@ type podaciAdminKorisnici struct {
|
||||
Sacuvano bool
|
||||
}
|
||||
|
||||
type podaciLoginIstorija struct {
|
||||
model.PodaciStranice
|
||||
PrikazKorisnik model.Korisnik
|
||||
Istorija []*model.LoginPokusaj
|
||||
}
|
||||
|
||||
type podaciAdminProfil struct {
|
||||
model.PodaciStranice
|
||||
Greska string
|
||||
@@ -333,6 +339,44 @@ func (h *Handler) AdminTotpDeaktivacija(w http.ResponseWriter, r *http.Request)
|
||||
http.Redirect(w, r, "/admin/profil?sacuvano=totp_off", http.StatusSeeOther)
|
||||
}
|
||||
|
||||
// AdminLoginIstorija prikazuje evidenciju prijava za datog korisnika
|
||||
func (h *Handler) AdminLoginIstorija(w http.ResponseWriter, r *http.Request) {
|
||||
k := middleware.KorisnikIzKonteksta(r.Context())
|
||||
if !middleware.JeAdmin(k) {
|
||||
http.Error(w, "Pristup odbijen", http.StatusForbidden)
|
||||
return
|
||||
}
|
||||
|
||||
id, err := parseID(chi.URLParam(r, "id"))
|
||||
if err != nil {
|
||||
http.Redirect(w, r, "/admin/korisnici", http.StatusSeeOther)
|
||||
return
|
||||
}
|
||||
|
||||
korisnik, err := h.KorisniciRepo.DohvatiPoID(r.Context(), id)
|
||||
if err != nil {
|
||||
http.Error(w, "Korisnik nije pronađen", http.StatusNotFound)
|
||||
return
|
||||
}
|
||||
|
||||
istorija, err := h.LoginIstorijsaRepo.ListaZaKorisnika(r.Context(), id, 50)
|
||||
if err != nil {
|
||||
http.Error(w, "Greška pri učitavanju istorije", http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
|
||||
podesavanja, _ := sqlite.DohvatiSvaPodesavanja(r.Context(), h.DB)
|
||||
ps := h.popuniPodaciStranice(r, podesavanja)
|
||||
ps.Stranica = "admin"
|
||||
ps.NaslovStranice = "Istorija prijava — " + korisnik.KorisnickoIme
|
||||
|
||||
h.renderujTemplate(w, "admin_login_istorija", podaciLoginIstorija{
|
||||
PodaciStranice: ps,
|
||||
PrikazKorisnik: *korisnik,
|
||||
Istorija: istorija,
|
||||
})
|
||||
}
|
||||
|
||||
// parseBoolForm čita boolean vrednost iz forme
|
||||
func parseBoolForm(s string) bool {
|
||||
b, _ := strconv.ParseBool(s)
|
||||
|
||||
Reference in New Issue
Block a user