מערכת הרשאות
המערכת משתמשת במודל הרשאות גמיש (RBAC) המאפשר להגדיר במדויק מה כל משתמש (גבאי/מנהל) יכול לעשות. ההרשאות נאכפות ברמת השרת (Guards) וברמת הממשק (UI).
רשימת הרשאות (Permission Enum)
| מזהה הרשאה | תיאור | שימוש במערכת |
|---|---|---|
MANAGE_USERS | ניהול משתמשים | יצירה, עריכה ומחיקת משתמשים. הקצאת תפקידים. |
MANAGE_DEVICES | ניהול מכשירים | הוספת מכשירים, שינוי הגדרות, צפייה בסטטוס. |
MANAGE_CONTENT | ניהול תוכן | עריכת זמני תפילה, הודעות, זמנים, שיעורים, עליות לתורה. |
MANAGE_ALERTS | ניהול התראות | הגדרת חוקים להתראות מערכת. |
MANAGE_REPORTS | צפייה בדוחות | גישה למסך הדוחות והסטטיסטיקות. |
MANAGE_NOTIFICATIONS | ניהול התראות | הגדרת ערוצי תקשורת (אימייל, SMS, WhatsApp). |
MANAGE_SYSTEM | ניהול מערכת | הרשאת על (Admin) להגדרות ליבה. |
VIEW_DASHBOARD | צפייה בלוח בקרה | גישה בסיסית לדף הבית. |
VIEW_ANALYTICS | צפייה באנליטיקה | גישה לגרפים ונתוני שימוש מתקדמים. |
יישום בקוד
ההרשאות נבדקות באמצעות הדקורטור @Permissions מעל הקונטרולר או הפונקציה:
@Controller('users')
@Permissions(Permission.MANAGE_USERS) // דורש הרשאה לכל הפונקציות בקונטרולר
export class UsersController { ... }
תפקידים (Roles)
המערכת תומכת בתפקידים מובנים המאגדים מספר הרשאות:
- Admin (מנהל על): בעל כל ההרשאות. יכול לבצע Impersonation (התחזות) למשתמשים אחרים.
- User (גבאי): מנהל את בית הכנסת שלו בלבד. הרשאות
MANAGE_CONTENT,MANAGE_DEVICESמוגבלות ל-Tenant שלו. - Viewer (צופה): הרשאות צפייה בלבד (למשל עבור ועדת ביקורת).
הערה טכנית
בבסיס הנתונים, התפקיד נשמר בשדה role במודל User, וההרשאות הספציפיות בטבלה מקושרת (אם קיימת חריגה מהתפקיד).