28 include_once
'./webservice/soap/classes/class.ilSoapAdministration.php';
45 $ilAccess = $DIC[
'ilAccess'];
48 return $this->
raiseError(
'No valid target given.',
'Client');
52 return $this->
raiseError(
"Parent with ID $target_id has been deleted.",
'CLIENT_TARGET_DELETED');
55 $allowed_types = array(
'cat',
'grp',
'crs',
'fold',
'root');
56 if (!in_array($target_obj->getType(), $allowed_types)) {
58 'No valid target type. Target must be reference id of "course, group, category or folder"',
63 if (!$ilAccess->checkAccess(
'create',
'', $target_id,
"file")) {
64 return $this->
raiseError(
'No permission to create Files in target ' . $target_id .
'!',
'Client');
68 include_once
'./Modules/File/classes/class.ilFileXMLParser.php';
69 include_once
'./Modules/File/classes/class.ilFileException.php';
70 include_once
'./Modules/File/classes/class.ilObjFile.php';
76 if ($fileXMLParser->start()) {
79 $ilLog = $DIC[
'ilLog'];
81 $ilLog->write(__METHOD__ .
': File type: ' . $file->getFileType());
84 $file->createReference();
85 $file->putInTree($target_id);
86 $file->setPermissions($target_id);
89 $fileXMLParser->setFileContents();
92 return $file->getRefId();
95 return $this->
raiseError(
"Could not add file",
"Server");
98 $exception->getMessage(),
117 $rbacsystem = $DIC[
'rbacsystem'];
118 $tree = $DIC[
'tree'];
119 $ilLog = $DIC[
'ilLog'];
120 $ilAccess = $DIC[
'ilAccess'];
123 return $this->
raiseError(
'Cannot perform update since file has been deleted.',
'CLIENT_OBJECT_DELETED');
128 'No File found for id: ' . $requested_ref_id,
133 $permission_ok =
false;
135 if ($ilAccess->checkAccess(
'write',
'', $ref_id)) {
136 $permission_ok =
true;
141 if (!$permission_ok) {
143 'No permission to edit the File with id: ' . $requested_ref_id,
151 if (!is_object($file) || $file->getType() !==
"file") {
153 'Wrong obj id or type for File with id ' . $requested_ref_id,
158 include_once
'./Modules/File/classes/class.ilFileXMLParser.php';
159 include_once
'./Modules/File/classes/class.ilFileException.php';
163 if ($fileXMLParser->start()) {
164 $fileXMLParser->updateFileContents();
166 return $file->update();
170 $exception->getMessage(),
180 public function getFileXML(
string $sid,
int $requested_ref_id,
int $attachFileContentsMode)
189 if (!($requested_ref_id > 0)) {
191 'No ref id given. Aborting!',
198 $rbacsystem = $DIC[
'rbacsystem'];
199 $tree = $DIC[
'tree'];
200 $ilLog = $DIC[
'ilLog'];
201 $ilAccess = $DIC[
'ilAccess'];
205 'No File found for id: ' . $requested_ref_id,
211 return $this->
raiseError(
"Object with ID $requested_ref_id has been deleted.",
'Client');
214 $permission_ok =
false;
216 if ($ilAccess->checkAccess(
'read',
'', $ref_id)) {
217 $permission_ok =
true;
222 if (!$permission_ok) {
224 'No permission to edit the object with id: ' . $requested_ref_id,
232 if (!is_object($file) || $file->getType() !==
"file") {
234 'Wrong obj id or type for File with id ' . $requested_ref_id,
239 include_once
'./Modules/File/classes/class.ilFileXMLWriter.php';
242 $xmlWriter->setFile($file);
243 $xmlWriter->setAttachFileContents($attachFileContentsMode);
246 return $xmlWriter->getXML();
static _getAllReferences(int $id)
get all reference ids for object ID
raiseError(string $a_message, $a_code)
Soap file administration methods.
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
static _lookupObjectId(int $ref_id)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static getInstanceByObjId(?int $obj_id, bool $stop_on_error=true)
get an instance of an Ilias object by object id
addFile(string $sid, int $target_id, string $file_xml)