
Језик 🇷🇸 Српски
Позадина
Имплементација
Шта је контрола приступа? 
With FastComments SSO Access Control, ponekad називано RBAC, корисницима се може ограничити приступ само одређеним страницама или нитима коментара. Додатно, корисници могу @mention једни друге само у истој групи.
У детаљу
Можемо ставити Users и по избору Pages у групе.
Када су Users стављени у групе, и када је у Widget Settings омогућено Limit Comments by SSO User Groups, тада ће корисници видети само коментаре од корисника из својих група и моћи ће да @mention само кориснике из истих група.
Додатно, Pages се могу ставити у групе, и онда корисници могу приступати коментарима само за странице за које имају приступ.
Ово називамо „групе на нивоу корисника“ у односу на „групе на нивоу странице“.
Па која је права за вас?
Користите групе на нивоу корисника ако...
- Желите да користите исту вредност
urlId(URL странице или ID чланка), али да огранчите коментаре по групи. - На пример, желите да имате групе „Нови корисник“ и „Ветеран корисник“, и оне никада не треба да виде коментаре једна друге на истим страницама.
Користите групе на нивоу странице ако...
- Ваше групе имају специфичне странице.
- На пример, корисници у групи „Јавне странице“ не би требало никада да прегледају чланке у групи „Врло тајне“.
Како функционише 
FastComments Access Control ради тако што додељује Pages и Users у жељене групе.
Група је једноставно идентификатор у облику низа, као што је GREEN или abc-123.
Users and Pages are not just limited to one group. They are limited to 100 and 1000 groups, respectively.
Приступ неовлашћеним страницама
Ако корисник покуша да приступи страници за коју нема дозволу, видеће поруку о грешци, као доле:
Текст поруке може бити прилагођен.
Спецификација 
Дефинисање начина на који више корисника међусобно интерагује, и тестирање тога, је компликовано. Ево следеће спецификације коју пратимо за контролу приступа, коју можете користити за тестирање ваше имплементације:
Страница са null ид-овима група, корисник са null ид-овима група - треба да има приступ.
Страница са null ид-овима група, корисник са ид-овима група - треба да има приступ.
Страница са ид-овима група, корисник са null ид-овима група - треба да има приступ.
Страница са ид-овима група, корисник са празном листом - НЕ би требало да има приступ.
Страница са ид-овима група, корисник са ид-овима група - постоји пресек - треба да има приступ.
Страница са ид-овима група, корисник са ид-овима група - пресек не постоји - НЕ би требало да има приступ.
Страница са празном листом ид-ова група (нико нема приступ), корисник са null - НЕ би требало да има приступ.
SSO корисник A = ид-ови група нису дефинисани (null = пун приступ).
SSO корисник B = ид-ови група нису дефинисани (null = пун приступ).
A може да @B.
SSO корисник A = ид-ови група нису дефинисани (null = пун приступ).
SSO корисник B = ид-ови група дефинисани.
A може да @B.
SSO корисник A = ид-ови група дефинисани.
SSO корисник B = ид-ови група нису дефинисани (null = пун приступ).
A може да @B.
SSO корисник A = ид-ови група = [a].
SSO корисник B = ид-ови група = [b].
A НЕ може да @B.
SSO корисник A = ид-ови група = [a].
SSO корисник B = ид-ови група = [a, b].
A може да @B.
Имплементација 
Помена корисника у другим групама
Ако два корисника припадају два различита скупа група, и не постоји пресек, неће моћи да се међусобно @mention.
Ако корисник ручно унесе @mention и пошаље свој коментар, тај @mention ће остати као обичан текст. Други корисник неће бити означен.
Одржавање група
Groups се дефинишу коришћењем Pages и SSOUsers API ресурса, респективно.
Pages API може бити позван да дефинише скуп група којима је дозвољен приступ страници. Подразумевано, све групе, и корисници који не
припадају ниједној групи, имају приступ.
Слично, SSOUsers API може бити позван да дефинише групе повезане са сваким корисником.
За оба ресурса не постоје ограничења када групе могу бити подешене или ажуриране.
Ако је жеља само да се ограничи корисницима да се међусобно @mention'ing, онда Pages не морају бити узете у обзир.
Напомена!
Дефинисање и ажурирање SSO корисничких група не захтева коришћење API-ја, и уместо тога може се аутоматски ажурирати дефинисањем group ids у SSO payload који се прослеђује видгету за коментаре. Међутим, за велике спискове група, ово се не препоручује јер би корисник морао да пошаље овај 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 за контролу приступа.