diff --git a/app/controllers/admins_controller.rb b/app/controllers/admins_controller.rb index 8a128b23..193cc4ff 100644 --- a/app/controllers/admins_controller.rb +++ b/app/controllers/admins_controller.rb @@ -24,7 +24,7 @@ class AdminsController < ApplicationController manage_users = [:edit_user, :promote, :demote, :ban_user, :unban_user, :approve] site_settings = [:branding, :coloring, :coloring_lighten, :coloring_darken, - :registration_method, :room_authentication, :room_limit] + :registration_method, :room_authentication, :room_limit, :default_recording_visibility] authorize_resource class: false before_action :find_user, only: manage_users @@ -176,6 +176,13 @@ class AdminsController < ApplicationController redirect_to admin_site_settings_path, flash: { success: I18n.t("administrator.flash.settings") } end + # POST /admins/default_recording_visibility + def default_recording_visibility + @settings.update_value("Default Recording Visibility", params[:visibility]) + redirect_to admins_path, flash: { success: I18n.t("administrator.flash.settings") + ". " + + I18n.t("administrator.site_settings.recording_visibility.warning") } + end + private def find_user diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index fc86a331..125db706 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -106,6 +106,8 @@ class ApplicationController < ActionController::Base meeting_logout_url: request.base_url + logout_room_path(@room), meeting_recorded: true, moderator_message: "#{invite_msg}\n\n#{request.base_url + room_path(@room)}", + recording_default_visibility: Setting.find_or_create_by!(provider: user_settings_provider) + .get_value("Default Recording Visibility") == "public" } end diff --git a/app/helpers/admins_helper.rb b/app/helpers/admins_helper.rb index 40193283..faf4b1cd 100644 --- a/app/helpers/admins_helper.rb +++ b/app/helpers/admins_helper.rb @@ -55,6 +55,15 @@ module AdminsHelper end end + def recording_default_visibility_string + if Setting.find_or_create_by!(provider: user_settings_provider) + .get_value("Default Recording Visibility") == "public" + I18n.t("administrator.site_settings.recording_visibility.public") + else + I18n.t("administrator.site_settings.recording_visibility.private") + end + end + def registration_method_string case registration_method when Rails.configuration.registration_methods[:open] diff --git a/app/models/room.rb b/app/models/room.rb index 728278fd..09bbc70e 100644 --- a/app/models/room.rb +++ b/app/models/room.rb @@ -56,7 +56,7 @@ class Room < ApplicationRecord attendeePW: attendee_pw, moderatorOnlyMessage: options[:moderator_message], muteOnStart: options[:mute_on_start] || false, - "meta_#{META_LISTED}": false, + "meta_#{META_LISTED}": options[:recording_default_visibility] || false } # Send the create request. diff --git a/app/views/admins/components/_settings.html.erb b/app/views/admins/components/_settings.html.erb index e9721d84..a32cfe0a 100644 --- a/app/views/admins/components/_settings.html.erb +++ b/app/views/admins/components/_settings.html.erb @@ -98,6 +98,27 @@ + +