
Језик 🇧🇦 Српски (БиХ)
Позадина
Имплементација
Шта је контрола приступа? 
Sa FastComments SSO kontrolom pristupa, ponekad nazivanom RBAC, korisnicima se može ograničiti pristup samo određenim stranicama ili nitima komentara. Također,
korisnici mogu @mention jedni druge samo u istoj grupi.
Detaljno
Možemo smjestiti Users i opcionalno Pages u grupe.
Kada su Users smješteni u grupe, i kada je Limit Comments by SSO User Groups omogućen u Postavkama widgeta, onda korisnici
će vidjeti samo komentare od korisnika iz istih grupa i moći će @mention samo korisnike iz istih grupa.
Također, Pages se mogu smjestiti u grupe, i tada korisnici mogu pristupiti komentarima samo za stranice kojima imaju pristup.
Ovo nazivamo "User-Level" grupama nasuprot "Page-Level" grupama.
Dakle, koja je prava za vas?
Koristite User-Level grupe ako...
- Želite koristiti istu vrijednost
urlId(URL stranice, ili ID članka), ali ograničiti komentare po grupi. - Na primjer, želite imati grupe "Novi korisnik" i "Veteran korisnik", i one nikada ne bi trebale vidjeti komentare jedna druge na istim stranicama.
Koristite Page-Level grupe ako...
- Vaše grupe imaju specifične stranice.
- Na primjer, korisnici u grupi "Javne stranice" nikada ne bi trebali vidjeti članke iz grupe "Vrlo tajno".
Како функционише 
Контрола приступа FastComments-а функционише тако што се Pages и Users додају у жељене групе.
Група је једноставно текстуални идентификатор, као што су GREEN или abc-123.
Users и Pages нису ограничени само на једну групу. Они су ограничени на 100 односно 1000 група.
Приступ неауторизованим страницама
Ако корисник покуша приступити страници којој нема приступ, видеће поруку о грешци, као у наставку:
Текст поруке се може прилагодити.
Спецификација 
Дефинисање начина на који више корисника међусобно интерагују, и тестирање тога, је компликовано. Ево следеће спецификације коју користимо за контролу приступа, коју можете користити за тестирање ваше имплементације:
Page with null group ids, user with null group ids - should have access.
Page with null group ids, user with group ids - should have access.
Page with group ids, user with null group ids - should have access.
Page with group ids, user with empty list - should NOT have access.
Page with group ids, user with group ids - intersection exists - should have access.
Page with group ids, user with group ids - intersection does not exist - should NOT have access.
Page with empty list of group ids (nobody has access), user with null - should NOT have access.
SSO User A = No group ids defined (null = full access).
SSO User B = No group ids defined (null = full access).
A can @B.
SSO User A = No group ids defined (null = full access).
SSO User B = Group ids defined.
A can @B.
SSO User A = Group ids defined.
SSO User B = No group ids defined (null = full access).
A can @B.
SSO User A = Group ids = [a].
SSO User B = Group ids = [b].
A can NOT @B.
SSO User A = Group ids = [a].
SSO User B = Group ids = [a, b].
A can @B.Имплементација 
Означавање корисника у другим групама
Ако два корисника припадају двема различитим групама и нема прецијека, неће моћи користити @mention један према другом.
Ако корисник ручно унесе @mention и пошаље свој коментар, он ће остати обичан текст. Други корисник неће бити означен.
Одржавање група
Groups се дефинишу коришћењем API ресурса Pages и SSOUsers, редом.
Pages API се може позвати да дефинише скуп група којима је дозвољен приступ страници. По подразумеваним подешавањима, све групе и корисници који не припадају ниједној групи имају приступ.
Слично томе, SSOUsers API се може позвати да дефинише групе повезане са сваким корисником.
За оба ресурса нема ограничења када се групе могу поставити или ажурирати.
Ако је једини циљ ограничити да корисници међусобно користе @mention, онда се Pages не морају узимати у обзир.
Напомена!
Дефинисање и ажурирање SSO корисничких група не захтева коришћење API-ја, и уместо тога може се аутоматски ажурирати дефинисањем group ids у SSO payload који се прослеђује comment widget-у. Међутим, за велике листе група ово се не препоручује јер би корисник морао да пошаље тај payload при сваком учитавању странице.
Пример API позива 
Овдје ћемо проћи кроз позивање FastComments API-ја да поставимо контролу приступа.
Пре него што почнемо, имајте на уму да не морамо експлицитно креирати структуру Group. Groups су једноставно идентификатори
додати Users и Pages. Додавање групе кориснику или страници аутоматски "креира" групу.
Прво, хајде да креирамо два корисника, User A и User B, поставићемо их у Group X:


Сада хајде да креирамо једну Page. Назваћемо је нашу Confidential Page, и до сада ниједан од ових корисника неће имати приступ, јер ће она бити у групи CONFIDENTIAL:

User A и User B тренутно НЕМАЈУ приступ новој страници. Међутим, пошто су у истој групи, GROUP-X, они могу @mention један другог.
Ажурирајмо User B тако да он/она сада може приступити страници:

User B сада припада обема групама. Наши корисници и даље могу @mention један другог, али само User B може видјети нашу поверљиву страницу.
Учинимо да User B може само видјети поверљиву страницу:

Сада они могу видјети поверљиву страницу, али ниједан од наших корисника не може @mention другог, јер су у различитим групама.
Међутим, сваки корисник који није дио контроле приступа ће моћи приступити нашој страници. Да бисте то спречили, осигурајте да ниједан SSO User нема своје groupIds постављено на null. На пример, хајде да креирамо User C, који има приступ свему:

Постављањем groupIds на null, кажемо да они нису ограничени контролом приступа.
Сада хајде да креирамо страницу којој сви имају приступ:

Постављањем accessibleByGroupIds на null кажемо да ова Page није контролисана преко контроле приступа, и оба корисника могу јој приступити.
Овим завршавамо наш преглед FastComments API-ја за контролу приступа.