نظام إدارة الأذونات الأكثر بساطة، تم تطويره استنادًا إلى Laravel5.5. يرجى التبديل إلى فرع any54
لإصدار Laravel5.4.
Any
عبارة عن وحدة خلفية جديدة ومبسطة للإدارة، بما في ذلك أبسط التحكم في الأذونات. عندما كتبت نظام الأذونات لأول مرة، قرأت الكود المصدري الذي كتبه أجنبي. بناءً على الكود الخاص به، كتبت واجهة خلفية بناءً على Laravel5.2 IAdmin
. هذا هو نظام الأذونات الأصلي للاستخدام العام، تتم كتابة جميع الأذونات في ملف التكوين.
يعمل iDashboard
على تحسين أفكار التصميم وبنية التعليمات البرمجية استنادًا إلى IAdmin
، ويربط الأذونات بأسماء التوجيه، ويمكن للبرامج الوسيطة تحديد أذونات جميع وحدات التحكم. تم تطويره استنادًا إلى Laravel 5.3، والتحسين الوحيد هو ربط الأذونات والأسماء المستعارة للتوجيه، بحيث يمكن استخدام الكود مباشرة بعد كتابته. ومع ذلك، لم يتم حل مشكلة وجود عدد كبير جدًا من ملفات التكوين.
Any
هو مشروع تمت إعادة بنائه بناءً على تجربة iDashboard
في الإصدارات السابقة التي يجب تحديدها بنفسك. هل هناك طريقة لإنشاء الأذونات والحكم عليها تلقائيًا مثل قائمة التحكم بالوصول (ACL). وهذا يقلل بشكل كبير من الحاجة إلى تحديد الأذونات والتكوينات. Any
ولد.
المبدأ الرئيسي لـ Any
هو الحصول على وحدة التحكم (وحدة التحكم) التي يتم الوصول إليها حاليًا والطريقة (الطريقة) بناءً على المسار الذي زاره المستخدم. تضيف وحدة التحكم الطريقة لإنشاء قيمة إذن فريدة من نوعها طريقة معينة. إذا كنت مشرفًا متميزًا، حتى إذا لم يكن لديك هذا الإذن، فسيتم منح الإذن تلقائيًا لدور المشرف المتميز. من أجل تجنب الكثير من استعلامات البرامج الوسيطة، سيتم تخزين نسخة من جميع أذونات المستخدم الحالي في ذاكرة التخزين المؤقت بعد تسجيل دخول المستخدم بنجاح. عند الحكم على الأذونات، يتم الحصول عليها مباشرة من ذاكرة التخزين المؤقت لأي تحديث لأذونات أي دور سيتم تحديث ذاكرة التخزين المؤقت. وبالإضافة إلى ذلك، تم إجراء العديد من التحسينات على التعليمات البرمجية.
هذه مجرد بداية للوظائف الأساسية، ونأمل في الحصول على المزيد من الإلهام
قم بتنزيل كود هذا المشروع محليًا:
git clone https://github.com/lanceWan/any.git
أدخل المشروع وقم بتثبيت composer
:
cd any
composer install
ملف التكوين .env
:
[sudo]cp .env.example .env
انتبه إلى أذونات التنفيذ في Linux وMac!
تكوين قاعدة البيانات:
DB_HOST=localhost
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
ترحيل البيانات:
php artisan migrate --seed
حسنًا، لقد تم تكوين المشروع. ما عليك سوى زيارة الصفحة الرئيسية وتسجيل الدخول. إذا كنت لا تعرف المسار، فيمكنك الانتقال مباشرة إلى ملف routes/web.php
. حساب المسؤول الافتراضي: iwanli
، كلمة المرور: 123456
. إذا قمت بتكوينه على Linux
أو Mac
، فيرجى الانتباه إلى أذونات الأدلة ذات الصلة، ولن أخوض في التفاصيل هنا، استمتع!
لا يمكن فصل تطوير Any
عن تعليقات واقتراحات الجميع. إذا كانت لديك أي أفكار، فيمكنك إرسالها مباشرةً على https://github.com/lanceWan/any/issues.
مجموعة تبادل التعلم Laravel: 312621686