Flow: Upravljanje blacklistom (Admin) (CSV import i CRUD operacije)¶
Actor¶
Security Administrator / Admin s ovlastima za upravljanje blacklistom (BLACKADMIN role)
Preconditions¶
- Admin ima važeće pristupne podatke s ovlastima za upravljanje blacklistom
- Dostupan je BLACKADMIN dio u admin portalu
- CSV datoteka je pripremljena (za masovni import) s obaveznim poljima: OIB, First Name, Last Name, Date of Birth
- Sigurnosni tim je dostavio listu zabranjenih osoba (otprilike 200-300 zapisa)
Flow Steps¶
Part 1: Početni masovni CSV import¶
-
Pristup sekciji za upravljanje blacklistom
- Admin se prijavljuje u admin portal uz MFA autentikaciju
- U glavnoj navigaciji otvara sekciju "BLACKADMIN"
- Dashboard prikazuje:
- Ukupan broj aktivnih zabrana
- Nedavne pokušaje kršenja
- Klikne gumb "Import Blacklist"
-
Učitavanje CSV datoteke
- Sustav prikazuje sučelje za CSV import
- Admin klikne "Choose File" i odabire CSV datoteku
- Prikazuju se zahtjevi formata CSV-a:
- Obavezni stupci: OIB (11 znamenki), First Name, Last Name, Date of Birth (DD.MM.YYYY)
- Admin učita CSV datoteku (200-300 osoba od sigurnosnog tima)
- Sustav pokreće proces validacije
-
CSV validacija i pregled (preview)
- Sustav validira svaki red:
- Format OIB-a (11 znamenki, ispravan checksum)
- Detekcija duplikata OIB-a (unutar datoteke i u odnosu na postojeću blacklistu)
- Validacija formata datuma (DD.MM.YYYY)
- Popunjenost obaveznih polja
- Prikazuju se rezultati validacije:
- Ukupno redova: 287
- Ispravni redovi: 283
- Neispravni redovi: 4 (s detaljnim opisima grešaka)
- Neispravni redovi su označeni uz konkretne greške:
- Row 45: "Invalid OIB checksum"
- Row 156: "Invalid date format in Expiration Date"
- Row 231: "Duplicate OIB already in system"
- Admin može:
- Vidjeti izvještaj grešaka s brojevima linija
- Ispraviti CSV i ponovno učitati
- Sustav validira svaki red:
-
Pregled i potvrda importa
- Tablica pregleda prikazuje prvih 20 ispravnih zapisa
- Sažetak statistike:
- Nove zabrane koje će se kreirati: 283
- Duplikati OIB-a (preskočeno): 4
- Admin pregledava podatke
- Admin unosi bilješku potvrde importa: "Initial security team blacklist import - November 2025"
- Admin klikne gumb "Confirm Import"
-
Izvršenje importa
- Sustav kreira blacklist zapise u batchu
- Progress bar prikazuje status importa
- Svaki zapis dobiva:
- Jedinstveni blacklist ID
- Status: "Active"
- Created by: Admin user ID
- Created timestamp
- Audit log entry
- Prikazuje se potvrda uspjeha:
- "Successfully imported 283 blacklist entries"
- "4 rows skipped due to errors"
- Admin može pregledati sažetak izvještaja importa
-
Provjera nakon importa
- Admin je preusmjeren na blacklist dashboard
- Nedavno importirani zapisi vidljivi su u listi
- Filter je postavljen na "Created Today"
- Admin može nasumično provjeriti (spot-check) importirane zapise radi točnosti
Part 2: Kontinuirane CRUD operacije¶
Create: Kreiranje pojedinačnog zapisa na blacklisti¶
-
Pokretanje nove zabrane
- Admin klikne gumb "Add Blacklist Entry"
- Prikazuje se forma s poljima:
- OIB (obavezno, 11 znamenki uz validaciju)
- First Name (obavezno)
- Last Name (obavezno)
- Date of Birth (obavezno, DD.MM.YYYY)
-
Unos detalja zabrane
- Admin unosi podatke o osobi
- Sustav radi validaciju u realnom vremenu:
- Validacija OIB checksuma
- Provjera duplikata OIB-a (prikazuje upozorenje ako postoji)
- Logička validacija datuma (expiration after effective date)
-
Slanje i potvrda
- Admin klikne "Create Blacklist Entry"
- Sustav kreira zapis i bilježi u audit trail
- Poruka uspjeha: "Blacklist entry created successfully. User [Name] is now banned from purchasing tickets."
Read/Search: Pregled i pretraživanje zapisa na blacklisti¶
-
Pretraga i filteri
- Admin otvara blacklist dashboard
- Search bar s opcijama:
- Pretraga po OIB-u (djelomično ili potpuno)
- Pretraga po imenu (first ili last)
- Rezultati se prikazuju u sortirajućoj tablici
-
Pregled detalja
- Stupci tablice:
- OIB (djelomično maskirano: *****34)
- Full Name
- Date of Birth
- Effective Date
- Actions (View, Remove)
- Admin klikne "View" na bilo kojem zapisu
- Detaljni prikaz sadrži:
- Potpune osobne podatke
- Audit trail (created, modified, accessed)
- Povijest pokušaja kršenja (ako postoji)
- Stupci tablice:
Delete/Remove: Uklanjanje zapisa s blackliste¶
-
Pokretanje uklanjanja
- Admin pronađe zapis
- Klikne "Remove" u retku zapisa
- Sustav prikazuje upozorenje:
- "Are you sure you want to remove this ban?"
- "Individual [Name] will be able to purchase tickets immediately"
- "This action will be logged in audit trail"
-
Potvrda uklanjanja
- Admin mora unijeti razlog uklanjanja (obavezno)
- Uobičajeni razlozi:
- Zabrana je prirodno istekla
- Žalba je odobrena
- Administrativna greška
- Sudska odluka / poništenje
- Admin potvrđuje uklanjanje
-
Izvršenje uklanjanja
- Sustav mijenja status u "Removed"
- Zapis ostaje u bazi (soft delete) radi audita
- Zabrana se više ne provodi u toku kupnje
- Kreira se audit log s admin ID-jem, timestampom i razlogom
- Poruka uspjeha: "Blacklist entry removed. Individual can now purchase tickets."
- Sigurnosnom timu se šalje obavijest
Part 3: Nadzor pokušaja kršenja¶
-
Pregled pokušaja kršenja
- Admin otvara tab "Violation Attempts"
- Naslov izvještaja: "Popis Kupaca Koji imaju aktivnu zabranu i Pokusali su kupiti ulaznicu"
- Tablica prikazuje blokirane pokušaje kupnje:
- DATUM POKUSAJA (Date of Attempt): DD.MM.YYYY HH:MM:SS
- IME (First Name)
- PREZIME (Surname)
- DATUM_ROD (Date of Birth)
- OIB (djelomično maskirano)
- Event (utakmica koju je pokušao kupiti)
- IP Address
- HNS mobile app User account ID
- Session Information
- Attempt Count (za ponovljene pokušaje)
- Filter opcije:
- Raspon datuma
- Osoba (po OIB-u ili imenu)
- Event
-
Istraga kršenja
- Admin klikne na zapis pokušaja kršenja
- Detaljni prikaz pokazuje:
- Potpune detalje pokušaja
- Informacije o korisničkoj sesiji
- Geolokaciju (iz IP-a)
- Višestruke pokušaje (ako je ponovljeni prekršitelj)
- Povezani zapis na blacklisti
- Admin može:
- Dodati bilješke istrage
- Blokirati korisnički račun u HNS mobilnoj aplikaciji
-
Upozorenja za detekciju obrazaca
- Sustav automatski detektira:
- Višestruke pokušaje iste osobe (> 3 u 24 sata)
- Pokušaje zaobilaženja promjenom osobnih podataka
- Admin dobiva obavijesti na dashboardu o obrascima
- Šalju se eskalacijske obavijesti za visoko prioritetna kršenja
- Sustav automatski detektira:
Alternative Flows¶
A1: Neuspješna CSV validacija
- Ako je više redova neispravno
- Sustav odbija cijeli import
- Admin mora ispraviti CSV i ponovno učitati
- Za sve probleme se daje detaljan izvještaj grešaka
A2: Pokušaj kreiranja duplikat zabrane
- Tijekom kreiranja pojedinačnog zapisa, OIB već postoji u aktivnim zabranama
- Sustav prikazuje grešku: "This OIB is already on the blacklist"
- Prikazuje detalje postojećeg zapisa
- Admin može:
- Ignorirati jer zapis već postoji
A3: Konflikt blackliste tijekom checkouta
- Kupac pokušava kupnju
- Sustav provjerava OIB prema blacklisti na više kontrolnih točaka:
- Kreiranje košarice
- Pokretanje checkouta
- Slanje plaćanja
- Ako se pronađe podudaranje:
- Kupnja se odmah blokira
- Korisnik vidi generičku grešku: "Unable to process order. Please contact support."
- Sustav bilježi pokušaj kršenja sa svim detaljima
- Korisniku se ne otkrivaju sigurnosni detalji
- Sigurnosnom timu se šalje tiha obavijest
A4: Blacklist zapis za osobu s postojećim ulaznicama (Automatsko otkazivanje - Bez povrata)
A4a: Kreiranje pojedinačnog zapisa¶
- Admin kreira novi blacklist zapis putem forme za pojedinačni unos
- Sustav automatski provjerava postoje li ulaznice povezane s OIB-om
- Ako postoje ulaznice za nadolazeće utakmice:
- Sustav prikazuje upozorenje adminu:
- "Warning: This individual has [X] active ticket(s) for upcoming matches"
- Lista pogođenih ulaznica:
- Naziv utakmice i datum
- Informacije o sjedalu
- Order ID
- Datum kupnje
- Uloga: BUYER ili TICKET HOLDER (važno za opseg otkazivanja)
- Upit: "Do you want to proceed with blacklist entry and cancel tickets?"
- Opcije: "Cancel Blacklist Entry" / "Proceed with Ban and Cancel Tickets"
- Sustav prikazuje upozorenje adminu:
- Ako admin potvrdi "Proceed with Ban and Cancel Tickets":
- Sustav kreira blacklist zapis i otkazuje pogođene ulaznice (vidi pravila otkazivanja dolje)
A4b: CSV Import — Grupno otkazivanje ulaznica¶
- Admin importira CSV datoteku (kako je opisano u Part 1)
- Sustav prvo završi potpuni import svih validnih blacklist zapisa
- Nakon završetka importa, sustav automatski skenira sve ulaznice za nadolazeće utakmice u odnosu na cijeli importirani batch:
- Za svaki novo importirani OIB, sustav provjerava ima li osoba aktivne ulaznice (kao kupac ili nositelj ulaznice) za bilo koju nadolazeću utakmicu
- Sve pronađene ulaznice se skupljaju u izvještaj za otkazivanje
- Sustav prikazuje sažetak otkazivanja nakon importa:
- "Import complete: [X] blacklist entries created. [Y] individuals have [Z] active ticket(s) for upcoming matches."
- Sažetak tablica:
- OIB (maskirano)
- Ime (ako je dostupno)
- Broj pogođenih ulaznica
- Pogođene utakmice
- Admin potvrđuje: "Proceed with Batch Cancellation" / "Skip Cancellation" (blacklist zapisi ostaju aktivni u oba slučaja)
- Ako admin potvrdi grupno otkazivanje:
- Sustav procesira sva otkazivanja u batchu (vidi pravila otkazivanja dolje)
- Progress bar prikazuje status otkazivanja
- Završni sažetak: "[Z] tickets cancelled across [Y] individuals for [N] upcoming matches"
Pravila otkazivanja (primjenjuju se na A4a i A4b)¶
- Automatska pravila otkazivanja ulaznica:
- Ako je osoba s blackliste BUYER (kupac):
- Sustav otkazuje SVE ulaznice u narudžbi (svi nositelji ulaznica su pogođeni)
- Obrazloženje: Kupac je omogućio kupnju, cijela narudžba se poništava
- Ako je osoba s blackliste samo TICKET HOLDER (netko drugi je kupio za nju):
- Sustav otkazuje SAMO tu specifičnu ulaznicu
- Ostale ulaznice u istoj narudžbi ostaju valjane
- Kupac se obavještava o djelomičnom otkazivanju
- Ako je osoba s blackliste BUYER (kupac):
- Otkazane ulaznice:
- Status ulaznice mijenja se u "CANCELLED_BLACKLIST"
- Sjedala se odmah vraćaju u dostupni inventar
- QR kodovi se poništavaju
- Bez povrata: Osobe s blackliste (bilo da su kupci ili nositelji ulaznica) ne primaju povrat za otkazane ulaznice. Ovo se odnosi i na osobu s blackliste i na sve ulaznice u njenoj narudžbi.
- Sustav šalje obavijest pogođenim stranama:
- Kupcu (ako je narudžba pogođena):
- Subject e-maila: "Ticket Cancellation Notice - [Match Name]"
- Sadržaj e-maila: "Your ticket order [Order ID] for [Match Name] on [Date] has been cancelled. For questions regarding this restriction, please contact MUP (Ministry of Interior)."
- Push obavijest: "Your tickets for [Match Name] have been cancelled. Check email for details."
- Nositelju ulaznice (ako je različit od kupca i ulaznica je otkazana):
- E-mail: "Your ticket for [Match Name] on [Date] has been cancelled. For questions regarding this restriction, please contact MUP (Ministry of Interior)."
- Kupcu (ako je narudžba pogođena):
- Sustav šalje obavijest sigurnosnom timu:
- E-mail security adminu s potpunim detaljima
- Sažetak: "Blacklist entry created for [Name] - [X] existing tickets cancelled"
- Lista otkazanih narudžbi i pogođenih nositelja ulaznica
- Kreiraju se audit log zapisi:
- Kreiranje blacklist zapisa
- Otkazivanje ulaznica (svaka ulaznica se logira zasebno s BUYER/HOLDER ulogom)
- Slanje obavijesti
- Admin ID, timestampovi i razlozi su dokumentirani
- Poruka uspjeha adminu: "Blacklist entry created successfully. [X] existing ticket(s) cancelled."
Last Updated: November 2025