e petitions
1.0.0
這是英國政府和議會請願服務的代碼基礎。
我們建議使用Docker桌面快速進行設置。如果您不想使用Docker,則需要安裝Ruby(3.2+),Node(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 Gem對審核門戶進行身份驗證,並圍繞策略實現輕度包裝器,以便可以支持策略的多種配置,例如兩個或多個SAML身份提供者。
config/sso.yml
具有用於本地開發的Developer
策略的配置,該策略不應在生產中使用。文件中的測試配置顯示瞭如何配置典型的SAML IDP。
Omniauth auth_info
哈希中需要返回四個關鍵屬性,這些屬性是first_name
, last_name
, email
和groups
。 email
屬性充當用戶的UID, groups
屬性控制他們被分配的角色。
配置屬性是:
姓名
這是必需的屬性,必須是唯一的。它也必須適合在URL中使用,因為它構成了omniauth的回調URL的一部分。
戰略
這是用作身份提供者的父類的綜合策略。
域
與此身份提供商一起使用的電子郵件域列表,例如
domains :
- " example.com "
角色
控制groups
的映射歸因於分配的角色,例如
roles :
sysadmin :
- " System Administrators "
moderator :
- " Petition Moderators "
reviewer :
- " Petition Reviewers "
這三個角色中的任何一個的默認值是一個空集,因此,如果僅用於其中一個角色,則無需配置其他角色。
config
這是傳遞給Omniauth策略的配置,應該是該策略支持的記錄選項的哈希。