demarches-normaliennes/config/initializers/flipper.rb

47 lines
1.1 KiB
Ruby
Raw Normal View History

2019-07-04 12:36:17 +02:00
Flipper.configure do |config|
config.default do
Flipper.new(Flipper::Adapters::ActiveRecord.new)
end
end
Flipper.register('Administrateurs') do |user|
user.administrateur_id.present?
end
Flipper.register('Instructeurs') do |user|
user.instructeur_id.present?
end
# This setup is primarily for first deployment, because consequently
# we can add new features from the Web UI. However when the new DB is created
# this will immediately migrate the default features to be controlled.
def setup_features(features)
features.each do |feature|
if Flipper.exist?(feature)
return
end
# Disable feature by default
Flipper.disable(feature)
end
end
# A list of features to be deployed on first push
features = [
:administrateur_champ_integer_number,
:administrateur_web_hook,
:insee_api_v3,
:instructeur_bypass_email_login_token,
:instructeur_download_as_zip,
:maintenance_mode,
:mini_profiler,
:operation_log_serialize_subject,
:pre_maintenance_mode,
:xray
]
ActiveSupport.on_load(:active_record) do
if ActiveRecord::Base.connection.data_source_exists? 'flipper_features'
setup_features(features)
end
end