Ograničenje konekcija BE emulatora, sopstveni kontekst fiskalizacije nezavisan od prekida zahteva, validacija porta na setup stranici, serverska optimizacija kratke pretrage bez eval-a, testovi

This commit is contained in:
2026-07-13 15:10:02 +02:00
parent bc60288a0d
commit 9cf4e66f00
24 changed files with 619 additions and 40 deletions
+9
View File
@@ -262,6 +262,11 @@ func (k *Kartica) cmdVerifyPin(pin string) map[string]any {
return map[string]any{"status": "ok"}
}
// cmdResetAudit namerno NE zahteva pinUnesen: koristi ga isključivo admin panel
// (BeResetAudit, već iza "podesavanja.izmeni" RBAC provere) preko sopstvene TCP
// konekcije koja nikad ne zove verify_pin — zahtevanje PIN-a ovde bi trajno
// pokvarilo dugme "Resetuj audit" u Podešavanjima. cmdSign ostaje PIN-zaštićen
// jer njega poziva eksterni fiskalni klijent ("Fisk") koji prethodno zove verify_pin.
func (k *Kartica) cmdResetAudit() map[string]any {
k.mu.Lock()
defer k.mu.Unlock()
@@ -274,6 +279,10 @@ func (k *Kartica) cmdSign(invoiceType, transactionType string, totalAmount float
k.mu.Lock()
defer k.mu.Unlock()
if !k.pinUnesen {
return map[string]any{"status": "error", "code": "2101", "message": "PIN nije verifikovan"}
}
// blokada limite
if k.unreadAmount >= k.Limit {
return map[string]any{