FEATURE: allow admins to enable announced experimental features (#29244)

Toggle the button to enable the experimental site setting from "What's new" announcement.

The toggle button is displayed when:
- site setting exists and is boolean;
- potentially required plugin is enabled.
This commit is contained in:
Krzysztof Kotlarek
2024-10-22 10:56:58 +11:00
committed by GitHub
parent 644e6c7f46
commit 433fadbd52
12 changed files with 363 additions and 46 deletions

View File

@ -48,6 +48,18 @@ class Admin::DashboardController < Admin::StaffController
render json: data
end
def toggle_feature
Experiments::Toggle.call(service_params) do
on_success { render(json: success_json) }
on_failure { render(json: failed_json, status: 422) }
on_failed_policy(:current_user_is_admin) { raise Discourse::InvalidAccess }
on_failed_policy(:setting_is_available) { raise Discourse::InvalidAccess }
on_failed_contract do |contract|
render(json: failed_json.merge(errors: contract.errors.full_messages), status: 400)
end
end
end
private
def mark_new_features_as_seen