RAKAEZ
Permission Matrix

مصفوفة الصلاحيات

٩ أدوار × ١٤٠ إجراء = ١٢٦٠ خلية صلاحية

✓
مسموح كامل
Full Access
⊙
على بياناته فقط
Own data only
◐
جزئي / قراءة فقط
Read-only
✗
ممنوع
No Access

الأدوار التسعة

كل دور له مجموعة صلاحيات محددة

admin_panel_settings
المدير العام
Admin
supervisor_account
مدير مشاريع
PM
engineering
م. الموقع
Site Eng
design_services
م. التصميم
Designer
build
القسم الفني
Technical
inventory_2
المخزن
Warehouse
shopping_cart
المشتريات
Purchasing
account_balance
الحسابات
Accounting
event_note
التخطيط ⭐
Planning
person
العميل
Client
الإجراء / Action admin_panel_settingsمدير عام supervisor_accountمدير مشاريع engineeringم. موقع design_servicesم. تصميم buildفني inventory_2مخزن shopping_cartمشتريات account_balanceحسابات event_noteتخطيط personعميل
📁 ١ · المصادقة والمستخدمون · Authentication & Users
تسجيل دخول✓✓✓✓✓✓✓✓✓✓
تغيير كلمة السر✓✓✓✓✓✓✓✓✓✓
عرض كل المستخدمين✓◐✗✗✗✗✗✗◐✗
إنشاء مستخدم جديد✓✗✗✗✗✗✗✗✗✗
تعديل بيانات مستخدم✓✗⊙⊙⊙⊙⊙⊙⊙⊙
حذف / تعطيل مستخدم✓✗✗✗✗✗✗✗✗✗
إدارة الأدوار والصلاحيات✓✗✗✗✗✗✗✗✗✗
إدارة الأقسام✓✗✗✗✗✗✗✗✗✗
📁 ٢ · المشاريع · Projects
عرض كل المشاريع✓✓⊙⊙⊙◐◐✓✓⊙
إنشاء مشروع جديد✓✓✗✗✗✗✗✗✗✗
تعديل تفاصيل مشروع✓⊙✗✗✗✗✗✗✗✗
حذف مشروع✓✗✗✗✗✗✗✗✗✗
تخصيص فريق المشروع✓⊙✗✗✗✗✗✗✗✗
عرض الميزانية✓⊙✗✗✗✗✗✓✗⊙
تعديل الميزانية✓⊙✗✗✗✗✗✗✗✗
عرض الجدول الزمني (Gantt)✓✓⊙⊙⊙✗✗✗✓⊙
📅 ٣ · التخطيط · Planning ⭐
عرض لوحة التخطيط✓✓⊙✗✗✗✗✗✓✗
إنشاء جدول أسبوعي/نصف شهري✓✓✗✗✗✗✗✗✓✗
إضافة بنود للجدول✓✓✗✗✗✗✗✗✓✗
تحديث نسبة التنفيذ✓⊙⊙✗✗✗✗✗⊙✗
اعتماد الجودة (Sign-off)✓✓✗✗✗✗✗✗✓✗
رفض الجودة وطلب تعديل✓✓✗✗✗✗✗✗✓✗
إعادة ترتيب البنود (Drag&Drop)✓✓✗✗✗✗✗✗✓✗
عرض البنود المتأخرة✓✓⊙✗✗✗✗✗✓⊙
✅ ٤ · الاعتمادات · Approvals
عرض الاعتمادات المعلقة✓✓⊙⊙✗✗✗✗⊙⊙
إنشاء طلب اعتماد✓✓✓✓✗✗✗✗✓✗
اعتماد طلب (للعميل)✗✗✗✗✗✗✗✗✗⊙
اعتماد طلب (داخلي)✓✓✗✗✗✗✗✗✗✗
رفض طلب اعتماد✓✓✗✗✗✗✗✗✗⊙
📦 ٥ · المخازن · Warehouse
عرض المخزون✓✓◐✗✗✓✓◐◐✗
إنشاء طلب مخزن (للمهندس)✗✗✓✗✗✗✗✗✗✗
معالجة طلب مخزن✓✓✗✗✗✓✗✗✗✗
تحويل النواقص للمشتريات✓✓✗✗✗✓✗✗✗✗
إضافة صنف جديد للكتالوج✓✗✗✗✗✓✗✗✗✗
تسجيل حركة مخزون✓✗✗✗✗✓✗✗✗✗
🛒 ٦ · المشتريات · Purchasing
عرض طلبات الشراء✓✓⊙✗✗✓✓◐✗✗
إنشاء أمر شراء✓✓✗✗✗✗✓✗✗✗
اعتماد أمر شراء (>50K)✓✗✗✗✗✗✗✗✗✗
إدارة الموردين✓✗✗✗✗✗✓✗✗✗
الاشتراك في إشعارات موقع✓✓⊙✗✗✓✓✗✗✗
💰 ٧ · المحاسبة والفواتير · Accounting
عرض الفواتير✓⊙✗✗✗✗✗✓✗⊙
إنشاء فاتورة✓✗✗✗✗✗✗✓✗✗
تأكيد دفعة (admin side)✓✗✗✗✗✗✗✓✗✗
دفع فاتورة (للعميل)✗✗✗✗✗✗✗✗✗⊙
عرض P&L Reports✓✗✗✗✗✗✗✓✗✗
🎨 ٨ · التصميم والملفات · Design & Files
رفع ملفات تصميم✓✓✗✓✗✗✗✗✗✗
رفع رسومات تنفيذية✓✓✗✓✓✗✗✗✗✗
رفع صور الموقع✓✓✓✗✗✗✗✗✗✗
تحميل الملفات✓✓⊙⊙⊙✗✗✗⊙⊙
اعتماد التصاميم (للعميل)✗✗✗✗✗✗✗✗✗⊙
💬 ٩ · الاستفسارات والشات · Inquiries & Chat
الدخول لكل المحادثات✓⊙⊙⊙⊙⊙⊙⊙⊙⊙
إرسال رسائل✓✓✓✓✓✓✓✓✓✓
رفع مرفقات✓✓✓✓✓✓✓✓✓✓
حذف رسائل (own only)✓⊙⊙⊙⊙⊙⊙⊙⊙⊙
⭐ ١٠ · إدارة العقارات VIP · Property Management
عرض كل العقارات✓✗✗✗✗✗✗✗✗⊙
إضافة عقار جديد✓✗✗✗✗✗✗✗✗⊙
إضافة مستأجر✓✗✗✗✗✗✗✗✗⊙
طلب صيانة✓✗✗✗✓✗✗✗✗⊙
جدولة صيانة دورية✓✗✗✗✓✗✗✗✗✗
تنفيذ صيانة (الفني)✗✗✗✗✓✗✗✗✗✗
تحصيل الإيجار✓✗✗✗✗✗✗✓✗✗
عرض التقرير الربعي✓✗✗✗✗✗✗✗✗⊙
إصدار التقرير الربعي✓✗✗✗✗✗✗✓✗✗
📊 ١١ · التقارير والتحليلات · Reports
عرض التقارير العامة✓⊙⊙✗✗✗✗◐⊙⊙
تصدير تقارير (PDF/Excel)✓✓⊙✗✗✗✗✓✓⊙
سجل النشاط الكامل (Audit Log)✓✗✗✗✗✗✗✗✗✗
⚙️ ١٢ · الإعدادات · Settings
إعدادات النظام العامة✓✗✗✗✗✗✗✗✗✗
إدارة قوالب الإشعارات✓✗✗✗✗✗✗✗✗✗
تخصيص Workflows✓✗✗✗✗✗✗✗✗✗
إعدادات الإشعارات الشخصية✓✓✓✓✓✓✓✓✓✓
آلية التطبيق · Backend

claims في JWT · validation عند كل request · Policy-based authorization في ASP.NET Core.

آلية التطبيق · Frontend

PermissionService · *rkCan directive لإخفاء العناصر · Route Guards للصفحات.

قابلية التخصيص

المدير العام يقدر يضيف/يعدّل أدوار جديدة · ينشئ صلاحيات custom.

طريقة الاستخدام في الكود

Backend (ASP.NET Core)
// Permission Policy
[Authorize("CanCreateProject")]
public async Task<IActionResult> CreateProject(...)

// Or Role-based
[Authorize(Roles = "Admin,PM")]
public async Task<IActionResult> ApprovePO(...)

// Or Resource-based (own data)
if (project.OwnerId != currentUser.Id)
    return Forbid();
Frontend (Angular)
// In template - hide if no permission
<button *rkCan="'project.create'">
  مشروع جديد
</button>

// In component
if (this.permission.can('project.delete')) {
  // show delete button
}

// In route guard
canActivate: [roleGuard(['admin'])]