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策略的配置,应该是该策略支持的记录选项的哈希。