/** * Handle create * @param ilECSSetting $server * @param type $a_content_id */ public function handleCreate(ilECSSetting $server, $a_content_id) { try { include_once './Services/WebServices/ECS/classes/Connectors/class.ilECSEnrolmentStatus.php'; include_once './Services/WebServices/ECS/classes/Connectors/class.ilECSEnrolmentStatusConnector.php'; $enrolment_con = new ilECSEnrolmentStatusConnector($server); $status = $enrolment_con->getEnrolmentStatus($a_content_id); $GLOBALS['ilLog']->write(__METHOD__ . ': ' . print_r($status, TRUE)); $GLOBALS['ilLog']->write(__METHOD__ . ': ' . $status->getPersonIdType()); $GLOBALS['ilLog']->write(__METHOD__ . ': ' . $status->getPersonId()); switch ($status->getPersonIdType()) { case ilECSEnrolmentStatus::ID_UID: $id_arr = ilUtil::parseImportId($status->getPersonId()); $GLOBALS['ilLog']->write(__METHOD__ . ': Handling status change to ' . $status->getStatus() . ' for user ' . $id_arr['id']); $this->doUpdate($id_arr['id'], $status); break; default: $GLOBALS['ilLog']->write(__METHOD__ . ': not implemented yes: person id type: ' . $status->getPersonIdType()); break; } } catch (ilECSConnectorException $e) { $GLOBALS['ilLog']->write(__METHOD__ . ': Enrolment status change failed with messsage: ' . $e->getMessage()); } return TRUE; }
/** * Update enrolment status * @param type $a_obj_id * @param ilObjUser $user * @param type $a_status * @return boolean */ protected static function updateEnrolmentStatus($a_obj_id, ilObjUser $user, $a_status) { include_once './Services/WebServices/ECS/classes/class.ilECSRemoteUser.php'; $remote = ilECSRemoteUser::factory($user->getId()); if (!$remote instanceof ilECSRemoteUser) { return FALSE; } include_once './Services/WebServices/ECS/classes/Connectors/class.ilECSEnrolmentStatus.php'; $enrol = new ilECSEnrolmentStatus(); $enrol->setId('il_' . $GLOBALS['ilSetting']->get('inst_id', 0) . '_' . ilObject::_lookupType($a_obj_id) . '_' . $a_obj_id); $enrol->setPersonId($remote->getRemoteUserId()); $enrol->setPersonIdType(ilECSEnrolmentStatus::ID_UID); $enrol->setStatus($a_status); try { include_once './Services/WebServices/ECS/classes/Connectors/class.ilECSEnrolmentStatusConnector.php'; $con = new ilECSEnrolmentStatusConnector(ilECSSetting::getInstanceByServerId(1)); $con->addEnrolmentStatus($enrol, $remote->getMid()); } catch (ilECSConnectorException $e) { $GLOBALS['ilLog']->write(__METHOD__ . ': update enrolment status faild with message: ' . $e->getMessage()); return false; } }