תארו לעצמכם: באתר Joomla שלכם יש תוכן בעל ערך, אבל אתם צריכים להפריד בין תוכן חינמי לתוכן בתשלום. ללא רשימת בקרת גישה (ACL), או שהכל ציבורי או שאתם מתקינים תוספים כבדים שמאטים את LCP ב-20-30%. עבדנו על למעלה מ-30 פרויקטי Joomla שבהם הגדרנו ACL מאפס תוך 2-3 ימים, וחסכנו ללקוחות עד 40% על תוספים של צד שלישי (זה עד $2,000). אנחנו פותרים זאת באמצעות ה-ACL המובנה של Joomla — ללא תוספים נוספים, Core Web Vitals נשמר. עם ניסיון של למעלה מ-10 שנים ב-Joomla, אנו מבטיחים התקנה חלקה. הגדרת ACL דורשת הבנה של היררכיית קבוצות, רמות גישה והרשאות, אבל הגמישות משתלמת. להלן דוגמה מעשית עם קוד וטבלאות שתעזור לכם להבין זאת מהר יותר מאשר קריאת מדריכים. הזמינו מאיתנו הגדרת ACL ל-Joomla וקבלו מערכת גישה מוגדרת במלואה לכל פרויקט, מבלוג פשוט ועד פורטל חינוכי עם שלוש רמות מנוי.
איך ACL של Joomla עובד: קבוצות, רמות והרשאות
| ישות | תיאור | דוגמאות |
|---|---|---|
| קבוצות משתמשים | היררכיות, יורשות זכויות של קבוצת האב. מובנות: ציבורי עד סופר משתמשים | ציבורי, רשום, מנהל |
| רמות גישה | מגדירות אילו קבוצות רואות תוכן | ציבורי, אורח, רשום, מיוחד |
| פעולות | מה קבוצה יכולה לעשות עם פריט: יצירה, עריכה, מחיקה | עריכת פריט משלי, עריכת מצב |
יצירת קבוצה ורמת גישה מותאמות אישית היא פשוטה:
- עברו למשתמשים → קבוצות → חדש. בחרו קבוצת אב (לדוגמה, רשום), תנו שם (לדוגמה, חבר פרימיום).
- לאחר מכן צרו רמת גישה: משתמשים → רמות גישה → חדש. קראו לה "תוכן פרימיום", הקצו גישה לקבוצת חבר פרימיום.
- כעת הקצו את רמת הגישה הזו לכל פריט תפריט, מודול או מאמר — הם יהפכו גלויים רק לחברי פרימיום.
הרשאות רכיב ובקרה פרוגרמטית
| רכיב | קבוצה | פעולה | הרשאה |
|---|---|---|---|
| com_content | עורכי בלוג | יצירה | אפשר |
| עריכה | אפשר | ||
| עריכת מצב | מנע | ||
| מחיקה | מנע |
כך עורכים יכולים ליצור ולערוך מאמרים משלהם אך לא לפרסם אותם ללא אישור. ניתן גם לבדוק גישה פרוגרמטית:
use Joomla\CMS\Factory;
$user = Factory::getApplication()->getIdentity();
// Проверить, является ли авторизованным
if ($user->guest) {
// Показать форму входа
echo Factory::getApplication()->getDocument()
->getRenderer('component')
->render('com_users.login');
}
// Проверить доступ к просмотру конкретного уровня
if (!$user->authorise('core.view', 'com_content.article.' . $article->id)) {
throw new \Joomla\CMS\Exception\ExceptionHandler(403);
}
// Проверить разрешение на действие
if ($user->authorise('core.create', 'com_content')) {
// показать кнопку создания
}
// Проверить принадлежность к группе
$groups = $user->groups; // массив ID групп
$isPremium = in_array($premiumGroupId, $groups);
הגדרת ACL של Joomla לתוכן בתשלום
תוכן בתשלום הוא בקשה נפוצה. לאחר תשלום דרך שער תשלום (לדוגמה, Stripe, Robokassa), אתם משייכים את המשתמש המשלם לקבוצה. פרוגרמטית, השתמשו ב-use Joomla\CMS\Factory; $user = Factory::getApplication()->getIdentity(); // Проверить, является ли авторизованным if ($user->guest) { // Показать форму входа echo Factory::getApplication()->getDocument() ->getRenderer('component') ->render('com_users.login'); } // Проверить доступ к просмотру конкретного уровня if (!$user->authorise('core.view', 'com_content.article.' . $article->id)) { throw new \Joomla\CMS\Exception\ExceptionHandler(403); } // Проверить разрешение на действие if ($user->authorise('core.create', 'com_content')) { // показать кнопку создания } // Проверить принадлежность к группе $groups = $user->groups; // массив ID групп $isPremium = in_array($premiumGroupId, $groups); :
// После успешной оплаты
$user = Factory::getUser($userId);
$premiumGroupId = 8;
$groups = $user->groups;
$groups[$premiumGroupId] = $premiumGroupId;
UserHelper::setUserGroups($userId, $groups);תוך 2-3 ימי עבודה בלבד אנו מגדירים את סכמת הגישה המלאה: מיצירת קבוצות ועד אינטגרציה עם שער התשלום. לדוגמה, בפורטל חינוכי יישמנו מנוי בשלוש רמות: Basic, Pro, Enterprise — עם ירושה דרך קבוצות מקוננות. חסכנו עד 40% מזמן הפיתוח בהשוואה לתוספים, מובטח.
ניהול גישה לתוכן: תפריטים, מודולים, מנויים
לכל פריט תפריט יש פרמטר "רמת גישה". הגדירו אותו ל"תוכן פרימיום" — הפריט ייעלם עבור כל מי שאינו מורשה. כך גם לגבי מודולים.
| רמת מנוי | קבוצה | תוכן נגיש |
|---|---|---|
| Basic | חבר Basic | תוכן בסיסי |
| Pro | חבר Pro | תוכן בסיסי + תוכן Pro |
| Enterprise | חבר Enterprise | כל התוכן |
מיושם באמצעות ירושת קבוצות: Pro יורש מ-Basic, Enterprise יורש מ-Pro. בלמעלה מ-30 פרויקטים, גישה זו מכסה 90% מצרכי הגישה ללא תוספים נוספים.
למה ACL של Joomla עדיף על תוספים
תוספים לעיתים קרובות מכבידים, מעלים את LCP ב-20-30% וגורמים להתנגשויות. ACL מובנה פועל ברמת הליבה, אינו דורש תוספים נוספים, ניתן להרחבה בקלות וקל לתחזוקה. הניסיון שלנו של 10+ שנים מראה ש-ACL של Joomla המוגדר כראוי פותר 90% מצרכי הגישה. ללימוד מעמיק יותר, עיינו בתיעוד ACL של Joomla.
טעויות נפוצות בהגדרת ACL
- הגדרת הרשאות ברמת האתר במקום ברמת הרכיב — מובילה לבלבול.
- התעלמות מירושת הרשאות — קבוצה עלולה לא לקבל גישה מצופה.
- אי בדיקת כל התפקידים — נוצרים חורים בסביבת הייצור.
בעיות אלו נפתרות בגישה שיטתית. אנו תמיד מבצעים ביקורת על המבנה הקיים, מתכננים את היררכיית הקבוצות, מגדירים הרשאות ובודקים כל תפקיד לפני המסירה. קבלו ייעוץ על הגדרת ACL ל-Joomla — נציע לכם סכמה אופטימלית לפרויקט שלכם. השירות שלנו כולל אחריות שביעות רצון ל-30 יום.
דוגמה לסכמת גישה מלאה לפורטל חינוכי
עבור פורטל עם קורסים ומנויים, יצרנו שלוש קבוצות: Student, Tutor, Admin. Student יכול לצפות רק בשיעורים חינמיים, Tutor יכול לערוך את השיעורים שלו, ו-Admin הכל. רמות גישה: ציבורי (אורחים), Students (שיעורי מנוי), Staff (אזורים סגורים). ההתקנה ארכה 3 ימים, כולל אינטגרציה עם Stripe.מה כלול בהגדרת ACL ל-Joomla במפתח פתוח
- ביקורת על מבנה ההרשאות הקיים.
- תכנון היררכיית קבוצות ורמות.
- הגדרת הרשאות רכיב.
- אינטגרציה עם מערכת תשלומים.
- בדיקות ומסירת תיעוד.
- הדרכת מנהלים.
לוח זמנים: 1 עד 3 ימים בהתאם למורכבות. תארו את המשימה שלכם — נציע סכמת ACL לפרויקט שלכם. הזמינו הגדרת ACL ל-Joomla וקבלו תיעוד מלא המסביר את כל ההרשאות.







