Class: Admin::DashboardController
- Inherits:
-
StaffController
- Object
- StaffController
- Admin::DashboardController
- Defined in:
- app/controllers/admin/dashboard_controller.rb
Instance Method Summary collapse
- #general ⇒ Object
- #index ⇒ Object
- #moderation ⇒ Object
- #new_features ⇒ Object
- #problems ⇒ Object
- #reports ⇒ Object
- #security ⇒ Object
- #toggle_feature ⇒ Object
Instance Method Details
#general ⇒ Object
23 24 25 |
# File 'app/controllers/admin/dashboard_controller.rb', line 23 def general render json: AdminDashboardGeneralData.fetch_cached_stats end |
#index ⇒ Object
4 5 6 7 8 9 10 11 12 |
# File 'app/controllers/admin/dashboard_controller.rb', line 4 def index data = AdminDashboardIndexData.fetch_cached_stats if SiteSetting.version_checks? data.merge!(version_check: DiscourseUpdates.check_version.as_json) end render json: data end |
#moderation ⇒ Object
14 15 |
# File 'app/controllers/admin/dashboard_controller.rb', line 14 def moderation end |
#new_features ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'app/controllers/admin/dashboard_controller.rb', line 33 def new_features force_refresh = params[:force_refresh] == "true" if force_refresh RateLimiter.new( current_user, "force-refresh-new-features", 5, 1.minute, apply_limit_to_staff: true, ).performed! end new_features = DiscourseUpdates.new_features(force_refresh:) if current_user.admin? && most_recent = new_features&.first DiscourseUpdates.bump_last_viewed_feature_date(current_user.id, most_recent["created_at"]) end data = { new_features: new_features, has_unseen_features: DiscourseUpdates.has_unseen_features?(current_user.id), release_notes_link: AdminDashboardGeneralData.fetch_cached_stats["release_notes_link"], } mark_new_features_as_seen render json: data end |
#problems ⇒ Object
27 28 29 30 31 |
# File 'app/controllers/admin/dashboard_controller.rb', line 27 def problems ProblemCheck.realtime.run_all render json: { problems: serialize_data(AdminNotice.problem.all, AdminNoticeSerializer) } end |
#reports ⇒ Object
20 21 |
# File 'app/controllers/admin/dashboard_controller.rb', line 20 def reports end |
#security ⇒ Object
17 18 |
# File 'app/controllers/admin/dashboard_controller.rb', line 17 def security end |
#toggle_feature ⇒ Object
63 64 65 66 67 68 69 70 71 72 73 |
# File 'app/controllers/admin/dashboard_controller.rb', line 63 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.), status: 400) end end end |