Esempio n. 1
0
 /**
  * @group IL_Init
  */
 public function testBasicSessionBehaviour()
 {
     global $ilUser;
     include_once "./Services/Authentication/classes/class.ilSession.php";
     $result = "";
     ilSession::_writeData("123456", "Testdata");
     if (ilSession::_exists("123456")) {
         $result .= "exists-";
     }
     if (ilSession::_getData("123456") == "Testdata") {
         $result .= "write-get-";
     }
     $duplicate = ilSession::_duplicate("123456");
     if (ilSession::_getData($duplicate) == "Testdata") {
         $result .= "duplicate-";
     }
     ilSession::_destroy("123456");
     if (!ilSession::_exists("123456")) {
         $result .= "destroy-";
     }
     ilSession::_destroyExpiredSessions();
     if (ilSession::_exists($duplicate)) {
         $result .= "destroyExp-";
     }
     ilSession::_destroyByUserId($ilUser->getId());
     if (!ilSession::_exists($duplicate)) {
         $result .= "destroyByUser-";
     }
     $this->assertEquals("exists-write-get-duplicate-destroy-destroyExp-destroyByUser-", $result);
 }
 /**
  * Call next task scheduler run
  */
 protected function initNextExecution()
 {
     global $ilLog;
     // Start task execution as backend process
     include_once 'Services/WebServices/SOAP/classes/class.ilSoapClient.php';
     $soap_client = new ilSoapClient();
     $soap_client->setResponseTimeout(1);
     $soap_client->enableWSDL(true);
     $ilLog->write(__METHOD__ . ': Trying to call Soap client...');
     $new_session_id = ilSession::_duplicate($_COOKIE['PHPSESSID']);
     $client_id = $_COOKIE['ilClientId'];
     if ($soap_client->init() and 0) {
         $ilLog->write(__METHOD__ . ': Calling soap handleECSTasks method...');
         $res = $soap_client->call('handleECSTasks', array($new_session_id . '::' . $client_id, $this->settings->getServerId()));
     } else {
         $ilLog->write(__METHOD__ . ': SOAP call failed. Calling clone method manually. ');
         include_once './webservice/soap/include/inc.soap_functions.php';
         $res = ilSoapFunctions::handleECSTasks($new_session_id . '::' . $client_id, $this->settings->getServerId());
     }
 }
Esempio n. 3
0
 /**
  * clone all objects according to this container
  *
  * @param string $session_id
  * @param string $client_id
  * @param string $new_type
  * @param int $ref_id
  * @param int $clone_source
  * @param array $options
  * @return new refid if clone has finished or parameter ref id if cloning is still in progress
  */
 public function cloneAllObject($session_id, $client_id, $new_type, $ref_id, $clone_source, $options, $soap_call = false)
 {
     global $ilLog;
     include_once './Services/Link/classes/class.ilLink.php';
     include_once 'Services/CopyWizard/classes/class.ilCopyWizardOptions.php';
     global $ilAccess, $ilErr, $rbacsystem, $tree, $ilUser;
     // Save wizard options
     $copy_id = ilCopyWizardOptions::_allocateCopyId();
     $wizard_options = ilCopyWizardOptions::_getInstance($copy_id);
     $wizard_options->saveOwner($ilUser->getId());
     $wizard_options->saveRoot($clone_source);
     // add entry for source container
     $wizard_options->initContainer($clone_source, $ref_id);
     foreach ($options as $source_id => $option) {
         $wizard_options->addEntry($source_id, $option);
     }
     $wizard_options->read();
     $wizard_options->storeTree($clone_source);
     // Special handling for course in existing courses
     if ($new_type == 'crs' and ilObject::_lookupType(ilObject::_lookupObjId($ref_id)) == 'crs') {
         $ilLog->write(__METHOD__ . ': Copy course in course...');
         $ilLog->write(__METHOD__ . ': Added mapping, source ID: ' . $clone_source . ', target ID: ' . $ref_id);
         $wizard_options->read();
         $wizard_options->dropFirstNode();
         $wizard_options->appendMapping($clone_source, $ref_id);
     }
     #print_r($options);
     // Duplicate session to avoid logout problems with backgrounded SOAP calls
     $new_session_id = ilSession::_duplicate($session_id);
     // Start cloning process using soap call
     include_once 'Services/WebServices/SOAP/classes/class.ilSoapClient.php';
     $soap_client = new ilSoapClient();
     $soap_client->setResponseTimeout(30);
     $soap_client->enableWSDL(true);
     $ilLog->write(__METHOD__ . ': Trying to call Soap client...');
     if ($soap_client->init()) {
         $ilLog->write(__METHOD__ . ': Calling soap clone method...');
         $res = $soap_client->call('ilClone', array($new_session_id . '::' . $client_id, $copy_id));
     } else {
         $ilLog->write(__METHOD__ . ': SOAP call failed. Calling clone method manually. ');
         $wizard_options->disableSOAP();
         $wizard_options->read();
         include_once './webservice/soap/include/inc.soap_functions.php';
         $res = ilSoapFunctions::ilClone($new_session_id . '::' . $client_id, $copy_id);
     }
     // Check if copy is in progress or if this has been called by soap (don't wait for finishing)
     if ($soap_call || ilCopyWizardOptions::_isFinished($copy_id)) {
         return $res;
     } else {
         return $ref_id;
     }
 }