commit
b35df95713
20 changed files with 225 additions and 134 deletions
|
@ -276,6 +276,8 @@ class ApplicationController < ActionController::Base
|
||||||
matomo = Rails.application.secrets.matomo
|
matomo = Rails.application.secrets.matomo
|
||||||
|
|
||||||
{
|
{
|
||||||
|
cookie_domain: matomo[:cookie_domain],
|
||||||
|
domain: matomo[:domain],
|
||||||
enabled: matomo[:enabled],
|
enabled: matomo[:enabled],
|
||||||
host: matomo[:host],
|
host: matomo[:host],
|
||||||
key: matomo[:client_key]
|
key: matomo[:client_key]
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
const { enabled, host, key } = gon.matomo || {};
|
const { cookieDomain, domain, enabled, host, key } = gon.matomo || {};
|
||||||
|
|
||||||
if (enabled) {
|
if (enabled) {
|
||||||
window._paq = window._paq || [];
|
window._paq = window._paq || [];
|
||||||
|
@ -10,8 +10,8 @@ if (enabled) {
|
||||||
// Configure Matomo analytics
|
// Configure Matomo analytics
|
||||||
//
|
//
|
||||||
|
|
||||||
window._paq.push(['setCookieDomain', '*.www.demarches-simplifiees.fr']);
|
window._paq.push(['setCookieDomain', cookieDomain]);
|
||||||
window._paq.push(['setDomains', ['*.www.demarches-simplifiees.fr']]);
|
window._paq.push(['setDomains', [domain]]);
|
||||||
// Don’t store any cookies or send any tracking request when the "Do Not Track" browser setting is enabled.
|
// Don’t store any cookies or send any tracking request when the "Do Not Track" browser setting is enabled.
|
||||||
window._paq.push(['setDoNotTrack', true]);
|
window._paq.push(['setDoNotTrack', true]);
|
||||||
// When enabling external link tracking, consider that it will also report links to attachments.
|
// When enabling external link tracking, consider that it will also report links to attachments.
|
||||||
|
|
|
@ -1,18 +1,18 @@
|
||||||
class ClamavService
|
class ClamavService
|
||||||
def self.safe_file?(file_path)
|
def self.safe_file?(file_path)
|
||||||
if Rails.env.development?
|
return true if !Rails.configuration.x.clamav.enabled
|
||||||
return true
|
|
||||||
end
|
|
||||||
|
|
||||||
FileUtils.chmod(0666, file_path)
|
FileUtils.chmod(0666, file_path)
|
||||||
|
|
||||||
client = ClamAV::Client.new
|
client = ClamAV::Client.new
|
||||||
response = client.execute(ClamAV::Commands::ScanCommand.new(file_path)).first
|
response = client.execute(ClamAV::Commands::ScanCommand.new(file_path)).first
|
||||||
if response.class == ClamAV::SuccessResponse
|
|
||||||
|
case response
|
||||||
|
when ClamAV::SuccessResponse
|
||||||
true
|
true
|
||||||
elsif response.class == ClamAV::VirusResponse
|
when ClamAV::VirusResponse
|
||||||
false
|
false
|
||||||
elsif response.class == ClamAV::ErrorResponse
|
when ClamAV::ErrorResponse
|
||||||
raise "ClamAV ErrorResponse : #{response.error_str}"
|
raise "ClamAV ErrorResponse : #{response.error_str}"
|
||||||
else
|
else
|
||||||
raise "ClamAV unkown response #{response.class.name}"
|
raise "ClamAV unkown response #{response.class.name}"
|
||||||
|
|
|
@ -23,9 +23,7 @@
|
||||||
= button_to repousser_expiration_instructeur_dossier_path(dossier.procedure, dossier), class: 'button mt-2', id: 'test-instructeur-repousser-expiration' do
|
= button_to repousser_expiration_instructeur_dossier_path(dossier.procedure, dossier), class: 'button mt-2', id: 'test-instructeur-repousser-expiration' do
|
||||||
%span.icon.standby
|
%span.icon.standby
|
||||||
= t('instructeurs.dossiers.header.banner.button_delay_expiration')
|
= t('instructeurs.dossiers.header.banner.button_delay_expiration')
|
||||||
|
- elsif dossier.en_instruction? && dossier.procedure.procedure_expires_when_termine_enabled
|
||||||
|
|
||||||
- else
|
|
||||||
%p.expires_at_en_instruction
|
%p.expires_at_en_instruction
|
||||||
%small= t("shared.dossiers.header.expires_at.en_instruction")
|
%small= t("shared.dossiers.header.expires_at.en_instruction")
|
||||||
|
|
||||||
|
|
51
app/views/root/_testimonials.html.haml
Normal file
51
app/views/root/_testimonials.html.haml
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
.landing-panel
|
||||||
|
.container
|
||||||
|
%h2.landing-panel-title Ce que les utilisateurs pensent du service
|
||||||
|
|
||||||
|
%ul.quotes
|
||||||
|
%li.quote
|
||||||
|
%img.quote-quotation-mark{ :src => image_url("landing/testimonials/quotation-mark.svg"), alt: "" }
|
||||||
|
.quote-content-wrapper
|
||||||
|
%p.quote-content
|
||||||
|
Les échanges avec les usagers sont facilités, ce qui permet de réduire les délais d’instructions et de gagner en efficacité.
|
||||||
|
|
||||||
|
%p.quote-author
|
||||||
|
%span.quote-author-name Elodie Le Rhun
|
||||||
|
%br
|
||||||
|
Cheffe de bureau, DRIEA Ile-de-France
|
||||||
|
|
||||||
|
%li.quote
|
||||||
|
%img.quote-quotation-mark{ :src => image_url("landing/testimonials/quotation-mark.svg"), alt: "" }
|
||||||
|
.quote-content-wrapper
|
||||||
|
%p.quote-content
|
||||||
|
Un service qui garantit une économie de temps et beaucoup moins de manipulations des dossiers.
|
||||||
|
|
||||||
|
%p.quote-author
|
||||||
|
%span.quote-author-name Nadja Briki
|
||||||
|
%br
|
||||||
|
Déléguée de la Préfète du Pas-de-Calais
|
||||||
|
|
||||||
|
%ul.quotes
|
||||||
|
%li.quote
|
||||||
|
%img.quote-quotation-mark{ :src => image_url("landing/testimonials/quotation-mark.svg"), alt: "" }
|
||||||
|
.quote-content-wrapper
|
||||||
|
%p.quote-content
|
||||||
|
Parfait, cela fonctionne très bien ! Merci encore pour votre réactivité.
|
||||||
|
|
||||||
|
%p.quote-author
|
||||||
|
%span.quote-author-name Max A.
|
||||||
|
%br
|
||||||
|
à notre service support
|
||||||
|
|
||||||
|
%li.quote
|
||||||
|
%img.quote-quotation-mark{ :src => image_url("landing/testimonials/quotation-mark.svg"), alt: "" }
|
||||||
|
.quote-content-wrapper
|
||||||
|
%p.quote-content
|
||||||
|
★★★★★
|
||||||
|
%br
|
||||||
|
Eh les cocos, il y a la télé-procédure
|
||||||
|
|
||||||
|
%p.quote-author
|
||||||
|
%span.quote-author-name Hisham M.
|
||||||
|
%br
|
||||||
|
sur le site de la DRIEA
|
37
app/views/root/_users.html.haml
Normal file
37
app/views/root/_users.html.haml
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
.landing-panel.users-panel
|
||||||
|
.container
|
||||||
|
%h2.landing-panel-title Ils utilisent déjà #{APPLICATION_NAME}
|
||||||
|
|
||||||
|
%ul.users
|
||||||
|
%li.user
|
||||||
|
= link_to "https://www.ecologique-solidaire.gouv.fr/", target: :blank, rel: "noopener noreferrer" do
|
||||||
|
%img.user-image{ :src => image_url("landing/users/mtes.jpg"), alt: "Ministère de la Transition Écologique et Solidaire" }
|
||||||
|
%li.user
|
||||||
|
= link_to "https://www.iledefrance.fr/", target: :blank, rel: "noopener noreferrer" do
|
||||||
|
%img.user-image{ :src => image_url("landing/users/region-idf.jpg"), alt: "Région Île-de-France" }
|
||||||
|
%li.user
|
||||||
|
= link_to "http://www.artisanat.fr/", target: :blank, rel: "noopener noreferrer" do
|
||||||
|
%img.user-image{ :src => image_url("landing/users/chambres-de-metiers.jpg"), alt: "Chambres des Métiers et de l'Artisanat" }
|
||||||
|
%li.user
|
||||||
|
= link_to "http://www.cci.fr/", target: :blank, rel: "noopener noreferrer" do
|
||||||
|
%img.user-image{ :src => image_url("landing/users/cci.jpg"), alt: "CCI de France" }
|
||||||
|
%li.user
|
||||||
|
= link_to "http://www.driea.ile-de-france.developpement-durable.gouv.fr/", target: :blank, rel: "noopener noreferrer" do
|
||||||
|
%img.user-image{ :src => image_url("landing/users/driea-idf.jpg"), alt: "Direction Régionale et Interdépartementale de l'Équipement et de l'Aménagement" }
|
||||||
|
|
||||||
|
%ul.users
|
||||||
|
%li.user
|
||||||
|
= link_to "https://www.debatpublic.fr/", target: :blank, rel: "noopener noreferrer" do
|
||||||
|
%img.user-image{ :src => image_url("landing/users/cndp.jpg"), alt: "Commission Nationale du Débat Public" }
|
||||||
|
%li.user
|
||||||
|
= link_to "https://www.iledefrance.ars.sante.fr/", target: :blank, rel: "noopener noreferrer" do
|
||||||
|
%img.user-image{ :src => image_url("landing/users/ars-idf.jpg"), alt: "Agence Régionale de Santé d’Île-de-France" }
|
||||||
|
%li.user
|
||||||
|
= link_to "http://www.franceagrimer.fr/", target: :blank, rel: "noopener noreferrer" do
|
||||||
|
%img.user-image{ :src => image_url("landing/users/france-agrimer.jpg"), alt: "FranceAgrimer" }
|
||||||
|
%li.user
|
||||||
|
= link_to "http://www.rhone.gouv.fr/", target: :blank, rel: "noopener noreferrer" do
|
||||||
|
%img.user-image{ :src => image_url("landing/users/prefecture-rhone.jpg"), alt: "Préfecture de la région Rhône-Alpes" }
|
||||||
|
%li.user
|
||||||
|
= link_to "http://www.lillemetropole.fr/", target: :blank, rel: "noopener noreferrer" do
|
||||||
|
%img.user-image{ :src => image_url("landing/users/mel.jpg"), alt: "Métropole Européenne de Lille" }
|
|
@ -82,57 +82,7 @@
|
||||||
%br
|
%br
|
||||||
à l'ensemble des services de l'État plateforme
|
à l'ensemble des services de l'État plateforme
|
||||||
|
|
||||||
.landing-panel
|
= render partial: "root/testimonials" if LANDING_TESTIMONIALS_ENABLED
|
||||||
.container
|
|
||||||
%h2.landing-panel-title Ce que les utilisateurs pensent du service
|
|
||||||
|
|
||||||
%ul.quotes
|
|
||||||
%li.quote
|
|
||||||
%img.quote-quotation-mark{ :src => image_url("landing/testimonials/quotation-mark.svg"), alt: "" }
|
|
||||||
.quote-content-wrapper
|
|
||||||
%p.quote-content
|
|
||||||
Les échanges avec les usagers sont facilités, ce qui permet de réduire les délais d’instructions et de gagner en efficacité.
|
|
||||||
|
|
||||||
%p.quote-author
|
|
||||||
%span.quote-author-name Elodie Le Rhun
|
|
||||||
%br
|
|
||||||
Cheffe de bureau, DRIEA Ile-de-France
|
|
||||||
|
|
||||||
%li.quote
|
|
||||||
%img.quote-quotation-mark{ :src => image_url("landing/testimonials/quotation-mark.svg"), alt: "" }
|
|
||||||
.quote-content-wrapper
|
|
||||||
%p.quote-content
|
|
||||||
Un service qui garantit une économie de temps et beaucoup moins de manipulations des dossiers.
|
|
||||||
|
|
||||||
%p.quote-author
|
|
||||||
%span.quote-author-name Nadja Briki
|
|
||||||
%br
|
|
||||||
Déléguée de la Préfète du Pas-de-Calais
|
|
||||||
|
|
||||||
%ul.quotes
|
|
||||||
%li.quote
|
|
||||||
%img.quote-quotation-mark{ :src => image_url("landing/testimonials/quotation-mark.svg"), alt: "" }
|
|
||||||
.quote-content-wrapper
|
|
||||||
%p.quote-content
|
|
||||||
Parfait, cela fonctionne très bien ! Merci encore pour votre réactivité.
|
|
||||||
|
|
||||||
%p.quote-author
|
|
||||||
%span.quote-author-name Max A.
|
|
||||||
%br
|
|
||||||
à notre service support
|
|
||||||
|
|
||||||
%li.quote
|
|
||||||
%img.quote-quotation-mark{ :src => image_url("landing/testimonials/quotation-mark.svg"), alt: "" }
|
|
||||||
.quote-content-wrapper
|
|
||||||
%p.quote-content
|
|
||||||
★★★★★
|
|
||||||
%br
|
|
||||||
Eh les cocos, il y a la télé-procédure
|
|
||||||
|
|
||||||
%p.quote-author
|
|
||||||
%span.quote-author-name Hisham M.
|
|
||||||
%br
|
|
||||||
sur le site de la DRIEA
|
|
||||||
|
|
||||||
- cache "numbers-panel", :expires_in => 3.hours do
|
- cache "numbers-panel", :expires_in => 3.hours do
|
||||||
.landing-panel.numbers-panel
|
.landing-panel.numbers-panel
|
||||||
|
@ -161,43 +111,7 @@
|
||||||
%br<>
|
%br<>
|
||||||
des délais de traitement
|
des délais de traitement
|
||||||
|
|
||||||
.landing-panel.users-panel
|
= render partial: "root/users" if LANDING_USERS_ENABLED
|
||||||
.container
|
|
||||||
%h2.landing-panel-title Ils utilisent déjà #{APPLICATION_NAME}
|
|
||||||
|
|
||||||
%ul.users
|
|
||||||
%li.user
|
|
||||||
= link_to "https://www.ecologique-solidaire.gouv.fr/", target: :blank, rel: "noopener noreferrer" do
|
|
||||||
%img.user-image{ :src => image_url("landing/users/mtes.jpg"), alt: "Ministère de la Transition Écologique et Solidaire" }
|
|
||||||
%li.user
|
|
||||||
= link_to "https://www.iledefrance.fr/", target: :blank, rel: "noopener noreferrer" do
|
|
||||||
%img.user-image{ :src => image_url("landing/users/region-idf.jpg"), alt: "Région Île-de-France" }
|
|
||||||
%li.user
|
|
||||||
= link_to "http://www.artisanat.fr/", target: :blank, rel: "noopener noreferrer" do
|
|
||||||
%img.user-image{ :src => image_url("landing/users/chambres-de-metiers.jpg"), alt: "Chambres des Métiers et de l'Artisanat" }
|
|
||||||
%li.user
|
|
||||||
= link_to "http://www.cci.fr/", target: :blank, rel: "noopener noreferrer" do
|
|
||||||
%img.user-image{ :src => image_url("landing/users/cci.jpg"), alt: "CCI de France" }
|
|
||||||
%li.user
|
|
||||||
= link_to "http://www.driea.ile-de-france.developpement-durable.gouv.fr/", target: :blank, rel: "noopener noreferrer" do
|
|
||||||
%img.user-image{ :src => image_url("landing/users/driea-idf.jpg"), alt: "Direction Régionale et Interdépartementale de l'Équipement et de l'Aménagement" }
|
|
||||||
|
|
||||||
%ul.users
|
|
||||||
%li.user
|
|
||||||
= link_to "https://www.debatpublic.fr/", target: :blank, rel: "noopener noreferrer" do
|
|
||||||
%img.user-image{ :src => image_url("landing/users/cndp.jpg"), alt: "Commission Nationale du Débat Public" }
|
|
||||||
%li.user
|
|
||||||
= link_to "https://www.iledefrance.ars.sante.fr/", target: :blank, rel: "noopener noreferrer" do
|
|
||||||
%img.user-image{ :src => image_url("landing/users/ars-idf.jpg"), alt: "Agence Régionale de Santé d’Île-de-France" }
|
|
||||||
%li.user
|
|
||||||
= link_to "http://www.franceagrimer.fr/", target: :blank, rel: "noopener noreferrer" do
|
|
||||||
%img.user-image{ :src => image_url("landing/users/france-agrimer.jpg"), alt: "FranceAgrimer" }
|
|
||||||
%li.user
|
|
||||||
= link_to "http://www.rhone.gouv.fr/", target: :blank, rel: "noopener noreferrer" do
|
|
||||||
%img.user-image{ :src => image_url("landing/users/prefecture-rhone.jpg"), alt: "Préfecture de la région Rhône-Alpes" }
|
|
||||||
%li.user
|
|
||||||
= link_to "http://www.lillemetropole.fr/", target: :blank, rel: "noopener noreferrer" do
|
|
||||||
%img.user-image{ :src => image_url("landing/users/mel.jpg"), alt: "Métropole Européenne de Lille" }
|
|
||||||
|
|
||||||
.landing-panel.cta-panel-2
|
.landing-panel.cta-panel-2
|
||||||
.container
|
.container
|
||||||
|
|
|
@ -19,9 +19,7 @@
|
||||||
= button_to users_dossier_repousser_expiration_path(dossier), class: 'button mt-2', id: 'test-user-repousser-expiration' do
|
= button_to users_dossier_repousser_expiration_path(dossier), class: 'button mt-2', id: 'test-user-repousser-expiration' do
|
||||||
%span.icon.standby
|
%span.icon.standby
|
||||||
= t('users.dossiers.header.banner.button_delay_expiration', duree_conservation_dossiers_dans_ds: dossier.procedure.duree_conservation_dossiers_dans_ds)
|
= t('users.dossiers.header.banner.button_delay_expiration', duree_conservation_dossiers_dans_ds: dossier.procedure.duree_conservation_dossiers_dans_ds)
|
||||||
|
- elsif dossier.en_instruction? && dossier.procedure.procedure_expires_when_termine_enabled
|
||||||
|
|
||||||
- else
|
|
||||||
%p.expires_at_en_instruction
|
%p.expires_at_en_instruction
|
||||||
%small= t("shared.dossiers.header.expires_at.en_instruction")
|
%small= t("shared.dossiers.header.expires_at.en_instruction")
|
||||||
|
|
||||||
|
|
|
@ -76,5 +76,9 @@ module TPS
|
||||||
}
|
}
|
||||||
|
|
||||||
config.skylight.probes += [:graphql]
|
config.skylight.probes += [:graphql]
|
||||||
|
|
||||||
|
# Custom Configuration
|
||||||
|
# @see https://guides.rubyonrails.org/configuring.html#custom-configuration
|
||||||
|
config.x.clamav.enabled = ENV.fetch("CLAMAV_ENABLED", "enabled") == "enabled"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -28,8 +28,16 @@ BASIC_AUTH_ENABLED="disabled"
|
||||||
BASIC_AUTH_USERNAME=""
|
BASIC_AUTH_USERNAME=""
|
||||||
BASIC_AUTH_PASSWORD=""
|
BASIC_AUTH_PASSWORD=""
|
||||||
|
|
||||||
# Object Storage for attachments
|
# ActiveStorage service to use for attached files.
|
||||||
FOG_ENABLED="disabled"
|
# Possible values:
|
||||||
|
# - "local": store files on the local filesystem
|
||||||
|
# - "amazon": store files remotely on an S3 storage service
|
||||||
|
# - "openstack": store files remotely on an OpenStack storage service
|
||||||
|
#
|
||||||
|
# (See config/storage.yml for the configuration of each service.)
|
||||||
|
ACTIVE_STORAGE_SERVICE="local"
|
||||||
|
|
||||||
|
# Configuration for the OpenStack storage service (if enabled)
|
||||||
FOG_OPENSTACK_API_KEY=""
|
FOG_OPENSTACK_API_KEY=""
|
||||||
FOG_OPENSTACK_USERNAME=""
|
FOG_OPENSTACK_USERNAME=""
|
||||||
FOG_OPENSTACK_URL=""
|
FOG_OPENSTACK_URL=""
|
||||||
|
@ -67,6 +75,8 @@ SENTRY_DSN_JS=""
|
||||||
|
|
||||||
# External service: Matomo web analytics
|
# External service: Matomo web analytics
|
||||||
MATOMO_ENABLED="disabled"
|
MATOMO_ENABLED="disabled"
|
||||||
|
MATOMO_COOKIE_DOMAIN="*.www.demarches-simplifiees.fr"
|
||||||
|
MATOMO_DOMAIN="*.www.demarches-simplifiees.fr"
|
||||||
MATOMO_ID=""
|
MATOMO_ID=""
|
||||||
MATOMO_HOST="matomo.example.org"
|
MATOMO_HOST="matomo.example.org"
|
||||||
|
|
||||||
|
@ -88,11 +98,17 @@ SENDINBLUE_BALANCING="disabled"
|
||||||
SENDINBLUE_BALANCING_VALUE="50"
|
SENDINBLUE_BALANCING_VALUE="50"
|
||||||
|
|
||||||
# Alternate SMTP Provider: Mailtrap (mail catcher for staging environments)
|
# Alternate SMTP Provider: Mailtrap (mail catcher for staging environments)
|
||||||
# When enabled, all emails will be sent using this provided
|
# When enabled, all emails will be sent using this provider
|
||||||
MAILTRAP_ENABLED="disabled"
|
MAILTRAP_ENABLED="disabled"
|
||||||
MAILTRAP_USERNAME=""
|
MAILTRAP_USERNAME=""
|
||||||
MAILTRAP_PASSWORD=""
|
MAILTRAP_PASSWORD=""
|
||||||
|
|
||||||
|
# Alternative SMTP Provider: Mailcatcher (Catches mail and serves it through a dream.)
|
||||||
|
# When enabled, all emails will be sent using this provider
|
||||||
|
MAILCATCHER_ENABLED="disabled"
|
||||||
|
MAILCATCHER_HOST=""
|
||||||
|
MAILCATCHER_PORT=""
|
||||||
|
|
||||||
# External service: live chat for admins (specific to démarches-simplifiées.fr)
|
# External service: live chat for admins (specific to démarches-simplifiées.fr)
|
||||||
CRISP_ENABLED="disabled"
|
CRISP_ENABLED="disabled"
|
||||||
CRISP_CLIENT_KEY=""
|
CRISP_CLIENT_KEY=""
|
||||||
|
@ -138,3 +154,6 @@ ENCRYPTION_SERVICE_SALT=""
|
||||||
# Salt for invisible_captcha session data.
|
# Salt for invisible_captcha session data.
|
||||||
# Must be the same value for all app instances behind a load-balancer.
|
# Must be the same value for all app instances behind a load-balancer.
|
||||||
INVISIBLE_CAPTCHA_SECRET="kikooloool"
|
INVISIBLE_CAPTCHA_SECRET="kikooloool"
|
||||||
|
|
||||||
|
# Clamav antivirus usage
|
||||||
|
CLAMAV_ENABLED="disabled"
|
||||||
|
|
|
@ -102,3 +102,7 @@ MATOMO_IFRAME_URL="https://matomo.example.org/index.php?module=CoreAdminHome&act
|
||||||
# PROVIDER_LOGO_ALT="Logo DINUM"
|
# PROVIDER_LOGO_ALT="Logo DINUM"
|
||||||
# PROVIDER_LOGO_HEIGHT="161"
|
# PROVIDER_LOGO_HEIGHT="161"
|
||||||
# PROVIDER_LOGO_WIDTH="138"
|
# PROVIDER_LOGO_WIDTH="138"
|
||||||
|
|
||||||
|
# Landing page sections
|
||||||
|
# LANDING_TESTIMONIALS_ENABLED="enabled"
|
||||||
|
# LANDING_USERS_ENABLED="enabled"
|
||||||
|
|
|
@ -40,7 +40,7 @@ Rails.application.configure do
|
||||||
config.action_mailer.raise_delivery_errors = false
|
config.action_mailer.raise_delivery_errors = false
|
||||||
|
|
||||||
# Store uploaded files on the local file system (see config/storage.yml for options).
|
# Store uploaded files on the local file system (see config/storage.yml for options).
|
||||||
config.active_storage.service = ENV['FOG_ENABLED'] == 'enabled' ? :openstack : :local
|
config.active_storage.service = ENV.fetch("ACTIVE_STORAGE_SERVICE").to_sym
|
||||||
|
|
||||||
# Print deprecation notices to the Rails logger.
|
# Print deprecation notices to the Rails logger.
|
||||||
config.active_support.deprecation = :log
|
config.active_support.deprecation = :log
|
||||||
|
@ -77,15 +77,12 @@ Rails.application.configure do
|
||||||
# Action Mailer settings
|
# Action Mailer settings
|
||||||
config.action_mailer.delivery_method = :letter_opener
|
config.action_mailer.delivery_method = :letter_opener
|
||||||
|
|
||||||
config.action_mailer.default_url_options = {
|
config.action_mailer.default_url_options = { host: ENV.fetch("APP_HOST") }
|
||||||
host: 'localhost',
|
config.action_mailer.asset_host = "http://" + ENV.fetch("APP_HOST")
|
||||||
port: 3000
|
|
||||||
}
|
|
||||||
config.action_mailer.asset_host = "http://" + ENV['APP_HOST']
|
|
||||||
|
|
||||||
Rails.application.routes.default_url_options = {
|
Rails.application.routes.default_url_options = {
|
||||||
host: 'localhost',
|
host: ENV.fetch("APP_HOST"),
|
||||||
port: 3000
|
protocol: :http
|
||||||
}
|
}
|
||||||
|
|
||||||
# Use Content-Security-Policy-Report-Only headers
|
# Use Content-Security-Policy-Report-Only headers
|
||||||
|
@ -111,4 +108,6 @@ Rails.application.configure do
|
||||||
if ENV['IGN_CARTE_REFERER']
|
if ENV['IGN_CARTE_REFERER']
|
||||||
config.hosts << ENV['IGN_CARTE_REFERER']
|
config.hosts << ENV['IGN_CARTE_REFERER']
|
||||||
end
|
end
|
||||||
|
|
||||||
|
config.hosts << ENV.fetch("APP_HOST")
|
||||||
end
|
end
|
||||||
|
|
|
@ -89,7 +89,8 @@ Rails.application.configure do
|
||||||
|
|
||||||
elsif ENV['SENDINBLUE_ENABLED'] == 'enabled'
|
elsif ENV['SENDINBLUE_ENABLED'] == 'enabled'
|
||||||
config.action_mailer.delivery_method = :sendinblue
|
config.action_mailer.delivery_method = :sendinblue
|
||||||
|
elsif ENV['MAILCATCHER_ENABLED'] == 'enabled'
|
||||||
|
config.action_mailer.delivery_method = :mailcatcher
|
||||||
else
|
else
|
||||||
config.action_mailer.delivery_method = :mailjet
|
config.action_mailer.delivery_method = :mailjet
|
||||||
end
|
end
|
||||||
|
@ -106,7 +107,7 @@ Rails.application.configure do
|
||||||
# the I18n.default_locale when a translation cannot be found).
|
# the I18n.default_locale when a translation cannot be found).
|
||||||
config.i18n.fallbacks = true
|
config.i18n.fallbacks = true
|
||||||
|
|
||||||
config.active_storage.service = :openstack
|
config.active_storage.service = ENV.fetch("ACTIVE_STORAGE_SERVICE").to_sym
|
||||||
|
|
||||||
# Send deprecation notices to registered listeners.
|
# Send deprecation notices to registered listeners.
|
||||||
config.active_support.deprecation = :notify
|
config.active_support.deprecation = :notify
|
||||||
|
|
3
config/initializers/landing.rb
Normal file
3
config/initializers/landing.rb
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
# Hide or show the landing page sections
|
||||||
|
LANDING_TESTIMONIALS_ENABLED = ENV.fetch("LANDING_TESTIMONIALS_ENABLED", "enabled") == "enabled"
|
||||||
|
LANDING_USERS_ENABLED = ENV.fetch("LANDING_USERS_ENABLED", "enabled") == "enabled"
|
13
config/initializers/mailcatcher.rb
Normal file
13
config/initializers/mailcatcher.rb
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
if ENV.fetch('MAILCATCHER_ENABLED') == 'enabled'
|
||||||
|
ActiveSupport.on_load(:action_mailer) do
|
||||||
|
module Mailcatcher
|
||||||
|
class SMTP < ::Mail::SMTP; end
|
||||||
|
end
|
||||||
|
|
||||||
|
ActionMailer::Base.add_delivery_method :mailcatcher, Mailcatcher::SMTP
|
||||||
|
ActionMailer::Base.mailcatcher_settings = {
|
||||||
|
address: ENV.fetch("MAILCATCHER_HOST"),
|
||||||
|
port: ENV.fetch("MAILCATCHER_PORT")
|
||||||
|
}
|
||||||
|
end
|
||||||
|
end
|
|
@ -54,6 +54,8 @@ defaults: &defaults
|
||||||
smtp_key: <%= ENV['SENDINBLUE_SMTP_KEY'] %>
|
smtp_key: <%= ENV['SENDINBLUE_SMTP_KEY'] %>
|
||||||
api_v3_key: <%= ENV['SENDINBLUE_API_V3_KEY'] %>
|
api_v3_key: <%= ENV['SENDINBLUE_API_V3_KEY'] %>
|
||||||
matomo:
|
matomo:
|
||||||
|
cookie_domain: "<%= ENV['MATOMO_COOKIE_DOMAIN'] %>"
|
||||||
|
domain: "<%= ENV['MATOMO_DOMAIN'] %>"
|
||||||
enabled: <%= ENV['MATOMO_ENABLED'] == 'enabled' %>
|
enabled: <%= ENV['MATOMO_ENABLED'] == 'enabled' %>
|
||||||
host: <%= ENV['MATOMO_HOST'] %>
|
host: <%= ENV['MATOMO_HOST'] %>
|
||||||
client_key: <%= ENV['MATOMO_ID'] %>
|
client_key: <%= ENV['MATOMO_ID'] %>
|
||||||
|
|
|
@ -4,12 +4,20 @@ describe ClamavService do
|
||||||
|
|
||||||
subject { ClamavService.safe_file?(path_file) }
|
subject { ClamavService.safe_file?(path_file) }
|
||||||
|
|
||||||
|
context "when ClamAV is enabled" do
|
||||||
before do
|
before do
|
||||||
|
@saved_clamav = Rails.configuration.x.clamav.enabled
|
||||||
|
Rails.configuration.x.clamav.enabled = true
|
||||||
|
|
||||||
client = double("ClamAV::Client", execute: [response])
|
client = double("ClamAV::Client", execute: [response])
|
||||||
allow(ClamAV::Client).to receive(:new).and_return(client)
|
allow(ClamAV::Client).to receive(:new).and_return(client)
|
||||||
allow(FileUtils).to receive(:chmod).with(0666, path_file).and_return(true)
|
allow(FileUtils).to receive(:chmod).with(0666, path_file).and_return(true)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
after do
|
||||||
|
Rails.configuration.x.clamav.enabled = @saved_clamav
|
||||||
|
end
|
||||||
|
|
||||||
context 'When response type is ClamAV::SuccessResponse' do
|
context 'When response type is ClamAV::SuccessResponse' do
|
||||||
let(:response) { ClamAV::SuccessResponse.new("OK") }
|
let(:response) { ClamAV::SuccessResponse.new("OK") }
|
||||||
it { expect(subject).to eq(true) }
|
it { expect(subject).to eq(true) }
|
||||||
|
@ -25,4 +33,22 @@ describe ClamavService do
|
||||||
it { expect { subject }.to raise_error("ClamAV ErrorResponse : File not found") }
|
it { expect { subject }.to raise_error("ClamAV ErrorResponse : File not found") }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context "when ClamAV is disabled" do
|
||||||
|
before do
|
||||||
|
@saved_clamav = Rails.configuration.x.clamav.enabled
|
||||||
|
Rails.configuration.x.clamav.enabled = false
|
||||||
|
end
|
||||||
|
|
||||||
|
after do
|
||||||
|
Rails.configuration.x.clamav.enabled = @saved_clamav
|
||||||
|
end
|
||||||
|
|
||||||
|
it do
|
||||||
|
expect(ClamAV::Client).not_to receive(:new)
|
||||||
|
expect(FileUtils).not_to receive(:chmod)
|
||||||
|
expect(subject).to eq(true)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -23,6 +23,16 @@ describe 'instructeur/dossiers/expiration_banner.html.haml', type: :view do
|
||||||
it 'render estimated expiration date' do
|
it 'render estimated expiration date' do
|
||||||
expect(subject).not_to have_selector('.expires_at')
|
expect(subject).not_to have_selector('.expires_at')
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'with dossier.en_instruction?' do
|
||||||
|
let(:state) { :en_instruction }
|
||||||
|
let(:attributes) { {} }
|
||||||
|
|
||||||
|
it 'does not render estimated expiration date' do
|
||||||
|
expect(subject).not_to have_selector('p.expires_at_en_instruction',
|
||||||
|
text: I18n.t("shared.dossiers.header.expires_at.en_instruction"))
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'with procedure having procedure_expires_when_termine_enabled enabled' do
|
context 'with procedure having procedure_expires_when_termine_enabled enabled' do
|
||||||
|
|
|
@ -24,6 +24,16 @@ describe 'users/dossiers/expiration_banner.html.haml', type: :view do
|
||||||
it 'render estimated expiration date' do
|
it 'render estimated expiration date' do
|
||||||
expect(subject).not_to have_selector('.expires_at')
|
expect(subject).not_to have_selector('.expires_at')
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'with dossier.en_instruction?' do
|
||||||
|
let(:state) { :en_instruction }
|
||||||
|
let(:attributes) { {} }
|
||||||
|
|
||||||
|
it 'does not render estimated expiration date' do
|
||||||
|
expect(subject).not_to have_selector('p.expires_at_en_instruction',
|
||||||
|
text: I18n.t("shared.dossiers.header.expires_at.en_instruction"))
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'with procedure having procedure_expires_when_termine_enabled enabled' do
|
context 'with procedure having procedure_expires_when_termine_enabled enabled' do
|
||||||
|
|
|
@ -6345,9 +6345,9 @@ folder-walker@^3.2.0:
|
||||||
from2 "^2.1.0"
|
from2 "^2.1.0"
|
||||||
|
|
||||||
follow-redirects@^1.0.0:
|
follow-redirects@^1.0.0:
|
||||||
version "1.14.7"
|
version "1.14.8"
|
||||||
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.7.tgz#2004c02eb9436eee9a21446a6477debf17e81685"
|
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.8.tgz#016996fb9a11a100566398b1c6839337d7bfa8fc"
|
||||||
integrity sha512-+hbxoLbFMbRKDwohX8GkTataGqO6Jb7jGwpAlwgy2bIz25XtRm7KEzJM76R1WiNT5SwZkX4Y75SwBolkpmE7iQ==
|
integrity sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA==
|
||||||
|
|
||||||
for-in@^1.0.2:
|
for-in@^1.0.2:
|
||||||
version "1.0.2"
|
version "1.0.2"
|
||||||
|
|
Loading…
Reference in a new issue