Ini adalah basis kode untuk Layanan Petisi Pemerintah dan Parlemen Inggris.
Kami merekomendasikan menggunakan Docker Desktop untuk mendapatkan pengaturan dengan cepat. Jika Anda lebih suka tidak menggunakan Docker maka Anda akan membutuhkan Ruby (3.2+), Node (20+) dan PostgreSQL (16+) diinstal.
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
Setelah layanan dimulai, Anda dapat mengakses ujung depan, ujung belakang dan email apa pun yang dikirim.
Sebelum menjalankan tes apa pun, basis data harus disiapkan:
docker compose run --rm web rake db:test:prepare
Anda dapat menjalankan suite tes lengkap menggunakan perintah berikut:
docker compose run --rm web rake
Spesifikasi individual dapat dijalankan menggunakan perintah berikut:
docker compose run --rm web rspec spec/models/parliament_spec.rb
Demikian pula, fitur mentimun individu dapat dijalankan menggunakan perintah berikut:
docker compose run --rm web cucumber features/suzie_views_a_petition.feature
Portal moderasi diautentikasi menggunakan permata Omniauth dan mengimplementasikan pembungkus cahaya di sekitar strategi sehingga beberapa konfigurasi strategi dapat didukung, misalnya dua atau lebih penyedia identitas SAML.
config/sso.yml
memiliki konfigurasi strategi Developer
untuk pengembangan lokal yang tidak boleh digunakan dalam produksi. Konfigurasi tes dalam file menunjukkan bagaimana IDP SAML yang khas akan dikonfigurasi.
Ada empat atribut utama yang perlu dikembalikan dalam hash Omniauth auth_info
, ini adalah first_name
, last_name
, email
dan groups
. Atribut email
bertindak sebagai UID untuk pengguna dan atribut groups
mengontrol peran apa yang mereka ditugaskan.
Atribut konfigurasi adalah:
nama
Ini adalah atribut yang diperlukan dan harus unik. Ini juga harus cocok untuk digunakan dalam URL karena membentuk bagian dari URL callback untuk Omniauth.
strategi
Ini adalah strategi Omniauth untuk digunakan sebagai kelas induk untuk penyedia identitas.
Domain
Daftar domain email yang akan digunakan dengan penyedia identitas ini, misalnya
domains :
- " example.com "
peran
Mengontrol pemetaan atribut groups
dengan peran yang ditugaskan, misalnya
roles :
sysadmin :
- " System Administrators "
moderator :
- " Petition Moderators "
reviewer :
- " Petition Reviewers "
Default untuk salah satu dari tiga peran adalah set kosong jadi jika penyedia identitas hanya digunakan untuk salah satu peran maka tidak perlu mengkonfigurasi yang lain.
konfigurasi
Ini adalah konfigurasi yang diteruskan ke strategi Omniauth dan harus menjadi hash dari opsi yang didokumentasikan yang didukung oleh strategi tersebut.