diff --git a/app/controllers/api/features_controller.rb b/app/controllers/api/features_controller.rb index a25b76bdf..87dc47452 100644 --- a/app/controllers/api/features_controller.rb +++ b/app/controllers/api/features_controller.rb @@ -9,7 +9,7 @@ def index school = current_user&.schools&.first enabled_feature_keys = Flipper.features - .select { |feature| Flipper.enabled?(feature.key, school) } + .select { |feature| Flipper.enabled?(feature.key, current_user, school) } .map(&:key) render json: { enabled: enabled_feature_keys } diff --git a/app/models/user.rb b/app/models/user.rb index 0c8957b1e..f11764590 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -3,6 +3,7 @@ class User include ActiveModel::Serialization include ActiveModel::Model + include Flipper::Identifier EXPERIENCE_CS_SERVICE_ACCOUNT_ID = '00000000-0000-0000-0000-000000000000' diff --git a/config/initializers/flipper.rb b/config/initializers/flipper.rb index d6ca00c5c..e7980c679 100644 --- a/config/initializers/flipper.rb +++ b/config/initializers/flipper.rb @@ -41,7 +41,10 @@ ## Flipper.enable_group :my_feature, :admins ## ## See https://www.flippercloud.io/docs/features#enablement-group -# -# Flipper.register(:admins) do |actor| -# actor.respond_to?(:admin?) && actor.admin? -# end + +Flipper.register(:raspberry_pi_staff) do |actor| + actor.respond_to?(:email) && + actor.respond_to?(:email_verified) && + actor.email_verified && + actor.email.to_s.downcase.end_with?('@raspberrypi.org') +end