/** * Add user to the Adobe Connect server * @param integer $a_user_id */ public function addParticipant($a_user_id) { $this->pluginObj->includeClass('class.ilAdobeConnectUserUtil.php'); $this->pluginObj->includeClass('class.ilXAVCMembers.php'); $this->tabs->activateTab("participants"); //check if there is an adobe connect account at the ac-server $ilAdobeConnectUser = new ilAdobeConnectUserUtil($a_user_id); $ilAdobeConnectUser->ensureAccountExistance(); // add to desktop if (ilAdobeConnectServer::getSetting('add_to_desktop') == 1) { ilObjUser::_addDesktopItem($a_user_id, $this->object->getRefId(), 'xavc'); } $is_member = ilXAVCMembers::_isMember($a_user_id, $this->object->getRefId()); // local member table if (!$is_member) { $xavcMemberObj = new ilXAVCMembers($this->object->getRefId(), $a_user_id); $xavcMemberObj->setParticipantStatus(); $xavcMemberObj->setScoId($this->object->getScoId()); $xavcMemberObj->insertXAVCMember(); $this->object->updateParticipant(ilXAVCMembers::_lookupXAVCLogin($a_user_id), $xavcMemberObj->getStatus()); ilUtil::sendInfo($this->txt('participant_added_successfully')); } else { if ($is_member) { //only update at adobe connect server $this->object->updateParticipant(ilXAVCMembers::_lookupXAVCLogin($a_user_id), ilXAVCMembers::_lookupStatus($a_user_id, $this->object->getRefId())); ilUtil::sendInfo($this->pluginObj->txt('is_already_participant')); } } }
/** * @param integer $ref_id ref_id of ilias ac-object * @param integer $sco_id * @param array $member_ids */ public function addCrsGrpMembers($ref_id, $sco_id, $member_ids = null) { $oParticipants = $this->getParticipantsObject(); if (count($oParticipants->getParticipants()) == 0) { return; } $role_map = ilAdobeConnectServer::getRoleMap(); /** @var $oParticipants ilGroupParticipants | ilCourseParticipants */ $admins = $oParticipants->getAdmins(); $tutors = $oParticipants->getTutors(); $members = $oParticipants->getMembers(); if (is_array($member_ids) && count($member_ids) > 0) { $all_participants = $member_ids; $admins = array_uintersect($member_ids, $admins, 'strcmp'); $tutors = array_uintersect($member_ids, $tutors, 'strcmp'); $members = array_uintersect($member_ids, $members, 'strcmp'); } else { $all_participants = array_unique(array_merge($admins, $tutors, $members)); } $this->pluginObj->includeClass('class.ilAdobeConnectRoles.php'); $xavcRoles = new ilAdobeConnectRoles($ref_id); if (ilAdobeConnectServer::getSetting('user_assignment_mode') != ilAdobeConnectServer::ASSIGN_USER_SWITCH) { foreach ($all_participants as $user_id) { $this->pluginObj->includeClass('class.ilAdobeConnectUserUtil.php'); //check if there is an adobe connect account at the ac-server $ilAdobeConnectUser = new ilAdobeConnectUserUtil($user_id); $ilAdobeConnectUser->ensureAccountExistance(); // add to desktop if (ilAdobeConnectServer::getSetting('add_to_desktop') == 1) { ilObjUser::_addDesktopItem($user_id, $ref_id, 'xavc'); } } } // receive breeze session $session = $this->xmlApi->getBreezeSession(); $this->pluginObj->includeClass('class.ilXAVCMembers.php'); if ($session != NULL && $this->xmlApi->login($this->adminLogin, $this->adminPass, $session)) { foreach ($admins as $user_id) { if ($user_id == $this->getOwner()) { continue; } $xavcRoles->addAdministratorRole($user_id); $is_member = ilXAVCMembers::_isMember($user_id, $ref_id); // local member table $xavcMemberObj = new ilXAVCMembers($ref_id, $user_id); $status = $role_map[$oParticipants->getType() . '_admin']; $xavcMemberObj->setStatus($status); $xavcMemberObj->setScoId($sco_id); if ($is_member) { $xavcMemberObj->updateXAVCMember(); } else { $xavcMemberObj->insertXAVCMember(); } $this->xmlApi->updateMeetingParticipant($sco_id, ilXAVCMembers::_lookupXAVCLogin($user_id), $session, $status); } foreach ($tutors as $user_id) { if ($user_id == $this->getOwner()) { continue; } $xavcRoles->addAdministratorRole($user_id); $is_member = ilXAVCMembers::_isMember($user_id, $ref_id); // local member table $xavcMemberObj = new ilXAVCMembers($ref_id, $user_id); $status = $role_map[$oParticipants->getType() . '_tutor']; $xavcMemberObj->setStatus($status); $xavcMemberObj->setScoId($sco_id); if ($is_member) { $xavcMemberObj->updateXAVCMember(); } else { $xavcMemberObj->insertXAVCMember(); } $this->xmlApi->updateMeetingParticipant($sco_id, ilXAVCMembers::_lookupXAVCLogin($user_id), $session, $status); } foreach ($members as $user_id) { if ($user_id == $this->getOwner()) { continue; } $xavcRoles->addMemberRole($user_id); $is_member = ilXAVCMembers::_isMember($user_id, $ref_id); // local member table $xavcMemberObj = new ilXAVCMembers($ref_id, $user_id); $status = $role_map[$oParticipants->getType() . '_member']; $xavcMemberObj->setStatus($status); $xavcMemberObj->setScoId($sco_id); if ($is_member) { $xavcMemberObj->updateXAVCMember(); } else { $xavcMemberObj->insertXAVCMember(); } $this->xmlApi->updateMeetingParticipant($sco_id, ilXAVCMembers::_lookupXAVCLogin($user_id), $session, $status); } $owner_id = ilObject::_lookupOwner($oParticipants->getObjId()); $xavcRoles->addAdministratorRole($owner_id); $is_member = ilXAVCMembers::_isMember($owner_id, $ref_id); // local member table $xavcMemberObj = new ilXAVCMembers($ref_id, $owner_id); $status = $role_map[$oParticipants->getType() . '_owner']; $xavcMemberObj->setStatus($status); $xavcMemberObj->setScoId($sco_id); if ($is_member) { $xavcMemberObj->updateXAVCMember(); } else { $xavcMemberObj->insertXAVCMember(); } $this->xmlApi->updateMeetingParticipant($sco_id, ilXAVCMembers::_lookupXAVCLogin($owner_id), $session, $status); } }
/** * Check whether a user is host in this virtual classroom. * @param String $login * @return boolean */ public function isParticipant($login) { global $ilUser; $this->pluginObj->includeClass('class.ilAdobeConnectServer.php'); $settings = ilAdobeConnectServer::_getInstance(); if ($settings->getAuthMode() == ilAdobeConnectServer::AUTH_MODE_SWITCHAAI) { $this->pluginObj->includeClass('class.ilXAVCMembers.php'); return ilXAVCMembers::_isMember($ilUser->getId(), $this->getRefId()); } else { $session = $this->xmlApi->getBreezeSession(); if ($session != NULL && $this->xmlApi->login($this->adminLogin, $this->adminPass, $session)) { return $this->xmlApi->isParticipant($login, $this->sco_id, $session); } } }