هذه هي قاعدة المدونة لخدمة حكومة المملكة المتحدة وخدمة الالتماسات في البرلمان.
نوصي باستخدام سطح المكتب Docker للحصول على الإعداد بسرعة. إذا كنت تفضل عدم استخدام Docker ، فستحتاج إلى تثبيت Ruby (3.2+) والعقدة (20+) و PostgreSQL (16+).
docker compose run --rm web rake db:setup
docker compose run --rm web rake epets:countries:load
docker compose run --rm web rails runner 'FetchRegionsJob.perform_now'
docker compose run --rm web rails runner 'FetchConstituenciesJob.perform_now'
docker compose run --rm web rails runner 'FetchDepartmentsJob.perform_now'
docker compose run --rm web rails runner 'Site.enable_signature_counts!(interval: 10)'
docker compose up
بمجرد أن تبدأ الخدمات ، يمكنك الوصول إلى الواجهة الأمامية ، والطرف الخلفي وأي رسائل بريد إلكتروني يتم إرسالها.
قبل إجراء أي اختبارات ، يجب إعداد قاعدة البيانات:
docker compose run --rm web rake db:test:prepare
يمكنك تشغيل جناح الاختبار الكامل باستخدام الأمر التالي:
docker compose run --rm web rake
يمكن تشغيل المواصفات الفردية باستخدام الأمر التالي:
docker compose run --rm web rspec spec/models/parliament_spec.rb
وبالمثل ، يمكن تشغيل ميزات الخيار الفردية باستخدام الأمر التالي:
docker compose run --rm web cucumber features/suzie_views_a_petition.feature
تتم مصادقة بوابة الاعتدال باستخدام جوهرة Omniauth وتنفذ غلافًا للضوء حول الاستراتيجيات بحيث يمكن دعم تكوينات متعددة لاستراتيجية ، على سبيل المثال مزودو هوية SAML.
يحتوي config/sso.yml
على تكوين لاستراتيجية Developer
للتطوير المحلي الذي لا ينبغي استخدامه في الإنتاج. يوضح تكوين الاختبار في الملف كيف سيتم تكوين SAML IDP النموذجي.
هناك أربع سمات رئيسية يجب إرجاعها في تجزئة auth_info
omniauth ، هذه هي first_name
و last_name
email
groups
. تعمل سمة email
بمثابة UID للمستخدم وتتحكم سمة groups
في الدور الذي تم تعيينه.
سمات التكوين هي:
اسم
هذه سمة مطلوبة ويجب أن تكون فريدة من نوعها. كما يجب أن يكون مناسبًا للاستخدام في عنوان URL لأنه يشكل جزءًا من عنوان URL للاتصال لـ Omniauth.
الاستراتيجية
هذه هي استراتيجية Omniauth لاستخدامها كفئة الوالدين لمزود الهوية.
المجالات
قائمة مجالات البريد الإلكتروني التي يجب استخدامها مع مزود الهوية هذا ، على سبيل المثال
domains :
- " example.com "
أدوار
يتحكم في رسم خرائط groups
إلى الدور المعين ، على سبيل المثال
roles :
sysadmin :
- " System Administrators "
moderator :
- " Petition Moderators "
reviewer :
- " Petition Reviewers "
الإعداد الافتراضي لأي من الأدوار الثلاثة هو مجموعة فارغة ، لذا إذا تم استخدام مزود الهوية فقط لأحد الأدوار ، فلا داعي لتكوين الآخرين.
تكوين
هذا هو التكوين الذي يتم تمريره إلى استراتيجية Omniauth ويجب أن يكون تجزئة للخيارات الموثقة التي تدعمها الاستراتيجية.