
Jezik 🇭🇷 Hrvatski
Pozadina
Implementacija
Što je kontrola pristupa? 
With FastComments SSO kontrolom pristupa, ponekad nazvanom RBAC, korisnicima se može ograničiti pristup samo određenim stranicama ili nitima komentara. Osim toga,
korisnici mogu @mention jedni druge samo u istoj grupi.
Detaljno
Možemo smjestiti Users i po potrebi Pages u grupe.
Kada su Users smješteni u grupe, i Limit Comments by SSO User Groups je omogućen u Widget Settings, tada korisnici
će vidjeti samo komentare od korisnika iz svojih istih grupa i moći će @mention samo korisnike iz istih grupa.
Dodatno, Pages se mogu smjestiti u grupe, i tada korisnici mogu pristupiti komentarima samo za stranice kojima imaju pristup.
To zovemo "User-Level" groups versus "Page-Level" groups.
Dakle, koja je prava za vas?
Koristite grupe na razini korisnika ako...
- Želite koristiti istu
urlIdvrijednost (URL stranice ili ID članka), ali ograničiti komentare po grupi. - Na primjer, želite imati grupe "New User" i "Veteran User", i one nikada ne bi trebale vidjeti međusobne komentare na istim stranicama.
Koristite grupe na razini stranice ako...
- Vaše grupe imaju određene stranice.
- Na primjer, korisnici u grupi "Public Pages" nikada ne bi smjeli pregledavati članke iz grupe "Top Secret".
Kako funkcionira 
FastComments Access Control radi dodjeljivanjem Pages i Users u željene grupe.
Grupa je jednostavno tekstualni identifikator, poput GREEN ili abc-123.
Users i Pages nisu ograničeni samo na jednu grupu. Ograničeni su na 100 odnosno 1000 grupa.
Pristup neovlaštenim stranicama
Ako korisnik pokuša pristupiti stranici kojoj nema pristup, vidjet će poruku o pogrešci, poput prikazane dolje:
Tekst poruke može se prilagoditi.
Specifikacija 
Definiranje načina kako više korisnika međusobno djeluje i njegovo testiranje je komplicirano. Ovo je sljedeća specifikacija koju slijedimo za kontrolu pristupa, koju možete koristiti za testiranje vaše implementacije:
Stranica s null group ids, korisnik s null group ids - treba imati pristup.
Stranica s null group ids, korisnik s group ids - treba imati pristup.
Stranica s group ids, korisnik s null group ids - treba imati pristup.
Stranica s group ids, korisnik s praznom listom - ne bi trebao imati pristup.
Stranica s group ids, korisnik s group ids - presjek postoji - treba imati pristup.
Stranica s group ids, korisnik s group ids - presjek ne postoji - ne bi trebao imati pristup.
Stranica s praznom listom group ids (nitko nema pristup), korisnik s null - ne bi trebao imati pristup.
SSO User A = No group ids defined (null = puni pristup).
SSO User B = No group ids defined (null = puni pristup).
A može @B.
SSO User A = No group ids defined (null = puni pristup).
SSO User B = Group ids defined.
A može @B.
SSO User A = Group ids defined.
SSO User B = No group ids defined (null = puni pristup).
A može @B.
SSO User A = Group ids = [a].
SSO User B = Group ids = [b].
A ne može @B.
SSO User A = Group ids = [a].
SSO User B = Group ids = [a, b].
A može @B.
Implementacija 
Spominjanje korisnika u drugim grupama
Ako dva korisnika pripadaju dvjema različitim skupinama grupa, i nema presjeka, neće moći @mentionati jedno drugo.
Ako korisnik ručno upiše @mention i pošalje svoj komentar, to će ostati običan tekst. Drugi korisnik neće biti označen.
Održavanje grupa
Groups se definiraju pomoću API resursa Pages i SSOUsers, redom.
API Pages može se pozvati kako bi se definirao skup grupa kojima je dopušten pristup stranici. Po zadanim postavkama sve grupe i korisnici koji ne pripadaju niti jednoj grupi imaju pristup.
Slično tome, API SSOUsers može se pozvati za definiranje grupa povezanih sa svakim korisnikom.
Za oba resursa ne postoje ograničenja kada se grupe mogu postaviti ili ažurirati.
Ako je jedini cilj ograničiti da se korisnici međusobno @mentionaju, tada se Pages ne moraju uzimati u obzir.
Napomena!
Definiranje i ažuriranje SSO korisničkih grupa ne zahtijeva korištenje API-ja, već se može automatski ažurirati definiranjem group ids u SSO payloadu koji se prosljeđuje comment widgetu. Međutim, za velike popise grupa to se ne preporučuje jer bi korisnik morao poslati ovaj payload pri svakom učitavanju stranice.
Primjeri poziva API-ja 
Ovdje ćemo proći kroz pozivanje FastComments API-ja kako bismo postavili kontrolu pristupa.
Prije nego što počnemo, imajte na umu da ne moramo eksplicitno stvarati strukturu Group. Grupe su jednostavno identifikatori dodani Users i Pages. Dodavanje grupe korisniku ili stranici automatski "stvara" grupu.
Prvo, kreirat ćemo dva korisnika, User A i User B, počet ćemo ih u Group X:


Sada ćemo stvoriti Page. Nazvat ćemo ju našom Confidential Page, i zasad nijedan od ovih korisnika neće imati pristup jer će ona biti u grupi CONFIDENTIAL:

Korisnici A i B trenutno NEMAJU pristup novoj stranici. Međutim, budući da su u istoj grupi, GROUP-X, mogu se međusobno @mention-ati.
Ažurirajmo User B tako da sada može pristupiti stranici:

User B sada pripada obje grupe. Naši korisnici se i dalje mogu međusobno @mention-ati, ali samo User B može vidjeti našu povjerljivu stranicu.
Neka User B može gledati samo povjerljivu stranicu:

Sada on može vidjeti povjerljivu stranicu, ali nijedan od naših korisnika se više ne može međusobno @mention-ati, jer su u različitim grupama.
Međutim, svaki korisnik koji nije dio kontrole pristupa će moći pristupiti našoj stranici. Da to spriječite, osigurajte da nijedan SSO User nema groupIds postavljen na null. Na primjer, stvorimo User C, koji ima pristup svemu:

Postavljanjem groupIds na null, govorimo da oni nisu ograničeni kontrolom pristupa.
Sada, kreirajmo stranicu kojoj svi imaju pristup:

Postavljanjem accessibleByGroupIds na null, govorimo da ova Page nije kontrolirana putem kontrole pristupa, i oba korisnika joj mogu pristupiti.
Ovo završava naš pregled API-ja za kontrolu pristupa.