Esta é a base de código do governo do Reino Unido e do Serviço de Petições do Parlamento.
Recomendamos o uso de desktop do Docker para obter a configuração rapidamente. Se você preferir não usar o Docker, precisará de rubi (3.2+), nó (20+) e postgreSQL (16+) instalados.
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
Depois que os serviços começarem, você pode acessar o front -end, o back -end e qualquer e -mail enviado.
Antes de executar quaisquer testes, o banco de dados precisa ser preparado:
docker compose run --rm web rake db:test:prepare
Você pode executar o conjunto de testes completo usando o seguinte comando:
docker compose run --rm web rake
As especificações individuais podem ser executadas usando o seguinte comando:
docker compose run --rm web rspec spec/models/parliament_spec.rb
Da mesma forma, os recursos individuais do pepino podem ser executados usando o seguinte comando:
docker compose run --rm web cucumber features/suzie_views_a_petition.feature
O portal de moderação é autenticado usando o Omniauth Gem e implementa um invólucro de luz em torno de estratégias para que várias configurações de uma estratégia possam ser suportadas, por exemplo, dois ou mais provedores de identidade SAML.
O config/sso.yml
possui uma configuração da estratégia Developer
para o desenvolvimento local, que não deve ser usada na produção. A configuração do teste no arquivo mostra como um IDP SAML típico seria configurado.
Existem quatro atributos principais que precisam ser retornados no hash omniauth auth_info
, sendo estes first_name
, last_name
, email
e groups
. O atributo email
atua como o UID para o usuário e o atributo groups
controla qual a função que eles são atribuídos.
Os atributos de configuração são:
nome
Este é um atributo necessário e deve ser único. Também deve ser adequado para uso em um URL, pois faz parte do URL de retorno de chamada para omniauth.
estratégia
Esta é a estratégia Omniauth a ser usada como classe pai do provedor de identidade.
domínios
A lista de domínios de email para usar com este provedor de identidade, por exemplo,
domains :
- " example.com "
papéis
Controla o mapeamento dos groups
atribui à função atribuída, por exemplo,
roles :
sysadmin :
- " System Administrators "
moderator :
- " Petition Moderators "
reviewer :
- " Petition Reviewers "
O padrão para qualquer uma das três funções é um conjunto vazio; portanto, se um provedor de identidade estiver sendo usado apenas para uma das funções, não há necessidade de configurar os outros.
Config
Esta é a configuração que é passada para a estratégia Omniauth e deve ser um hash das opções documentadas suportadas pela estratégia.