نظام صلاحيات مفتوح المصدر
vue-nuxt-permission
نموذج صلاحيات واحد لتطبيقات Vue 3 وNuxt 3/4: directive للقوالب، وguards للمسارات، وcomposable للمنطق، وكلها تقرأ من نفس مصدر البيانات.
المشكلة
لوحات التحكم المبنية على الصلاحيات حسب الدور تميل إلى توزيع فحوصات الصلاحيات بين القوالب وحراس المسارات ومنطق الـ store، ولكل منها قواعد مختلفة قليلًا. وعندما يغيّر الـ backend اسم صلاحية، يتوقف بعض هذه الفحوصات عن العمل دون أي تنبيه.
البنية
محرّك واحد يحدد الصلاحيات بسبعة أنماط مطابقة: exact وand وor وnot وstartWith وendWith وregex. والـ directive v-permission وحراس المسارات والـ composable usePermission() كلها محوّلات رفيعة فوقه. ووحدة Nuxt تسجّل كل ذلك وتستورد الـ composable تلقائيًا.
- الاستخدام
- القوالبv-permission
- المساراتguards
- المنطقusePermission()
- المحرّك
- المطابقةand · or · not · regex
- التخزين المؤقت
- المصدر
- تحميل غير متزامنAPI
- الحفظencrypted payload
القرارات
الصلاحيات يمكن تحميلها بشكل غير متزامن من API ويتم تخزينها مؤقتًا، والبيانات المحفوظة تدعم دوال فك التشفير، فالتطبيقات التي تستقبل صلاحيات مشفّرة لا تحتاج كودًا إضافيًا للربط.
النتيجة
منشور على npm مع موقع توثيق ومجموعة اختبارات، وجاء بعد حزمة سابقة لي كانت تقتصر على الـ directive (vue-permission-directive).
