Plugins - Zoom - Change setting enableCloudRecording

In order to use the zoom settings: local, cloud, none

BT#17288
pull/3446/head
Julio Montoya 5 years ago
parent 930aea2819
commit 109371b19a
  1. 2
      plugin/zoom/Entity/Meeting.php
  2. 2
      plugin/zoom/lang/english.php
  3. 2
      plugin/zoom/lang/french.php
  4. 2
      plugin/zoom/lang/spanish.php
  5. 37
      plugin/zoom/lib/ZoomPlugin.php
  6. 4
      plugin/zoom/meeting.php
  7. 2
      plugin/zoom/meetings.php

@ -498,7 +498,7 @@ class Meeting
*/
public function hasCloudAutoRecordingEnabled()
{
return 'cloud' === $this->meetingInfoGet->settings->auto_recording;
return \ZoomPlugin::RECORDING_TYPE_NONE !== $this->meetingInfoGet->settings->auto_recording;
}
/**

@ -10,7 +10,7 @@ $strings['apiKey'] = 'API Key';
$strings['apiSecret'] = 'API Secret';
$strings['verificationToken'] = 'Verification Token';
$strings['enableParticipantRegistration'] = 'Enable participant registration';
$strings['enableCloudRecording'] = 'Enable cloud recording';
$strings['enableCloudRecording'] = 'Automatic recording type';
$strings['enableGlobalConference'] = 'Enable global conference';
$strings['enableGlobalConferencePerUser'] = 'Enable global conference per user';
$strings['globalConferenceAllowRoles'] = "Global conference link only visible for these user roles";

@ -9,7 +9,7 @@ $strings['tool_enable'] = 'Outil de conférence vidéos Zoom activé';
$strings['apiKey'] = "Clé d'API (<em>API Key</em>)";
$strings['apiSecret'] = "Code secret d'API (<em>API Secret</em>)";
$strings['enableParticipantRegistration'] = "Activer l'inscription des participants";
$strings['enableCloudRecording'] = "Activer l'enregistrement sur les serveurs de Zoom";
$strings['enableCloudRecording'] = "Type d'enregistrement automatique";
$strings['enableGlobalConference'] = "Activer les conférences globales";
$strings['enableGlobalConferencePerUser'] = "Activer les conférences globales par utilisateur";
$strings['globalConferenceAllowRoles'] = "Visibilité du lien de vidéo conférence global pour les profils suivant";

@ -9,7 +9,7 @@ $strings['tool_enable'] = 'Herramienta activada';
$strings['apiKey'] = "Clave API (<em>API Key</em>)";
$strings['apiSecret'] = "Código secreto de API (<em>API Secret</em>)";
$strings['enableParticipantRegistration'] = "Activar la inscripción de participantes";
$strings['enableCloudRecording'] = "Activar la grabación en los servidores de Zoom";
$strings['enableCloudRecording'] = "Tipo de grabación automática";
$strings['enableGlobalConference'] = "Activar las conferencias globales";
$strings['enableGlobalConferencePerUser'] = "Activar las conferencias globales por usuario";
$strings['globalConferenceAllowRoles'] = "Visibilidad del enlace global de videoconferencia para los perfiles siguientes";

@ -36,6 +36,10 @@ class ZoomPlugin extends Plugin
*/
private $jwtClient;
const RECORDING_TYPE_CLOUD = 'cloud';
const RECORDING_TYPE_LOCAL = 'local';
const RECORDING_TYPE_NONE = 'none';
/**
* ZoomPlugin constructor.
* {@inheritdoc}
@ -44,7 +48,7 @@ class ZoomPlugin extends Plugin
public function __construct()
{
parent::__construct(
'0.2',
'0.3',
'Sébastien Ducoulombier, Julio Montoya',
[
'tool_enable' => 'boolean',
@ -52,7 +56,14 @@ class ZoomPlugin extends Plugin
'apiSecret' => 'text',
'verificationToken' => 'text',
'enableParticipantRegistration' => 'boolean',
'enableCloudRecording' => 'boolean',
'enableCloudRecording' => [
'type' => 'select',
'options' => [
self::RECORDING_TYPE_CLOUD => 'Cloud',
self::RECORDING_TYPE_LOCAL => 'Local',
self::RECORDING_TYPE_NONE => get_lang('None'),
],
],
'enableGlobalConference' => 'boolean',
'globalConferenceAllowRoles' => [
'type' => 'select',
@ -1273,8 +1284,7 @@ class ZoomPlugin extends Plugin
$meeting->getMeetingInfoGet()->settings->contact_email = $currentUser->getEmail();
$meeting->getMeetingInfoGet()->settings->contact_name = $currentUser->getFullname();
$recording = 'true' === $this->get('enableCloudRecording') ? 'cloud' : 'local';
$meeting->getMeetingInfoGet()->settings->auto_recording = $recording;
$meeting->getMeetingInfoGet()->settings->auto_recording = $this->getRecordingSetting();
$meeting->getMeetingInfoGet()->settings->registrants_email_notification = false;
//$meeting->getMeetingInfoGet()->host_email = $currentUser->getEmail();
@ -1289,6 +1299,25 @@ class ZoomPlugin extends Plugin
return $meeting;
}
public function getRecordingSetting()
{
$recording = (string) $this->get('enableCloudRecording');
if (in_array($recording, [self::RECORDING_TYPE_LOCAL, self::RECORDING_TYPE_CLOUD], true)) {
return $recording;
}
return self::RECORDING_TYPE_NONE;
}
public function hasRecordingAvailable()
{
$recording = $this->getRecordingSetting();
return self::RECORDING_TYPE_NONE !== $recording;
}
/**
* @throws Exception
*

@ -65,7 +65,9 @@ if ($plugin->userIsConferenceManager($meeting)) {
}
}
if ('true' === $plugin->get('enableCloudRecording') && $meeting->hasCloudAutoRecordingEnabled()) {
if (ZoomPlugin::RECORDING_TYPE_NONE !== $plugin->getRecordingSetting() &&
$meeting->hasCloudAutoRecordingEnabled()
) {
$tpl->assign('fileForm', $plugin->getFileForm($meeting, $returnURL)->returnForm());
$tpl->assign('recordings', $meeting->getRecordings());
}

@ -20,7 +20,7 @@ $endDate = new DateTime($form->getElement('end')->getValue());
$scheduleForm = $plugin->getScheduleMeetingForm($user);
$tpl = new Template();
$tpl->assign('meetings', $plugin->getMeetingRepository()->periodUserMeetings($startDate, $endDate, $user));
$tpl->assign('allow_recording', 'true' === $plugin->get('enableCloudRecording'));
$tpl->assign('allow_recording', $plugin->hasRecordingAvailable());
$tpl->assign('actions', $plugin->getToolbar());
$tpl->assign('search_form', $form->returnForm());
$tpl->assign('schedule_form', $scheduleForm->returnForm());

Loading…
Cancel
Save