
שפה 🇮🇱 עברית
רקע
יישום
מהי בקרת גישה? 
With FastComments SSO Access Control, sometimes referred to as RBAC, users can be restricted to only access certain pages, or comment threads. Additionally,
users can only @mention each other in the same group.
בפירוט
We can place Users and optionally Pages into groups.
When Users are placed into groups, and Limit Comments by SSO User Groups is enabled in Widget Settings, then users
will only see comments from users in their same groups and will only be able to @mention users in the same groups.
Additionally, Pages can be placed into groups, and then users can only access comments for pages they have access to.
We call this "קבוצות ברמת משתמש" verses "קבוצות ברמת דף".
So which one is right for you?
השתמשו בקבוצות ברמת משתמש אם...
- אתם רוצים להשתמש בערך ה-
urlIdזהה (כתובת הדף, או מזהה המאמר), אך להגביל תגובות לפי קבוצה. - לדוגמה, אתם רוצים שיהיו קבוצות "משתמש חדש" ו-"משתמש ותיק", והן לא צריכות לראות לעולם את תגובות זו של זו באותם דפים.
השתמשו בקבוצות ברמת דף אם...
- לקבוצות שלכם יש דפים ספציפיים.
- לדוגמה, משתמשים בקבוצה "Public Pages" לא צריכים לעולם לצפות במאמרים של "Top Secret" articles.
כיצד זה עובד 
בקרת הגישה של FastComments פועלת על ידי הקצאת Pages ו-Users לקבוצות הרצויות.
קבוצה היא פשוט מזהה מחרוזת, כמו GREEN או abc-123.
Users ו-Pages אינם מוגבלים רק לקבוצה אחת. הם מוגבלים ל-100 ו-1000 קבוצות, בהתאמה.
גישה לעמודים בלתי מורשים
אם משתמש מנסה לגשת לעמוד שאין לו גישה אליו, הוא יראה הודעת שגיאה, כמו להלן:
טקסט ההודעה ניתן להתאמה אישית.
המפרט 
הגדרת האופן שבו משתמשים מרובים מתקשרים ובדיקתו היא מורכבת. להלן המפרט הבא שאנו עוקבים אחריו לבקרת גישה, שאותו תוכלו להשתמש כדי לבחון את היישום שלכם:
עמוד עם 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 ושולח את התגובה שלו, היא תישאר כטקסט רגיל. המשתמש השני לא יתויג.
ניהול הקבוצות
Groups מוגדרים באמצעות משאבי ה-API Pages ו-SSOUsers, בהתאמה.
ניתן לקרוא ל-API של Pages כדי להגדיר את קבוצות המותרות לגשת לעמוד. כברירת מחדל, כל הקבוצות, וכן משתמשים שאינם שייכים לקבוצה, יש להם גישה.
באופן דומה, ניתן לקרוא ל-API של SSOUsers כדי להגדיר את הקבוצות המשויכות לכל משתמש.
בשני משאבים אלה, אין הגבלות לגבי מתי ניתן להגדיר או לעדכן את הקבוצות.
אם המטרה היא רק להגביל את היכולת של משתמשים לבצע @mention זה לזה, אז לא חייבים להתחשב ב-Pages.
שים לב!
הגדרה ועדכון של קבוצות משתמשי SSO אינה מחייבת שימוש ב-API, וניתן לעדכן זאת אוטומטית על ידי הגדרת מזהי הקבוצות ב-SSO payload המועבר ל-comment widget. עם זאת, עבור רשימות גדולות של קבוצות, זה לא מומלץ מכיוון שהמשתמש יצטרך לשלוח את ה-payload הזה בכל טעינת עמוד.
דוגמאות לקריאות API 
כאן נעבור שלב‑אחר‑שלב על קריאה ל-API של FastComments כדי להגדיר בקרת גישה.
לפני שנתחיל, שימו לב שאיננו צריכים ליצור במפורש מבנה 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 עבור בקרת גישה.