19 declare(strict_types=1);
27 include_once
'./webservice/soap/lib/nusoap.php';
28 include_once(
"./Services/Authentication/classes/class.ilAuthUtils.php");
50 defined(
'IL_SOAPMODE') &&
51 defined(
'IL_SOAPMODE_NUSOAP') &&
54 $this->error_method = self::NUSOAP;
56 $this->error_method = self::PHP5;
66 $ilUser = $DIC->user();
81 if (!
$GLOBALS[
'DIC'][
'ilAuthSession']->isAuthenticated()) {
87 $can = $DIC[
'legalDocuments']->canUseSoapApi()->applyTo(
new Ok($ilUser))->except(
88 fn($error) =>
new Error(is_string($error) ? $error : $error->getMessage())
96 if ($this->soap_check) {
98 $this->
setMessage(
'SOAP is not enabled in ILIAS administration for this client');
100 return ((
int) $set->get(
"soap_user_administration",
'0')) === 1;
108 $exploded = explode(
'::', $sid);
110 return is_array($exploded) ? $exploded : array(
'sid' =>
'',
'client' =>
'');
115 $this->message = $a_str;
125 $this->message .= isset($this->message) ?
' ' :
'';
126 $this->message .= $a_str;
131 $this->message_code = $a_code;
143 if (session_status() === PHP_SESSION_ACTIVE && $sid === session_id()) {
147 if (session_status() === PHP_SESSION_ACTIVE) {
154 require_once(
"Services/Init/classes/class.ilInitialisation.php");
164 require_once(
"Services/Init/classes/class.ilInitialisation.php");
175 require_once(
"Services/Init/classes/class.ilInitialisation.php");
184 include_once
'./Services/Authentication/classes/class.ilAuthFactory.php';
195 switch ($this->error_method) {
197 return new soap_fault($a_code,
'', $a_message);
199 return new SoapFault((
string) $a_code, $a_message);
206 switch ($this->error_method) {
220 array $expected_type,
222 bool $returnObject =
false 226 $rbacsystem = $DIC->rbac()->system();
231 'CLIENT_OBJECT_NOT_FOUND' 237 'Object is already trashed.',
238 'CLIENT_OBJECT_DELETED' 243 if (!in_array($type, $expected_type,
true)) {
245 "Wrong type $type for id. Expected: " . implode(
",", $expected_type),
246 'CLIENT_OBJECT_WRONG_TYPE' 249 if (!$rbacsystem->checkAccess($permission, $ref_id, $type)) {
251 'Missing permission $permission for type $type.',
252 'CLIENT_OBJECT_WRONG_PERMISSION' 259 return $this->
raiseError(
'No valid ref_id given',
'Client');
268 if (!defined(
"ILIAS_WEB_DIR")) {
269 define(
'ILIAS_WEB_DIR', dirname(__DIR__, 3) .
"/data/");
273 require_once(
"webservice/soap/classes/class.ilSoapInstallationInfoXMLWriter.php");
276 if (is_array($clientdirs)) {
277 foreach ($clientdirs as $clientdir) {
278 $writer->addClient($clientdir);
282 return $writer->getXML();
291 if (!defined(
"ILIAS_WEB_DIR")) {
292 define(
'ILIAS_WEB_DIR', dirname(__DIR__, 3) .
"/data/");
296 require_once(
"webservice/soap/classes/class.ilSoapInstallationInfoXMLWriter.php");
299 if (!$writer->addClient($clientdir)) {
301 'Client ID ' . $clientid .
'does not exist!',
306 return $writer->getXML();
appendMessage(string $a_str)
setMessageCode(string $a_code)
raiseError(string $a_message, $a_code)
int $error_method
Defines type of error handling (PHP5 || NUSOAP)
static _lookupObjId(int $ref_id)
static _exists(int $id, bool $reference=false, ?string $type=null)
checks if an object exists in object_data
const CONTEXT_SOAP
SOAP based authentication.
__construct(bool $use_nusoap=true)
static setCookie(string $a_cookie_name, string $a_cookie_value='', bool $a_also_set_super_global=true, bool $a_set_cookie_invalid=false)
checkSession(string $sid)
static _isInTrash(int $ref_id)
static getInstanceByRefId(int $ref_id, bool $stop_on_error=true)
get an instance of an Ilias object by reference id
A result encapsulates a value or an error and simplifies the handling of those.
checkObjectAccess(int $ref_id, array $expected_type, string $permission, bool $returnObject=false)
check access for ref id: expected type, permission, return object instance if returnobject is true ...
static setContext(int $a_context)
set context
setMessage(string $a_str)
initAuthenticationObject()
static getType()
Get context type.
static _lookupType(int $id, bool $reference=false)
getClientInfoXML(string $clientid)