/**
  * @return mixed
  */
 public function getGalleryUsers()
 {
     $this->pluginObj = ilPlugin::getPluginObject('Services', 'Repository', 'robj', 'AdobeConnect');
     $this->pluginObj->includeClass('class.ilAdobeConnectRoles.php');
     $xavcRoles = new ilAdobeConnectRoles($_GET['ref_id']);
     $members = $xavcRoles->getUsers();
     // MEMBERS
     if (count($members)) {
         foreach ($members as $member_id) {
             if (!($usr_obj = ilObjectFactory::getInstanceByObjId($member_id, false))) {
                 continue;
             }
             if (!$usr_obj->getActive()) {
                 continue;
             }
             $user_data[$usr_obj->getId()] = array('id' => $usr_obj->getId(), 'user' => $usr_obj);
         }
     }
     return $user_data;
 }
 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");
 }