FastComments.com

Czym jest kontrola dostępu? Internal Link

Dzięki FastComments SSO Access Control, czasami nazywanemu RBAC, można ograniczyć użytkownikom dostęp jedynie do określonych stron lub wątków komentarzy. Dodatkowo użytkownicy mogą @mention się nawzajem tylko w tej samej grupie.

W szczegółach

Możemy umieścić Users i opcjonalnie Pages w grupach.

Kiedy Users są umieszczeni w grupach, a w Ustawieniach Widgetu włączona jest opcja Limit Comments by SSO User Groups, użytkownicy będą widzieć tylko komentarze od użytkowników z ich tych samych grup i będą mogli @mentionować tylko użytkowników z tych samych grup.

Dodatkowo Pages mogą być umieszczone w grupach, dzięki czemu użytkownicy będą mieć dostęp tylko do komentarzy na stronach, do których mają dostęp.

Nazywamy to grupami "na poziomie użytkownika" w przeciwieństwie do grup "na poziomie strony".

Które z nich jest odpowiednie dla Ciebie?

Użyj grup na poziomie użytkownika jeśli...

  • Chcesz używać tej samej wartości urlId (URL strony lub identyfikator artykułu), ale ograniczyć komentarze według grupy.
  • Na przykład, chcesz mieć grupy "Nowy użytkownik" i "Doświadczony użytkownik", i nie powinny one nigdy widzieć nawzajem swoich komentarzy na tych samych stronach.

Użyj grup na poziomie strony jeśli...

  • Twoje grupy zawierają konkretne strony.
  • Na przykład, użytkownicy w grupie "Strony publiczne" nigdy nie powinni widzieć artykułów z grupy "Ściśle tajne".

Jak to działa Internal Link

FastComments Access Control działa poprzez przypisywanie Pages i Users do wybranych grup.

Grupa to po prostu identyfikator w postaci ciągu znaków, np. GREEN lub abc-123.

Users i Pages nie są ograniczone do jednej grupy. Są ograniczone odpowiednio do 100 i 1000 grup.

Dostęp do nieautoryzowanych stron

Jeśli użytkownik spróbuje uzyskać dostęp do strony, do której nie ma uprawnień, zobaczy komunikat o błędzie, jak poniżej:

Przykład niepowodzenia autoryzacji
Przykład niepowodzenia autoryzacji

Tekst komunikatu można dostosować.

Specyfikacja Internal Link

Określanie, jak wielu użytkowników wchodzi w interakcję oraz testowanie tego, jest skomplikowane. Oto specyfikacja, której przestrzegamy w kontroli dostępu, której możesz użyć do przetestowania swojej implementacji:

Strona z null group ids, użytkownik z null group ids - powinien mieć dostęp.
Strona z null group ids, użytkownik z group ids - powinien mieć dostęp.
Strona z group ids, użytkownik z null group ids - powinien mieć dostęp.
Strona z group ids, użytkownik z pustą listą - NIE powinien mieć dostępu.
Strona z group ids, użytkownik z group ids - istnieje przecięcie - powinien mieć dostęp.
Strona z group ids, użytkownik z group ids - przecięcie nie istnieje - NIE powinien mieć dostępu.
Strona z pustą listą group ids (nikt nie ma dostępu), użytkownik z null - NIE powinien mieć dostępu.

SSO User A = No group ids defined (null = pełny dostęp).
SSO User B = No group ids defined (null = pełny dostęp).
A może @B.

SSO User A = No group ids defined (null = pełny dostęp).
SSO User B = Group ids defined.
A może @B.

SSO User A = Group ids defined.
SSO User B = No group ids defined (null = pełny dostęp).
A może @B.

SSO User A = Group ids = [a].
SSO User B = Group ids = [b].
A NIE może @B.

SSO User A = Group ids = [a].
SSO User B = Group ids = [a, b].
A może @B.

Implementacja Internal Link

Wzmiankowanie użytkowników z innych grup

Jeśli dwaj użytkownicy należą do dwóch różnych zbiorów grup i nie ma między nimi przecięcia, nie będą mogli się nawzajem @mention.

Jeśli użytkownik ręcznie wpisze @mention i wyśle swój komentarz, pozostanie on w postaci zwykłego tekstu. Inny użytkownik nie zostanie otagowany.

Zarządzanie grupami

Groups są definiowane przy użyciu zasobów API Pages i SSOUsers.

API Pages można wywołać, aby zdefiniować zestaw grup mających dostęp do strony. Domyślnie dostęp mają wszystkie grupy oraz użytkownicy, którzy nie należą do żadnej grupy.

Podobnie API SSOUsers można wywołać, aby zdefiniować grupy powiązane z każdym użytkownikiem.

Dla obu zasobów nie ma ograniczeń co do tego, kiedy można ustawić lub zaktualizować grupy.

Jeśli celem jest jedynie ograniczenie możliwości @mentionowania się użytkowników nawzajem, to Pages nie muszą być brane pod uwagę.

Uwaga!

Definiowanie i aktualizowanie grup użytkowników SSO nie wymaga używania API i może być zaktualizowane automatycznie przez zdefiniowanie identyfikatorów grup w ładunku SSO przekazywanym do widżetu komentarzy. Jednak przy dużych listach grup nie jest to zalecane, ponieważ użytkownik musiałby przesyłać ten ładunek przy każdym ładowaniu strony.