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
This commit is contained in:
@@ -1,15 +1,15 @@
|
||||
package middleware
|
||||
|
||||
// sve poznate akcije u sistemu
|
||||
// Napomena: pregled magacina i podsetnici su namerno javni (bez dozvole) i nisu ovde.
|
||||
// Upravljanje korisnicima ide preko uloge (RequireAdmin middleware), ne preko dozvole.
|
||||
var sveAkcije = []string{
|
||||
"artikal.pregled",
|
||||
"artikal.dodaj",
|
||||
"artikal.izmeni",
|
||||
"artikal.obrisi",
|
||||
"artikal.premesti",
|
||||
"kategorija.pregled",
|
||||
"kategorija.dodaj",
|
||||
"kategorija.izmeni",
|
||||
"kategorija.obrisi",
|
||||
"nabavka.pregled",
|
||||
"nabavka.dodaj",
|
||||
@@ -25,30 +25,19 @@ var sveAkcije = []string{
|
||||
"prodaja.pregled",
|
||||
"prodaja.dodaj",
|
||||
"prodaja.obrisi",
|
||||
"prodaja.storno",
|
||||
"klijent.pregled",
|
||||
"klijent.dodaj",
|
||||
"klijent.izmeni",
|
||||
"klijent.obrisi",
|
||||
"podsetnik.pregled",
|
||||
"podsetnik.dodaj",
|
||||
"podsetnik.izmeni",
|
||||
"podsetnik.obrisi",
|
||||
"izvestaj.pregled",
|
||||
"podesavanja.pregled",
|
||||
"podesavanja.izmeni",
|
||||
"korisnik.pregled",
|
||||
"korisnik.dodaj",
|
||||
"korisnik.izmeni",
|
||||
"korisnik.obrisi",
|
||||
"korisnik.uloga",
|
||||
"podesavanja.login_pozadina",
|
||||
"backup.pregled",
|
||||
"backup.pokreni",
|
||||
"podesavanja.login_pozadina",
|
||||
"podesavanja.app_pozadina",
|
||||
"tema.globalno",
|
||||
"tema.lokalno",
|
||||
"dashboard.prihod",
|
||||
"prodaja.storno",
|
||||
}
|
||||
|
||||
// SveAkcije vraća listu svih poznatih akcija — koristi se pri inicijalizaciji baze i resetu
|
||||
@@ -65,13 +54,12 @@ func ImaDozvolu(uloga, akcija string) bool {
|
||||
|
||||
case "admin":
|
||||
switch akcija {
|
||||
// artikal
|
||||
case "artikal.pregled", "artikal.dodaj", "artikal.izmeni",
|
||||
// artikal (pregled magacina je javan — nije dozvola)
|
||||
case "artikal.dodaj", "artikal.izmeni",
|
||||
"artikal.obrisi", "artikal.premesti":
|
||||
return true
|
||||
// kategorija
|
||||
case "kategorija.pregled", "kategorija.dodaj",
|
||||
"kategorija.izmeni", "kategorija.obrisi":
|
||||
case "kategorija.pregled", "kategorija.dodaj", "kategorija.obrisi":
|
||||
return true
|
||||
// nabavka
|
||||
case "nabavka.pregled", "nabavka.dodaj", "nabavka.obrisi":
|
||||
@@ -91,26 +79,18 @@ func ImaDozvolu(uloga, akcija string) bool {
|
||||
case "klijent.pregled", "klijent.dodaj",
|
||||
"klijent.izmeni", "klijent.obrisi":
|
||||
return true
|
||||
// podsetnik
|
||||
case "podsetnik.pregled", "podsetnik.dodaj",
|
||||
"podsetnik.izmeni", "podsetnik.obrisi":
|
||||
return true
|
||||
// izveštaji i podešavanja
|
||||
case "izvestaj.pregled",
|
||||
"podesavanja.pregled", "podesavanja.izmeni":
|
||||
return true
|
||||
// korisnici (bez promene uloge)
|
||||
case "korisnik.pregled", "korisnik.dodaj",
|
||||
"korisnik.izmeni", "korisnik.obrisi":
|
||||
return true
|
||||
// backup
|
||||
case "backup.pregled", "backup.pokreni":
|
||||
return true
|
||||
// pozadinske slike
|
||||
case "podesavanja.login_pozadina", "podesavanja.app_pozadina":
|
||||
// pozadina prijavne stranice
|
||||
case "podesavanja.login_pozadina":
|
||||
return true
|
||||
// teme
|
||||
case "tema.globalno", "tema.lokalno":
|
||||
// lokalna tema
|
||||
case "tema.lokalno":
|
||||
return true
|
||||
// dashboard — prihod samo admin+
|
||||
case "dashboard.prihod":
|
||||
@@ -120,9 +100,6 @@ func ImaDozvolu(uloga, akcija string) bool {
|
||||
|
||||
case "radnik":
|
||||
switch akcija {
|
||||
// artikal — samo pregled
|
||||
case "artikal.pregled":
|
||||
return true
|
||||
// kategorija — samo pregled
|
||||
case "kategorija.pregled":
|
||||
return true
|
||||
@@ -138,10 +115,6 @@ func ImaDozvolu(uloga, akcija string) bool {
|
||||
// klijent — bez brisanja
|
||||
case "klijent.pregled", "klijent.dodaj", "klijent.izmeni":
|
||||
return true
|
||||
// podsetnik — sve
|
||||
case "podsetnik.pregled", "podsetnik.dodaj",
|
||||
"podsetnik.izmeni", "podsetnik.obrisi":
|
||||
return true
|
||||
// lokalna tema
|
||||
case "tema.lokalno":
|
||||
return true
|
||||
|
||||
Reference in New Issue
Block a user