
Језик 🇲🇪 Српски (Црна Гора)
Позадина
Имплементација
Шта је контрола приступа? 
Са FastComments SSO контролом приступа, понекад називаном RBAC, корисницима се може ограничити приступ само одређеним страницама или нитима коментара. Поред тога,
корисници могу @mention једни друге само у истој групи.
Детаљно
Можемо ставити Users и опционално Pages у групе.
Када се Users сместе у групе, и када је у подешавањима видгета омогућено Limit Comments by SSO User Groups, корисници ће видети само коментаре од корисника у својим истим групама и моћи ће да @mention само кориснике из истих група.
Поред тога, Pages се могу ставити у групе, и тада корисници могу приступити само коментарима за странице којима имају приступ.
Ово називамо "User-Level" групама за разлику од "Page-Level" група.
Па која од њих вам одговара?
Користите User-Level групе ако...
- Желите да користите исти
urlIdвредност (URL странице, или ID чланка), али да ограничите коментаре по групи. - На пример, желите да имате "Нови корисник" и "Искусни корисник" групе, и да никада не виде коментаре једна друге на истим страницама.
Користите Page-Level групе ако...
- Ваше групе имају одређене странице.
- На пример, корисници у групи "Јавне странице" не би требало да прегледају чланке означене као "Врло тајно".
Како функционише 
Kontrola приступа 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.
Имплементација 
Означавање корисника у другим групама
Ако два корисника припадају двjема различитим групама, и нема пресјека, они неће моћи да се међусобно @mentionују.
Ако корисник ручно укуца @mention и пошаље свој коментар, то ће остати обичан текст. Други корисник неће бити означен.
Oдржавање група
Groups се дефинишу коришћењем API ресурса Pages и SSOUsers, редом.
Pages API се може позвати да дефинише скуп група којима је дозвољен приступ страници. Подразумијевано, све групе и корисници који не припадају ниједној групи имају приступ.
Слично томе, SSOUsers API се може позвати да дефинише групе повезане са сваким корисником.
За оба ресурса нема ограничења када групе могу бити постављене или ажуриране.
Ако је циљ само ограничи́ти да се корисници међусобно @mentionују, онда се Pages не морају узимати у обзир.
Напомена!
Дефинисање и ажурирање SSO корисничких група не захтијева коришћење API-ја, и умијесто тога може се аутоматски ажурирати дефинисањем group ids у SSO payload-у који се прослијеђује comment widget-у. Међутим, за велике листе група, ово се не препоручује јер би корисник морао послати овај payload при сваком учитавању странице.
Примери API позива 
Овде ћемо проћи кроз позивање FastComments API-ја да бисмо подесили контролу приступа.
Пре него што почнемо, имајте у виду да не морамо експлицитно да креирамо структуру Group. Групе су једноставно идентификатори додати Users и Pages. Додавањем групе кориснику или страници аутоматски „креира“ група.
Прво, хајде да креирамо два корисника, User A и User B; поставићемо их у Group X:


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

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

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

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

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

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