Commit Graph
21 Commits
Author SHA1 Message Date
Dasko 3701152e30 feat(podesavanja): profil firme — pravni i poreski status (Faza 0)
Dodata kartica „Pravni i poreski status" na Podešavanja → Opšte:
pravni oblik, režim rada, PDV obveznik, fiskalizacija. Čuva se u
postojećoj key-value tabeli podesavanja (bez migracije). Fiskalizacija
se zasivi i forsira na „Ne" u režimu „samo evidencija".
2026-06-13 19:27:26 +02:00
Dasko 4c1794ffc6 refactor(log): prelazak sa log na log/slog (strukturisano logovanje)
Uveden podrazumevani slog logger u main.go (podesiLog): JSON u produkciji,
tekst u razvoju, nivo Info. Svih ~70 poziva log.Printf/Println/Fatalf zamenjeno
slog.Error/Warn/Info: greška se prosleđuje kao atribut "error", informativne
vrednosti kao imenovani atributi (port, broj, putanja...), Fatalf -> Error +
os.Exit(1). Upozorenja (inicijalizacija/čišćenje dozvola, migracija kolone) idu
kao slog.Warn.
Auth log (internal/auth/log.go) namerno NIJE diran — ostaje zaseban *log.Logger
u fail2ban formatu. (slog.SetDefault usput preusmerava i standardni log paket.)
2026-06-12 22:33:42 +02:00
Dasko daf62f7de7 fix(backup): bezbedna zamena baze pri obnovi (sync.RWMutex + drain)
Obnova backupa (VratiBackup) je menjala Handler.DB i repozitorijume bez
zaključavanja dok drugi zahtevi rade — data race i moguć upit nad zatvorenom
konekcijom. Uveden Handler.mu (sync.RWMutex): zahtevi drže deljeno zaključavanje
preko middleware-a ZakljucajCitanje, a sama zamena (close+copy+reopen+reinit)
uzima ekskluzivno zaključavanje u zasebnoj gorutini, pa sačeka da svi tekući
zahtevi završe (drain) pre zamene. Zasebna gorutina je nužna jer zahtev još
drži deljeno zaključavanje (inače deadlock).
Poznato ograničenje: pozadinske gorutine i dalje koriste stari db handle iz
main.go — zaseban slučaj za kasnije.
2026-06-12 19:43:40 +02:00
Dasko 1cdc0bda12 Dodata zahtevajDozvolu metoda koja zamenjuje dupliranu proveru dozvola u handlerima.
Uvedena AssetV promenljiva za cache-busting statičkih fajlova, koja se postavlja pri svakom pokretanju.
Kreiran pogled klijent_prikaz (migracija 038) za jedinstveno prikazivanje imena klijenta, čime se eliminiše ponavljanje COALESCE logike u upitima.
Izvučena dodeliOpcijeKorisnika funkcija u korisnici.go radi DRY.
Zamenjeni inline stilovi u HTML šablonima CSS klasama (.polje-labela, .obavezno, .pomocni-tekst, .tabela, .kartica-tabela, .prazno-stanje).
Dodat width: 100% na inpute i resize: vertical na textarea u main.css.
2026-06-12 00:43:58 +02:00
Dasko 9466c7133b Code-review popravke: RequireDozvola middleware, validacija backupa, dedup partiala
Bezbednost / dozvole:
- Nov RequireDozvola(proveri, akcija) middleware (po uzoru na RequireAdmin):
na odbijanje redirekt na /dashboard sa flash porukom umesto golog 403
- 10 "pregled" ruta (prodaja, servis, klijenti, dobavljači, nabavke) prešlo
na deklarativnu proveru na nivou rute
- Uklonjene inline pregled-provere iz handlera — provera je sad na jednom
mestu po ruti, vidljiva u ruteru
Backup podešavanja:
- Neispravan unos (van opsega ili ne-broj) više se ne preskače tiho;
prikazuje se jasna greška i ne prikazuje se lažno "sačuvano"
- Hvata se greška pri čuvanju u bazu (uklonjen progutani _ =)
Šabloni:
- "Premesti" dropdown izvučen u jedan {{define "premestiMeni"}} partial
(više nije dupliran u tabeli i mobilnoj kartici)
- Dodat dict helper u FuncMap saSidebar šablona radi prosleđivanja više
vrednosti partialu; standalone šabloni namerno ostaju bez izmene
2026-06-09 01:26:10 +02:00
Dasko eb389dedf9 Magacin premeštanje, backup podešavanja, čišćenje RBAC sistema
Magacin:
- Dodato premeštanje artikla u drugu kategoriju (dugme + nativni
<details> meni, bez JS-a; radi na desktopu i mobilnom)
- Endpoint POST /magacin/premesti/{id} uz proveru dozvole artikal.premesti
Backup:
- Nova podešavanja: interval automatskog backupa i broj kopija (rotacija)
- Periodični backup uz onaj pri pokretanju; interval se čita iz baze
- Migracija 037_backup_podesavanja.sql
Dozvole (RBAC):
- Dodate kartice koje su nedostajale (dashboard.prihod, prodaja.storno,
podesavanja.login_pozadina, tema.lokalno) — popravljen i bug gde su se
gasile pri svakom čuvanju matrice
- Aktivirana kontrola pregleda za prodaju, servis, klijente i dobavljače
(provera u handlerima + skrivanje iz sidebara)
- Uklonjene mrtve/obmanjujuće dozvole iz matrice i sveAkcije (korisnici,
podsetnici, artikal.pregled, kategorija.izmeni, tema.globalno,
podesavanja.app_pozadina); sveAkcije 47 -> 34
- Čišćenje zastarelih redova (siročića) u tabeli dozvola pri startu
Ostalo:
- Statički fajlovi: embed celog web/static i ispravan MIME za .js/.css
- Keš šablona: dodat admin_dozvole (stranica Dozvole se nije otvarala)
- Sidebar accordion: radi i skupljen i proširen, međusobno isključiv
2026-06-09 00:55:15 +02:00
Dasko 19ecdf30a3 Popravka sidebara: kolaps, podmeni i HTMX navigacija 2026-06-08 19:29:17 +02:00
Dasko ef3a323203 Bezbednosni audit i refaktoring: HP popravke, RBAC, flash poruke, go:embed, CSP 2026-06-07 22:41:09 +02:00
Dasko 52a6e1df1b Bezbednost: rešeno 7 kritičnih nalaza (HP-01 do HP-07) 2026-06-07 22:41:09 +02:00
Dasko 0966f358ba Refaktoring: uklanjanje globalne teme i app pozadine, dozvole u podešavanja, UI ispravke
- Uklonjena globalna tema i pozadinska slika aplikacije (ostala samo lična pozadina po korisniku)
- Uklonjena animacija treperenja pozadine pri navigaciji; dodat sessionStorage za instant prikaz
- Dozvole premeštene iz sidebar-a u Podešavanja → Sistem; vidljive i adminu (samo Radnik kolona)
- Admin može menjati samo dozvole uloge Radnik, superadmin menja i Radnik i Admin
- Zatamnjivanje kartice NTech na stranici prijave — novi slider u Podešavanja → Izgled
- Upozorenje na dashboard-u (kritične zalihe) — popravljen kontrast boje
2026-06-06 21:07:01 +02:00
Dasko 1b2d701b7c Izmena u radu tema 2026-06-06 17:47:52 +02:00
Dasko 75b020b98d Podešavanja: accordion podmeni, podsekcije Opšte/Izgled/Sistem, glassmorphism prijava, kontrast teksta 2026-06-06 02:58:12 +02:00
Dasko d90ba424b5 Podešavanja: pozadinska slika i glass efekt za aplikaciju sa live preview sliderom 2026-06-05 23:49:05 +02:00
Dasko 742d0a528c Bezbednost: ispravke kontrole pristupa u admin i handler sloju 2026-06-05 22:41:20 +02:00
Dasko c0bb36c1b3 Dodato go:embed - disk-first logika za statičke fajlove i šablone 2026-06-04 20:14:03 +02:00
Dasko e48354ed7a Ispravke — bezbednost, CSS teme, handleri, sidebar, servis forma 2026-06-03 23:13:15 +02:00
Dasko 1f66655f8e Optimizacije — SQLite WAL, template keš, gzip kompresija, build skript 2026-06-03 21:18:12 +02:00
Dasko e9933eaf3e Ispravka QR koda za 2FA — generisanje na serveru kao base64 PNG 2026-06-02 22:29:53 +02:00
Dasko be2f43fbc8 Podešavanja — adresa, telefon, PIB firme; priznanica sa podacima firme i klijenta; ispravka prihoda na dashboardu 2026-06-02 18:57:52 +02:00
Dasko 91889b7711 Promena teme klikom na tačkice u topbaru 2026-06-01 01:45:24 +02:00
Dasko 8a9579e201 Dodavanje stranice podešavanja, CSS teme, logo zona 2026-06-01 01:40:29 +02:00