
Jezik 🇷🇸 Srpski (Latinica)
Pozadina
Implementacija
Šta je kontrola pristupa? 
Sa FastComments SSO Access Control, ponekad nazvanim RBAC, korisnicima se može ograničiti pristup samo određenim stranicama ili nitima komentara. Dodatno, korisnici mogu @mention jedni druge samo u istoj grupi.
Detaljno
Možemo smestiti Users i opciono Pages u grupe.
Kada su Users smešteni u grupe, i Limit Comments by SSO User Groups je omogućen u Podešavanjima widgeta, tada će korisnici videti samo komentare od korisnika u njihovim istim grupama i moći će da @mention samo korisnike u istim grupama.
Dodatno, Pages se mogu smestiti u grupe, i tada korisnici mogu pristupati komentarima samo za stranice kojima imaju pristup.
Ovo nazivamo "Grupe na nivou korisnika" naspram "Grupe na nivou stranice".
Pa koja je prava za vas?
Koristite grupe na nivou korisnika ako...
- Želite da koristite istu vrednost
urlId(URL stranice, ili ID članka), ali da ograničite komentare po grupi. - Na primer, želite da imate grupe "Novi korisnik" i "Veteran korisnik", i da oni nikada ne vide komentare jedni drugih na istim stranicama.
Koristite grupe na nivou stranice ako...
- Vaše grupe imaju specifične stranice.
- Na primer, korisnici u grupi "Javne stranice" nikada ne bi smeli da vide članke iz grupe "Tajni članci".
Kako funkcioniše 
FastComments kontrola pristupa radi tako što dodeljuje Pages i Users u željene grupe.
Grupa je jednostavno tekstualni identifikator, na primer GREEN ili abc-123.
Users i Pages nisu ograničeni na samo jednu grupu. Ograničeni su na 100 odnosno 1000 grupa.
Pristup neovlašćenim stranicama
Ako korisnik pokuša da pristupi stranici za koju nema pristup, videće poruku o grešci, kao u nastavku:
Tekst poruke može biti prilagođen.
Specifikacija 
Definisanje načina na koji više korisnika međusobno interaguje i testiranje toga je komplikovano. Evo sledeće specifikacije koju primenjujemo za kontrolu pristupa, koju možete koristiti za testiranje vaše implementacije:
Page with null group ids, user with null group ids - treba da ima pristup.
Page with null group ids, user with group ids - treba da ima pristup.
Page with group ids, user with null group ids - treba da ima pristup.
Page with group ids, user with empty list - NE bi trebalo da ima pristup.
Page with group ids, user with group ids - postoji presek - treba da ima pristup.
Page with group ids, user with group ids - presek ne postoji - NE bi trebalo da ima pristup.
Page with empty list of group ids (nobody has access), user with null - NE bi trebalo da ima 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 iz drugih grupa
Ako dva korisnika pripadaju dvema različitim skupovima grupa, i nema preklapanja, neće moći međusobno da @mention.
Ako korisnik ručno otkuca @mention i pošalje komentar, to će ostati običan tekst. Drugi korisnik neće biti označen.
Održavanje grupa
Groups se definišu korišćenjem API resursa Pages i SSOUsers, redom.
API Pages može biti pozvan da definiše skup grupa kojima je dozvoljen pristup stranici. Podrazumevano, sve grupe, kao i korisnici koji ne pripadaju nijednoj grupi, imaju pristup.
Slično, API SSOUsers može biti pozvan da definiše grupe povezane sa svakim korisnikom.
Za oba resursa ne postoje ograničenja u pogledu kada grupe mogu biti postavljene ili ažurirane.
Ako je cilj samo da se ograniči mogućnost da se korisnici međusobno koriste @mention, onda se Pages ne moraju uzimati u obzir.
Napomena!
Definisanje i ažuriranje SSO korisničkih grupa ne zahteva korišćenje API-ja, i umesto toga može biti ažurirano automatski definisanjem group ids u SSO payload-u koji se prosleđuje comment widget-u. Međutim, za velike liste grupa, ovo se ne preporučuje jer bi korisnik morao da pošalje ovaj payload pri svakom učitavanju stranice.
Primeri API poziva 
Ovde ćemo proći kroz pozivanje FastComments API-ja za podešavanje kontrole pristupa.
Pre nego što počnemo, imajte na umu da ne moramo eksplicitno kreirati strukturu Group. Grupe su jednostavno identifikatori
dodeljeni Users i Pages. Dodavanje grupe korisniku ili stranici automatski „kreira“ grupu.
Prvo, hajde da kreiramo dva korisnika, User A i User B, i smestićemo ih u Group X:


Sada hajde da kreiramo Page. Nazvaćemo je Confidential Page, i do sada 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, pošto su u istoj grupi, GROUP-X, mogu se međusobno @mention-ovati.
Ažurirajmo User B tako da sada može pristupiti stranici:

User B sada pripada obe grupe. Naši korisnici i dalje mogu da se međusobno @mentionuju, ali samo User B može da vidi našu Confidential Page.
Učinimo da User B može samo da pregleda poverljivu stranicu:

Sada može da pristupi poverljivoj stranici, ali nijedan od naših korisnika ne može da se međusobno @mention-uje, jer su u različitim grupama.
Međutim, bilo koji korisnik koji nije obuhvaćen kontrolom pristupa će moći da pristupi našoj stranici. Da biste to sprečili, postarajte se da nijedan SSO korisnik nema groupIds postavljen na null. Na primer, kreirajmo User C, koji ima pristup svemu:

Podesivši groupIds na null, označavamo da oni nisu ograničeni kontrolom pristupa.
Sada, hajde da kreiramo stranicu kojoj svi imaju pristup:

Podesivši accessibleByGroupIds na null, označavamo da ova Page nije kontrolisana putem kontrole pristupa, i oba korisnika mogu da joj pristupe.
Ovo završava našu demonstraciju korišćenja API-ja za kontrolu pristupa.