/**
  *  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'));
         }
     }
 }
 public function deleteCrsGrpMembers($sco_id, $delete_user_ids)
 {
     $this->pluginObj->includeClass('class.ilAdobeConnectRoles.php');
     $this->pluginObj->includeClass('class.ilXAVCMembers.php');
     $xavcRoles = new ilAdobeConnectRoles($this->getRefId());
     if (is_array($delete_user_ids) && count($delete_user_ids) > 0) {
         foreach ($delete_user_ids as $usr_id) {
             $xavcRoles->detachMemberRole($usr_id);
             ilXAVCMembers::deleteXAVCMember($usr_id, $this->getRefId());
             $xavc_login = ilXAVCMembers::_lookupXAVCLogin($usr_id);
             $session = $this->xmlApi->getBreezeSession();
             if ($session != NULL && $this->xmlApi->login($this->adminLogin, $this->adminPass, $session)) {
                 $this->xmlApi->deleteMeetingParticipant($sco_id, $xavc_login, $session);
             }
             //remove from pd
             ilObjUser::_dropDesktopItem($usr_id, $this->getRefId(), 'xavc');
         }
     }
 }
 /**
  * Update switch participant at login if needed
  * @param String $login
  * @return String access-rights of user
  * 
  */
 public function updateSwitchParticipant($adobe_login_name)
 {
     global $ilUser;
     $this->pluginObj->includeClass('class.ilXAVCMembers.php');
     $user_id = $ilUser->getId();
     $ref_id = $this->getRefId();
     $status = ilXAVCMembers::_lookupStatus($user_id, $ref_id);
     if (ilXAVCMembers::_lookupXAVCLogin($user_id) != $adobe_login_name) {
         $member = new ilXAVCMember($ref_id, $user_id);
         $member->updateXAVCMember();
     }
     $session = $this->xmlApi->getBreezeSession();
     if ($status != $this->xmlApi->getMeetingPermission($adobe_login_name, $this->sco_id, $session)) {
         if (empty($status)) {
             $status = 'remove';
         }
         $this->xmlApi->updateMeetingParticipantByTechnicalUser($this->getScoId(), $adobe_login_name, $session, $status);
     }
     return $this->xmlApi->getMeetingPermission($adobe_login_name, $this->sco_id, $session);
 }