public function materials() { global $ilUser, $ilTabs, $ilAccess, $ilCtrl; $ilTabs->activateTab('materials'); try { // @todo wrap the creation/update of users // Create update user $map = new ilViteroUserMapping(); $vuid = $map->getVUserId($ilUser->getId()); $ucon = new ilViteroUserSoapConnector(); if (!$vuid) { $vuid = $ucon->createUser($ilUser); $map->map($ilUser->getId(), $vuid); } else { try { $ucon->updateUser($vuid, $ilUser); } catch (ilViteroConnectorException $e) { if ($e->getCode() == 53) { $map->unmap($ilUser->getId()); $vuid = $ucon->createUser($ilUser); $map->map($ilUser->getId(), $vuid); } } } // Assign user to vitero group $grp = new ilViteroGroupSoapConnector(); $grp->addUserToGroup($this->object->getVGroupId(), $vuid); $grp->changeGroupRole($this->object->getVGroupId(), $vuid, $ilAccess->checkAccess('write', '', $this->object->getRefId()) ? ilViteroGroupSoapConnector::ADMIN_ROLE : ilViteroGroupSoapConnector::MEMBER_ROLE); $sc = new ilViteroSessionCodeSoapConnector(); $dur = new ilDateTime(time(), IL_CAL_UNIX); $dur->increment(IL_CAL_HOUR, 2); $code_vms = $sc->createVmsSessionCode($vuid, $this->object->getVGroupId(), $dur); } catch (ilViteroConnectorException $e) { ilUtil::sendFailure($e->getViteroMessage(), true); $ilCtrl->redirect($this, 'infoScreen'); } $tpl = ilViteroPlugin::getInstance()->getTemplate('tpl.materials.html'); $tpl->setVariable('FRAME_SRC', ilViteroSettings::getInstance()->getGroupFolderLink() . '?fl=1&action=reload&topmargin=10&group_id=' . $this->object->getVGroupId() . '&' . 'code=' . $code_vms); $GLOBALS['tpl']->setContent($tpl->get()); }