From: <lph...@us...> - 2011-10-14 17:26:56
|
Revision: 38289 http://tikiwiki.svn.sourceforge.net/tikiwiki/?rev=38289&view=rev Author: lphuberdeau Date: 2011-10-14 17:26:50 +0000 (Fri, 14 Oct 2011) Log Message: ----------- [FIX]?\194?\160Catch BBB error when misconfigured Modified Paths: -------------- branches/8.x/lib/wiki-plugins/wikiplugin_bigbluebutton.php Modified: branches/8.x/lib/wiki-plugins/wikiplugin_bigbluebutton.php =================================================================== --- branches/8.x/lib/wiki-plugins/wikiplugin_bigbluebutton.php 2011-10-14 16:45:05 UTC (rev 38288) +++ branches/8.x/lib/wiki-plugins/wikiplugin_bigbluebutton.php 2011-10-14 17:26:50 UTC (rev 38289) @@ -73,48 +73,52 @@ } function wikiplugin_bigbluebutton( $data, $params ) { - global $smarty, $prefs, $user; - $bigbluebuttonlib = TikiLib::lib('bigbluebutton'); - $meeting = $params['name']; // Meeting is more descriptive than name, but parameter name was already decided. + try { + global $smarty, $prefs, $user; + $bigbluebuttonlib = TikiLib::lib('bigbluebutton'); + $meeting = $params['name']; // Meeting is more descriptive than name, but parameter name was already decided. - $smarty->assign( 'bbb_meeting', $meeting ); - $smarty->assign( 'bbb_image', rtrim( $prefs['bigbluebutton_server_location'], '/' ) . '/images/bbb_logo.png' ); + $smarty->assign( 'bbb_meeting', $meeting ); + $smarty->assign( 'bbb_image', rtrim( $prefs['bigbluebutton_server_location'], '/' ) . '/images/bbb_logo.png' ); - $perms = Perms::get( 'bigbluebutton', $meeting ); + $perms = Perms::get( 'bigbluebutton', $meeting ); - if( ! $bigbluebuttonlib->roomExists( $meeting ) ) { - if( ! isset($_POST['bbb']) || $_POST['bbb'] != $meeting || ! $perms->bigbluebutton_create ) { - return $smarty->fetch( 'wiki-plugins/wikiplugin_bigbluebutton_create.tpl' ); + if( ! $bigbluebuttonlib->roomExists( $meeting ) ) { + if( ! isset($_POST['bbb']) || $_POST['bbb'] != $meeting || ! $perms->bigbluebutton_create ) { + return $smarty->fetch( 'wiki-plugins/wikiplugin_bigbluebutton_create.tpl' ); + } } - } - $params = array_merge( array( - 'prefix' => '', - ), $params ); + $params = array_merge( array( + 'prefix' => '', + ), $params ); - if( $perms->bigbluebutton_join ) { - if( isset($_POST['bbb']) && $_POST['bbb'] == $meeting ) { - if( ! $user && isset($_POST['bbb_name']) && ! empty($_POST['bbb_name']) ) { - $_SESSION['bbb_name'] = $params['prefix'] . $_POST['bbb_name']; + if( $perms->bigbluebutton_join ) { + if( isset($_POST['bbb']) && $_POST['bbb'] == $meeting ) { + if( ! $user && isset($_POST['bbb_name']) && ! empty($_POST['bbb_name']) ) { + $_SESSION['bbb_name'] = $params['prefix'] . $_POST['bbb_name']; + } + + // Attempt to create room made before joining as the BBB server has no persistency. + // Prior check ensures that the user has appropriate rights to create the room in the + // first place or that the room was already officially created and this is only a + // re-create if the BBB server restarted. + // + // This avoids the issue occuring when tiki cache thinks the room exist and it's gone + // on the other hand. It does not solve the issue if the room is lost on the BBB server + // and tiki cache gets flushed. To cover that one, create can be granted to everyone for + // the specific object. + $bigbluebuttonlib->createRoom( $meeting, $params ); + $bigbluebuttonlib->joinMeeting( $meeting ); } - // Attempt to create room made before joining as the BBB server has no persistency. - // Prior check ensures that the user has appropriate rights to create the room in the - // first place or that the room was already officially created and this is only a - // re-create if the BBB server restarted. - // - // This avoids the issue occuring when tiki cache thinks the room exist and it's gone - // on the other hand. It does not solve the issue if the room is lost on the BBB server - // and tiki cache gets flushed. To cover that one, create can be granted to everyone for - // the specific object. - $bigbluebuttonlib->createRoom( $meeting, $params ); - $bigbluebuttonlib->joinMeeting( $meeting ); + $smarty->assign( 'bbb_attendees', $bigbluebuttonlib->getAttendees( $meeting ) ); + $smarty->assign( 'bbb_recordings', $bigbluebuttonlib->getRecordings( $meeting ) ); + + return $smarty->fetch( 'wiki-plugins/wikiplugin_bigbluebutton.tpl' ); } - - $smarty->assign( 'bbb_attendees', $bigbluebuttonlib->getAttendees( $meeting ) ); - $smarty->assign( 'bbb_recordings', $bigbluebuttonlib->getRecordings( $meeting ) ); - - return $smarty->fetch( 'wiki-plugins/wikiplugin_bigbluebutton.tpl' ); + } catch (Exception $e) { + return WikiParser_PluginOutput::internalError(tr('BigBlueButton misconfigured or unaccessible.')); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |