diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 75ac36f052e32f599bdf53fb56ed5b548c750be1..cfdd66c8b76ed53b1707778a508ac657fc189de8 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -188,7 +188,7 @@ class ApplicationController < ActionController::Base # Indicates whether users are allowed to add moderator access codes to rooms def moderator_code_allowed? - @settings.get_value("Moderator Access Codes") == "true" + @settings.get_value("Room Configuration Moderator Access Codes") == "optional" end helper_method :moderator_code_allowed? diff --git a/app/views/admins/components/_room_settings.html.erb b/app/views/admins/components/_room_settings.html.erb index 53d37046b7fdd1265a02ec0b6a7a3a17f6924af9..d81e4606afdef18b598f8dbee52695a94bbb92e2 100644 --- a/app/views/admins/components/_room_settings.html.erb +++ b/app/views/admins/components/_room_settings.html.erb @@ -124,5 +124,26 @@ </div> </div> <% end %> + <div class="row"> + <div class="col-12"> + <div class="form-group"> + <label class="form-label"><%= t("administrator.room_configuration.moderator_codes.title") %></label> + <label class="form-label text-muted"><%= t("administrator.room_configuration.moderator_codes.info") %></label> + <div class="dropdown"> + <button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> + <%= room_configuration_string("Room Configuration Moderator Access Codes") %> + </button> + <div class="dropdown-menu" aria-labelledby="room-auth"> + <%= button_to admin_update_room_configuration_path(setting: "Room Configuration Moderator Access Codes", value: "optional"), class: "dropdown-item", "data-disable": "" do %> + <%= t("administrator.room_configuration.options.optional") %> + <% end %> + <%= button_to admin_update_room_configuration_path(setting: "Room Configuration Moderator Access Codes", value: "disabled"), class: "dropdown-item", "data-disable": "" do %> + <%= t("administrator.room_configuration.options.disabled") %> + <% end %> + </div> + </div> + </div> + </div> + </div> </div> diff --git a/app/views/admins/components/site_settings/_settings.html.erb b/app/views/admins/components/site_settings/_settings.html.erb index fa4cf6eb77e1517b0a1e98059cc16c6e01338e5f..464d308864ccb36f0f537f4bf951145389dfe1e7 100644 --- a/app/views/admins/components/site_settings/_settings.html.erb +++ b/app/views/admins/components/site_settings/_settings.html.erb @@ -143,27 +143,6 @@ </div> </div> </div> - <div class="row mb-2"> - <div class="col-12"> - <div class="form-group"> - <label class="form-label"><%= t("administrator.site_settings.moderator_codes.title") %></label> - <label class="form-label text-muted"><%= t("administrator.site_settings.moderator_codes.info") %></label> - <div class="dropdown"> - <button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> - <%= moderator_codes_string %> - </button> - <div class="dropdown-menu" aria-labelledby="room-auth"> - <%= button_to admin_update_settings_path(setting: "Moderator Access Codes", value: "true"), class: "dropdown-item", "data-disable": "" do %> - <%= t("administrator.site_settings.moderator_codes.enabled") %> - <% end %> - <%= button_to admin_update_settings_path(setting: "Moderator Access Codes", value: "false"), class: "dropdown-item", "data-disable": "" do %> - <%= t("administrator.site_settings.moderator_codes.disabled") %> - <% end %> - </div> - </div> - </div> - </div> - </div> <div class="row"> <div class="col-12"> <div class="form-group"> diff --git a/config/application.rb b/config/application.rb index bed9f47cc770ad99f02a14131f81c223036720b3..3670e7c625d0e37e91421f611d0859b628b884a0 100644 --- a/config/application.rb +++ b/config/application.rb @@ -176,7 +176,7 @@ module Greenlight config.preupload_presentation_default = "false" # Don't show option to generate moderator access codes - config.moderator_codes_default = "false" + config.moderator_codes_default = "disabled" # Default admin password config.admin_password_default = ENV['ADMIN_PASSWORD'] || 'administrator' diff --git a/config/locales/de_DE.yml b/config/locales/de_DE.yml index a08504fbdd5b2a9371a3a716eb8b1e0531646408..fbcc77e9de5d06b5ff2ac196c87bf765c4bd18af 100644 --- a/config/locales/de_DE.yml +++ b/config/locales/de_DE.yml @@ -105,11 +105,6 @@ de_DE: approval: Zulassen/Ablehnen invite: Teilnahme durch Einladung open: Offene Registrierung - moderator_codes: - info: "Mit gültigen Moderatorencodes können Nutzerinnen einem Raum als Moderator beitreten, ohne sich vorher einen Account anzulegen und einzeln Zugriff zu erhalten. Die Einstellung kann für jeden Raum seperat getätigt werden." - title: Ermöglicht die Erstellung von Moderatorencodes - enabled: Aktiviert - disabled: Deaktiviert rooms: info: "Limitiert die Anzahl der Räume, die Nutzer einrichten können (inklusive des Startraums). Diese Einstellung wirkt sich nicht auf Administratoren aus." title: Anzahl der Räume pro Nutzer @@ -395,9 +390,7 @@ de_DE: title: Neue Rolle erstellen create_room: access_code: Zugangscode - moderator_access_code: Moderatorencode access_code_placeholder: Generieren eines optionalen Raumzugangscodes - moderator_access_code_placeholder: Generieren eines optionalen Moderatorencodes auto_join: Automatisch dem Raum beitreten create: Raum erstellen free_delete: Sie können den Raum jederzeit wieder löschen. @@ -550,7 +543,6 @@ de_DE: access_code_required: "Bitte geben Sie einen gültigen Zugangscode ein, um den Raum zu betreten" add_presentation: Präsentation hinzufügen copy_access: Zugangscode kopieren - copy_moderator_access: Moderatorcode kopieren create_room: Raum erstellen create_room_error: Bei der Erstellung des Raums ist ein Fehler aufgetreten create_room_success: Raum erfolgreich erstellt @@ -559,8 +551,6 @@ de_DE: success: Raum erfolgreich gelöscht fail: "Raum konnte nicht gelöscht werden (%{error})" enter_the_access_code: Raumzugangscode bitte eingeben - enter_the_moderator_access_code: "Moderatorencode bitte eingeben!" - optional_moderator_access_code: "Optionaler Moderatorencode:" invalid_provider: "Sie haben eine ungültige URL eingegeben, bitte überprüfen Sie die URL und versuchen Sie es erneut." invitation_description: "Sie wurden zu %{name} über BigBlueButton zur Teilnahme eingeladen. Um beizutreten, klicken Sie auf den obigen Link und geben Sie Ihren Namen ein." invited: Sie wurden zur Teilnahme eingeladen diff --git a/config/locales/en.yml b/config/locales/en.yml index 673c6f3188bb43ff24ad8eef649ff4989e07a15c..c06948d898d192839ad20bcc3843aad0a9ea5686 100755 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -111,11 +111,6 @@ en: shared_access: info: Setting to disabled will remove the button from the Room options dropdown, preventing users from sharing rooms title: Allow Users to Share Rooms - moderator_codes: - info: "With valid moderator codes, users can join a room as a moderator without having to create an account and receive access individually. The setting can be made separately for each room." - title: Enables the generation of moderator codes - enabled: Enabled - disabled: Disabled subtitle: Customize Greenlight tabs: appearance: Appearance @@ -180,6 +175,9 @@ en: info: Gives all users moderator privileges in BigBlueButton when they join the meeting. recordings: info: Allows room owners to specify whether they want the option to record a room or not. If enabled, the moderator must still click the "Record" button once the meeting has started. + moderator_codes: + info: Allows room owners to optionally generate a moderator pin which allows other users to join directly as moderators. + title: Enables the generation of moderator codes options: disabled: Disabled enabled: Always Enabled diff --git a/spec/controllers/rooms_controller_spec.rb b/spec/controllers/rooms_controller_spec.rb index 34063a44c727f6a5d1bdc1aff3c3a8fb08b27e16..4733cd49aa7150d5f7ef044b5b19f269d80bc21f 100644 --- a/spec/controllers/rooms_controller_spec.rb +++ b/spec/controllers/rooms_controller_spec.rb @@ -276,7 +276,8 @@ describe RoomsController, type: :controller do it "should use join name if user is not logged in and meeting running and moderator access code is enabled and set" do allow_any_instance_of(BigBlueButton::BigBlueButtonApi).to receive(:is_meeting_running?).and_return(true) allow_any_instance_of(Setting).to receive(:get_value).and_call_original - allow_any_instance_of(Setting).to receive(:get_value).with("Moderator Access Codes").and_return("true") + allow_any_instance_of(Setting).to receive(:get_value) + .with("Room Configuration Moderator Access Codes").and_return("optional") room = Room.new(name: "test", moderator_access_code: "abcdef") room.room_settings = "{ }" @@ -416,7 +417,8 @@ describe RoomsController, type: :controller do it "should join the room as moderator if the user has the moderator_access code (and regular access code is not set)" do allow_any_instance_of(BigBlueButton::BigBlueButtonApi).to receive(:is_meeting_running?).and_return(true) allow_any_instance_of(Setting).to receive(:get_value).and_call_original - allow_any_instance_of(Setting).to receive(:get_value).with("Moderator Access Codes").and_return("true") + allow_any_instance_of(Setting).to receive(:get_value) + .with("Room Configuration Moderator Access Codes").and_return("optional") room = Room.new(name: "test", moderator_access_code: "abcdef") room.room_settings = "{ }" @@ -431,7 +433,8 @@ describe RoomsController, type: :controller do it "should join the room as moderator if the user has the moderator_access code (and regular access code is set)" do allow_any_instance_of(BigBlueButton::BigBlueButtonApi).to receive(:is_meeting_running?).and_return(true) allow_any_instance_of(Setting).to receive(:get_value).and_call_original - allow_any_instance_of(Setting).to receive(:get_value).with("Moderator Access Codes").and_return("true") + allow_any_instance_of(Setting).to receive(:get_value) + .with("Room Configuration Moderator Access Codes").and_return("optional") room = Room.new(name: "test", access_code: "123456", moderator_access_code: "abcdef") room.room_settings = "{ }" @@ -744,7 +747,8 @@ describe RoomsController, type: :controller do it "should redirect to show with valid moderator_access_code as regular access_code" do allow_any_instance_of(Setting).to receive(:get_value).and_call_original - allow_any_instance_of(Setting).to receive(:get_value).with("Moderator Access Codes").and_return("true") + allow_any_instance_of(Setting).to receive(:get_value) + .with("Room Configuration Moderator Access Codes").and_return("optional") @room.moderator_access_code = "abcdef" @room.save