FastComments.com

Какво е контрол на достъпа? Internal Link

С FastComments SSO Access Control, понякога наричано RBAC, потребителите могат да бъдат ограничени да имат достъп само до определени страници или нишки от коментари. Освен това потребителите могат да се @mention само помежду си в една и съща група.

Подробно

Можем да поставим Users и, по избор, Pages в групи.

Когато Users са поставени в групи и опцията Limit Comments by SSO User Groups е включена в Widget Settings, потребителите ще виждат само коментари от потребители в техните същите групи и ще могат да @mention само потребители от същите групи.

Допълнително, Pages могат да бъдат поставени в групи, и тогава потребителите могат да имат достъп само до коментари за страници, до които имат достъп.

Наричаме това „групи на ниво потребител“ срещу „групи на ниво страница“.

Кое от двете е подходящо за вас?

Използвайте групи на ниво потребител, ако...

  • Искате да използвате същата стойност на urlId (URL на страницата или идентификатор на статия), но да ограничите коментарите по групи.
  • Например, може да искате да имате групи „Нов потребител“ и „Опитен потребител“, които никога да не виждат коментарите един на друг на едни и същи страници.

Използвайте групи на ниво страница, ако...

  • Вашите групи са свързани с конкретни страници.
  • Например, потребители в групата „Публични страници“ не би трябвало да виждат статии, маркирани като „Строго секретно“.

Как работи Internal Link

FastComments Access Control работи чрез присвояване на Pages и Users към желаните групи.

A group is simply a string identifier, like GREEN or abc-123.

Users and Pages are not just limited to one group. They are limited to 100 and 1000 groups, respectively.

Достъп до неоторизирани страници

If a user tries to access a page they don't have access to, they will see an error message, like below:

Authorization Failure Example
Authorization Failure Example

Текстът на съобщението може да бъде персонализиран.


Спецификацията Internal Link


Дефинирането как множество потребители взаимодействат и тестването на това е усложнено. Ето следната спецификация, която следваме за контрол на достъпа, и която можете да използвате, за да тествате вашата имплементация:

Страница с null group ids, потребител с null group ids - трябва да има достъп.
Страница с null group ids, потребител с group ids - трябва да има достъп.
Страница с group ids, потребител с null group ids - трябва да има достъп.
Страница с group ids, потребител с empty list - трябва да НЯМА достъп.
Страница с group ids, потребител с group ids - има пресечение - трябва да има достъп.
Страница с group ids, потребител с group ids - няма пресечение - трябва да НЯМА достъп.
Страница с empty list of group ids (никой няма достъп), потребител с null - трябва да НЯМА достъп.

SSO User A = Няма дефинирани group ids (null = пълен достъп).
SSO User B = Няма дефинирани group ids (null = пълен достъп).
A може да @B.

SSO User A = Няма дефинирани group ids (null = пълен достъп).
SSO User B = Има дефинирани group ids.
A може да @B.

SSO User A = Има дефинирани group ids.
SSO User B = Няма дефинирани group ids (null = пълен достъп).
A може да @B.

SSO User A = Group ids = [a].
SSO User B = Group ids = [b].
A НЕ може да @B.

SSO User A = Group ids = [a].
SSO User B = Group ids = [a, b].
A може да @B.

Имплементация Internal Link

Споменаване на потребители в други групи

Ако двама потребители принадлежат към два различни набора от групи и няма пресичане, те няма да могат да @mention-ват един друг.

Ако потребител ръчно въведе @mention и бъде публикуван коментарът му, той ще остане като обикновен текст. Другият потребител няма да бъде отбелязан.

Поддържане на групите

Groups се дефинират чрез ресурсите на API Pages и SSOUsers, съответно.

Pages API може да бъде извикан, за да се дефинира наборът от групи, които имат достъп до страницата. По подразбиране всички групи и потребителите, които не принадлежат към група, имат достъп.

По подобен начин SSOUsers API може да бъде извикан, за да се дефинират групите, свързани с всеки потребител.

За двата ресурса няма ограничения относно кога групите могат да бъдат зададени или актуализирани.

Ако целта е само да се ограничат възможностите потребителите да се @mention-ват един друг, тогава не е необходимо да се вземат предвид Pages.

Забележка!

Дефинирането и актуализирането на SSO потребителските групи не изисква използване на API и може вместо това да се актуализира автоматично чрез дефиниране на group ids в SSO payload, предаван към comment widget. Въпреки това, за големи списъци с групи това не се препоръчва, тъй като потребителят би трябвало да изпраща този payload при всяко зареждане на страницата.