Plugin: BBB: Improve videoconference server host validation + check if host & salt have been defined and adapt warning message - refs #2974

pull/3183/head
Yannick Warnier 6 years ago
parent 047c5049fe
commit 17cec3d963
  1. 29
      plugin/bbb/lib/bbb.lib.php
  2. 80
      plugin/bbb/start.php

@ -107,13 +107,15 @@ class bbb
}
$this->salt = $bbb_salt;
if (substr($bbb_host, -1, 1) !== '/') {
$bbb_host .= '/';
if (!empty($bbb_host)) {
if (substr($bbb_host, -1, 1) !== '/') {
$bbb_host .= '/';
}
if (!preg_match('#/bigbluebutton/$#', $bbb_host)) {
$bbb_host .= 'bigbluebutton/';
}
}
$info = parse_url($bbb_host);
if (!preg_match('#/bigbluebutton/$#', $bbb_host)) {
$bbb_host .= 'bigbluebutton/';
}
$this->url = $bbb_host;
if (isset($info['scheme'])) {
@ -1714,6 +1716,17 @@ class bbb
* @assert () === false
*/
public function isServerRunning()
{
return true;
//return BigBlueButtonBN::isServerRunning($this->protocol.$this->url);
}
/**
* Checks if the video conference plugin is properly configured
* @return bool True if plugin has a host and a salt, false otherwise
* @assert () === false
*/
public function isServerConfigured()
{
$host = $this->plugin->get('host');
@ -1721,6 +1734,12 @@ class bbb
return false;
}
$salt = $this->plugin->get('salt');
if (empty($salt)) {
return false;
}
return true;
//return BigBlueButtonBN::isServerRunning($this->protocol.$this->url);
}

@ -36,61 +36,65 @@ if ($bbb->isGlobalConference()) {
}
if ($bbb->pluginEnabled) {
if ($bbb->isServerRunning()) {
if (isset($_GET['launch']) && $_GET['launch'] == 1) {
if (file_exists(__DIR__.'/config.vm.php')) {
$config = require __DIR__.'/config.vm.php';
$vmIsEnabled = true;
$host = '';
$salt = '';
if ($bbb->isServerConfigured()) {
if ($bbb->isServerRunning()) {
if (isset($_GET['launch']) && $_GET['launch'] == 1) {
if (file_exists(__DIR__.'/config.vm.php')) {
$config = require __DIR__.'/config.vm.php';
$vmIsEnabled = true;
$host = '';
$salt = '';
require __DIR__.'/lib/vm/AbstractVM.php';
require __DIR__.'/lib/vm/VMInterface.php';
require __DIR__.'/lib/vm/DigitalOceanVM.php';
require __DIR__.'/lib/VM.php';
require __DIR__.'/lib/vm/AbstractVM.php';
require __DIR__.'/lib/vm/VMInterface.php';
require __DIR__.'/lib/vm/DigitalOceanVM.php';
require __DIR__.'/lib/VM.php';
$vm = new VM($config);
$vm = new VM($config);
if ($vm->isEnabled()) {
try {
$vm->resizeToMaxLimit();
} catch (\Exception $e) {
echo $e->getMessage();
exit;
if ($vm->isEnabled()) {
try {
$vm->resizeToMaxLimit();
} catch (\Exception $e) {
echo $e->getMessage();
exit;
}
}
}
}
$meetingParams = [];
$meetingParams['meeting_name'] = $bbb->getCurrentVideoConferenceName();
$meetingParams['interface'] = $interface;
if ($bbb->meetingExists($meetingParams['meeting_name'])) {
$joinUrl = $bbb->joinMeeting($meetingParams['meeting_name']);
if ($joinUrl) {
$url = $joinUrl;
$meetingParams = [];
$meetingParams['meeting_name'] = $bbb->getCurrentVideoConferenceName();
$meetingParams['interface'] = $interface;
if ($bbb->meetingExists($meetingParams['meeting_name'])) {
$joinUrl = $bbb->joinMeeting($meetingParams['meeting_name']);
if ($joinUrl) {
$url = $joinUrl;
} else {
$url = $bbb->createMeeting($meetingParams);
}
} else {
$url = $bbb->createMeeting($meetingParams);
$url = $bbb->isConferenceManager() ? $bbb->createMeeting($meetingParams) : $bbb->getListingUrl();
}
} else {
$url = $bbb->isConferenceManager() ? $bbb->createMeeting($meetingParams) : $bbb->getListingUrl();
}
$meetingInfo = $bbb->findMeetingByName($meetingParams['meeting_name']);
if (!empty($meetingInfo) && $url) {
$bbb->saveParticipant($meetingInfo['id'], api_get_user_id(), $interface);
$bbb->redirectToBBB($url);
$meetingInfo = $bbb->findMeetingByName($meetingParams['meeting_name']);
if (!empty($meetingInfo) && $url) {
$bbb->saveParticipant($meetingInfo['id'], api_get_user_id(), $interface);
$bbb->redirectToBBB($url);
} else {
$url = $bbb->getListingUrl();
header('Location: '.$url);
exit;
}
} else {
$url = $bbb->getListingUrl();
header('Location: '.$url);
exit;
}
} else {
$url = $bbb->getListingUrl();
header('Location: '.$url);
exit;
$message = Display::return_message(get_lang('ServerIsNotRunning'), 'warning');
}
} else {
$message = Display::return_message(get_lang('ServerIsNotRunning'), 'warning');
$message = Display::return_message(get_lang('ServerIsNotConfigured'), 'warning');
}
} else {
$message = Display::return_message(get_lang('ServerIsNotConfigured'), 'warning');

Loading…
Cancel
Save