From 7b76b4119d73e838694dda02b9212713333abb5c Mon Sep 17 00:00:00 2001 From: Julio Montoya Date: Fri, 22 Nov 2013 18:56:33 +0100 Subject: [PATCH] Adding some fixes in order to load the open meetings as an student see BT#7046 --- .../om_integration/lib/om_integration.lib.php | 161 +++++++++--------- plugin/om_integration/start.php | 27 ++- 2 files changed, 104 insertions(+), 84 deletions(-) diff --git a/plugin/om_integration/lib/om_integration.lib.php b/plugin/om_integration/lib/om_integration.lib.php index 37b28d3141..c9aa6d246c 100644 --- a/plugin/om_integration/lib/om_integration.lib.php +++ b/plugin/om_integration/lib/om_integration.lib.php @@ -36,7 +36,7 @@ class om_integration { $om_pass = $plugin->get('pass'); $this->table = Database::get_main_table('plugin_om_meeting'); - + if ( $om_plugin ) { $user_info = api_get_user_info(); $this->user_complete_name = $user_info['complete_name']; @@ -65,34 +65,34 @@ class om_integration { * @return bool True if the user is correct and false when is incorrect */ function loginUser() { - try{ - $objGetSession = new getSession(); - $objloginUser = new loginUser(); - $urlWsdl = CONFIG_OMSERVER_BASE_URL . "/services/UserService?wsdl"; - $omServices = new SoapClient( $urlWsdl ); - //Verifying if there is already an active session - if(empty($_SESSION['sessOpenMeeting'])){ - $gsFun = $omServices->getSession($objGetSession); - $_SESSION['sessOpenMeeting'] = $objloginUser->SID = $this->sessionId = $gsFun->return->session_id; - $objloginUser->username = CONFIG_OMUSER_SALT; - $objloginUser->userpass = CONFIG_OMPASS_SALT; - - $luFn = $omServices->loginUser($objloginUser); - - if ( $luFn->return > 0 ) - return true; - else - return false; - }else{ - $this->sessionId = $_SESSION['sessOpenMeeting']; - return true; - } - }catch( SoapFault $e){ + try { + $objGetSession = new getSession(); + $objloginUser = new loginUser(); + $urlWsdl = CONFIG_OMSERVER_BASE_URL . "/services/UserService?wsdl"; + $omServices = new SoapClient( $urlWsdl ); + //Verifying if there is already an active session + if(empty($_SESSION['sessOpenMeeting'])) { + $gsFun = $omServices->getSession($objGetSession); + $_SESSION['sessOpenMeeting'] = $objloginUser->SID = $this->sessionId = $gsFun->return->session_id; + $objloginUser->username = CONFIG_OMUSER_SALT; + $objloginUser->userpass = CONFIG_OMPASS_SALT; + + $luFn = $omServices->loginUser($objloginUser); + + if ( $luFn->return > 0 ) + return true; + else + return false; + }else{ + $this->sessionId = $_SESSION['sessOpenMeeting']; + return true; + } + } catch( SoapFault $e){ echo "

Warning

We have detected some problems
Fault: {$e->faultstring}

"; return false; - } + } } /* * Creating a Room for the meeting @@ -100,13 +100,13 @@ class om_integration { */ function create_meeting( $params ) { //$id = Database::insert($this->table, $params); - try{ + try{ $objAddRoom = new addRoomWithModerationAndExternalType(); $roomtypes_id = $isModerated = ( $this->is_teacher() ) ? 1 : 2 ; $params['c_id'] = api_get_course_int_id(); $course_name = 'COURSE_ID_' . $params['c_id'] .'_NAME_' . $params['meeting_name']; $urlWsdl = CONFIG_OMSERVER_BASE_URL . "/services/RoomService?wsdl"; - + $objAddRoom->SID = $this->sessionId; $objAddRoom->name = $course_name; $objAddRoom->roomtypes_id = $roomtypes_id; @@ -118,30 +118,30 @@ class om_integration { $objAddRoom->demoTime = false; $objAddRoom->isModeratedRoom = $isModerated; $objAddRoom->externalRoomType = true; - + $omServices = new SoapClient( $urlWsdl ); $adFun = $omServices->addRoomWithModerationAndExternalType( $objAddRoom ); - + if( $adFun->return > -1 ){ $meetingId = $params['id'] = $adFun->return; $params['status'] = '1'; $params['meeting_name'] = $course_name; $params['created_at'] = date('l jS \of F Y h:i:s A'); - + Database::insert($this->table, $params); - + $this->join_meeting($meetingId); }else{ return -1; } - + }catch( SoapFault $e){ echo "

Warning

We have detected some problems
Fault: {$e->faultstring}

"; return -1; } - + } /** * Returns a meeting "join" URL @@ -152,19 +152,21 @@ class om_integration { * @assert ('abcdefghijklmnopqrstuvwxyzabcdefghijklmno') === false */ function join_meeting($meetingid) { - - if (empty($meetingid)) { return false; } + + if (empty($meetingid)) { + return false; + } $meeting_data = Database::select('*', $this->table, array('where' => array('id = ? AND status = 1 ' => $meetingid)), 'first'); + if (empty($meeting_data)) { if ($this->debug) error_log("meeting does not exist: $meetingid "); return false; } - $params = array( 'room_id' => $meetingid ); - + $returnVal = $this->setUserObjectAndGenerateRoomHashByURLAndRecFlag( $params ); - $urlWithoutProtocol = str_replace("http://", CONFIG_OMSERVER_BASE_URL); - $imgWithoutProtocol = str_replace("http://", $_SESSION['_user']['avatar'] ); + //$urlWithoutProtocol = str_replace("http://", CONFIG_OMSERVER_BASE_URL); + //$imgWithoutProtocol = str_replace("http://", $_SESSION['_user']['avatar'] ); $iframe = CONFIG_OMSERVER_BASE_URL . "/?" . "secureHash=" . $returnVal /*. @@ -179,7 +181,7 @@ class om_integration { '&becomeModeratorAsInt=1' . '&showAudioVideoTestAsInt=0' . '&allowRecording=1'*/; - + printf("