Exemplo n.º 1
0
 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());
 }