public function join() { /** * @var $ilCtrl ilCtrl */ global $ilCtrl; $user_id = $this->user->getId(); $this->pluginObj->includeClass('class.ilAdobeConnectRoles.php'); $this->pluginObj->includeClass('class.ilXAVCMembers.php'); $this->pluginObj->includeClass('class.ilAdobeConnectUserUtil.php'); $this->pluginObj->includeClass('class.ilAdobeConnectServer.php'); $xavcRoles = new ilAdobeConnectRoles($this->object->getRefId()); $current_users = $xavcRoles->getUsers(); if (in_array($user_id, $current_users)) { ilUtil::sendInfo($this->txt('already_member')); } if (!$user_id) { ilUtil::sendFailure($this->txt('user_not_known')); return $this->editParticipants(); } $xavcRoles->addMemberRole($user_id); //check if there is an adobe connect account at the ac-server $ilAdobeConnectUser = new ilAdobeConnectUserUtil($user_id); $ilAdobeConnectUser->ensureAccountExistance(); $role_map = ilAdobeConnectServer::getRoleMap(); $status = false; $oParticipants = null; $type = ''; $owner = 0; if (count($this->object->getParticipantsObject()->getParticipants()) > 0) { $user_is_admin = $this->object->getParticipantsObject()->isAdmin($user_id); $user_is_tutor = $this->object->getParticipantsObject()->isTutor($user_id); $owner = ilObject::_lookupOwner($this->object->getParticipantsObject()->getObjId()); if ($owner == $this->user->getId()) { $status = $role_map[$this->object->getParticipantsObject()->getType() . '_owner']; } else { if ($user_is_admin) { $status = $role_map[$this->object->getParticipantsObject()->getType() . '_admin']; } else { if ($user_is_tutor) { $status = $role_map[$this->object->getParticipantsObject()->getType() . '_tutor']; } else { $status = $role_map[$this->object->getParticipantsObject()->getType() . '_member']; } } } } if (!$status) { if ($owner == $this->user->getId()) { $status = 'host'; } else { $status = 'view'; } } $is_member = ilXAVCMembers::_isMember($user_id, $this->object->getRefId()); // local member table $xavcMemberObj = new ilXAVCMembers($this->object->getRefId(), $user_id); $xavcMemberObj->setStatus($status); $xavcMemberObj->setScoId($this->object->getScoId()); if ($is_member) { $xavcMemberObj->updateXAVCMember(); } else { $xavcMemberObj->insertXAVCMember(); } $this->object->updateParticipant(ilXAVCMembers::_lookupXAVCLogin($user_id), $status); if (ilAdobeConnectServer::getSetting('add_to_desktop') == 1) { ilObjUser::_addDesktopItem($user_id, $this->object->getRefId(), 'xavc'); } $ilCtrl->setParameter($this, 'cmd', 'showContent'); $ilCtrl->redirect($this, "showContent"); }
/** * @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); } }
/** * @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) { global $tree; $parent_crs_ref = $tree->checkForParentType($ref_id, 'crs'); $parent_grp_ref = $tree->checkForParentType($ref_id, 'grp'); $type = null; $obj_id = 0; if ($parent_crs_ref && empty($parent_grp_ref)) { $obj_id = ilObject::_lookupObjectId($parent_crs_ref); include_once 'Modules/Course/classes/class.ilCourseParticipants.php'; $oParticipants = ilCourseParticipants::_getInstanceByObjId($obj_id); $type = 'crs'; } else { if ($parent_grp_ref) { $obj_id = ilObject::_lookupObjectId($parent_grp_ref); include_once 'Modules/Group/classes/class.ilGroupParticipants.php'; $oParticipants = ilGroupParticipants::_getInstanceByObjId($obj_id); $type = 'grp'; } } if ($type == 'crs' || $type == 'grp') { $role_map = ilAdobeConnectServer::getRoleMap(); $owner_id = ilObject::_lookupOwner(ilObject::_lookupObjectId($ref_id)); /** @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 = self::getSession(); $this->pluginObj->includeClass('class.ilXAVCMembers.php'); if ($session != NULL && $this->xmlApi->login($this->adminLogin, $this->adminPass, $session)) { foreach ($admins as $user_id) { $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[$type . '_admin']; $xavcMemberObj->setStatus($status); $xavcMemberObj->setScoId($sco_id); if ($is_member) { $xavcMemberObj->updateXAVCMember(); } else { $xavcMemberObj->insertXAVCMember(); } $xavc_login = ilXAVCMembers::_lookupXAVCLogin($user_id); if (!empty($xavc_login)) { $this->xmlApi->updateMeetingParticipant($sco_id, $xavc_login, $session, $status); } } foreach ($tutors as $user_id) { if (($xavc_login = ilXAVCMembers::_lookupXAVCLogin($user_id)) != $this->adminLogin && $user_id != $owner_id) { $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[$type . '_tutor']; $xavcMemberObj->setStatus($status); $xavcMemberObj->setScoId($sco_id); if ($is_member) { $xavcMemberObj->updateXAVCMember(); } else { $xavcMemberObj->insertXAVCMember(); } if (!empty($xavc_login)) { $this->xmlApi->updateMeetingParticipant($sco_id, $xavc_login, $session, $status); } } } foreach ($members as $user_id) { if (($xavc_login = ilXAVCMembers::_lookupXAVCLogin($user_id)) != $this->adminLogin && $user_id != $owner_id) { $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[$type . '_member']; $xavcMemberObj->setStatus($status); $xavcMemberObj->setScoId($sco_id); if ($is_member) { $xavcMemberObj->updateXAVCMember(); } else { $xavcMemberObj->insertXAVCMember(); } if (!empty($xavc_login)) { $this->xmlApi->updateMeetingParticipant($sco_id, $xavc_login, $session, $status); } } } $xavcRoles->addAdministratorRole($owner_id); // local member table $xavcMemberObj = new ilXAVCMembers($ref_id, $owner_id); $status = $role_map[$type . '_owner']; $xavcMemberObj->setStatus($status); $xavcMemberObj->setScoId($sco_id); $is_member = ilXAVCMembers::_isMember($owner_id, $ref_id); if ($is_member) { $xavcMemberObj->updateXAVCMember(); } else { $xavcMemberObj->insertXAVCMember(); } $this->xmlApi->updateMeetingParticipant($sco_id, ilXAVCMembers::_lookupXAVCLogin($owner_id), $session, $status); } } }