ILIAS  release_5-2 Revision v5.2.25-18-g3f80b828510
ilSoapCourseAdministration Class Reference
+ Inheritance diagram for ilSoapCourseAdministration:
+ Collaboration diagram for ilSoapCourseAdministration:

Public Member Functions

 addCourse ($sid, $target_id, $crs_xml)
 
 deleteCourse ($sid, $course_id)
 
 assignCourseMember ($sid, $course_id, $user_id, $type)
 
 excludeCourseMember ($sid, $course_id, $user_id)
 
 isAssignedToCourse ($sid, $course_id, $user_id)
 
 getCourseXML ($sid, $course_id)
 
 updateCourse ($sid, $course_id, $xml)
 
 getCoursesForUser ($sid, $parameters)
 get courses which belong to a specific user, fullilling the status More...
 
- Public Member Functions inherited from ilSoapAdministration
 __construct ($use_nusoap=true)
 Constructor. More...
 
 initErrorWriter ()
 Overwrite error handler. More...
 
 __explodeSid ($sid)
 
 __setMessage ($a_str)
 
 __getMessage ()
 
 __appendMessage ($a_str)
 
 __setMessageCode ($a_code)
 
 __getMessageCode ()
 
 initAuth ($sid)
 Init authentication. More...
 
 initIlias ()
 
 __initAuthenticationObject ($a_auth_mode=AUTH_LOCAL)
 
 __raiseError ($a_message, $a_code)
 
 getNIC ($sid)
 get client information from current as xml result set More...
 
 isFault ($object)
 
 checkObjectAccess ($ref_id, $expected_type, $permission, $returnObject=false)
 check access for ref id: expected type, permission, return object instance if returnobject is true More...
 
 getInstallationInfoXML ()
 
 getClientInfoXML ($clientid)
 

Data Fields

const MEMBER = 1
 
const TUTOR = 2
 
const ADMIN = 4
 
const OWNER = 8
 
- Data Fields inherited from ilSoapAdministration
 $sauth = null
 
 $error_method = null
 

Additional Inherited Members

- Static Public Member Functions inherited from ilSoapAdministration
static return_bytes ($val)
 calculate bytes from K,M,G modifiers e.g: 8M = 8 * 1024 * 1024 bytes More...
 
- Protected Attributes inherited from ilSoapAdministration
 $soap_check = true
 

Detailed Description

Definition at line 35 of file class.ilSoapCourseAdministration.php.

Member Function Documentation

◆ addCourse()

ilSoapCourseAdministration::addCourse (   $sid,
  $target_id,
  $crs_xml 
)

Definition at line 44 of file class.ilSoapCourseAdministration.php.

45 {
46 $this->initAuth($sid);
47 $this->initIlias();
48
49 if(!$this->__checkSession($sid))
50 {
51 return $this->__raiseError($this->__getMessage(),$this->__getMessageCode());
52 }
53
54 if(!is_numeric($target_id))
55 {
56 return $this->__raiseError('No valid target id given. Please choose an existing reference id of an ILIAS category',
57 'Client');
58 }
59
60 global $rbacsystem;
61
62 if(!$target_obj =& ilObjectFactory::getInstanceByRefId($target_id, false))
63 {
64 return $this->__raiseError('No valid target given.', 'Client');
65 }
66
68 {
69 return $this->__raiseError("Parent with ID $target_id has been deleted.", 'CLIENT_OBJECT_DELETED');
70 }
71
72 if(!$rbacsystem->checkAccess('create',$target_id,'crs'))
73 {
74 return $this->__raiseError('Check access failed. No permission to create courses','Server');
75 }
76
77
78 // Start import
79 include_once("Modules/Course/classes/class.ilObjCourse.php");
80
81 $newObj = new ilObjCourse();
82 $newObj->setType('crs');
83 $newObj->setTitle('dummy');
84 $newObj->setDescription("");
85 $newObj->create(true); // true for upload
86 $newObj->createReference();
87 $newObj->putInTree($target_id);
88 $newObj->setPermissions($target_id);
89
90 include_once 'Modules/Course/classes/class.ilCourseXMLParser.php';
91
92 $xml_parser = new ilCourseXMLParser($newObj);
93 $xml_parser->setXMLContent($crs_xml);
94 $xml_parser->startParsing();
95 return $newObj->getRefId() ? $newObj->getRefId() : "0";
96
97 }
Class ilObjCourse.
static getInstanceByRefId($a_ref_id, $stop_on_error=true)
get an instance of an Ilias object by reference id
static _isInTrash($a_ref_id)
checks wether object is in trash
initAuth($sid)
Init authentication.
__raiseError($a_message, $a_code)
$target_id
Definition: goto.php:51

References $target_id, ilSoapAdministration\__getMessage(), ilSoapAdministration\__getMessageCode(), ilSoapAdministration\__raiseError(), ilObject\_isInTrash(), ilObjectFactory\getInstanceByRefId(), ilSoapAdministration\initAuth(), and ilSoapAdministration\initIlias().

+ Here is the call graph for this function:

◆ assignCourseMember()

ilSoapCourseAdministration::assignCourseMember (   $sid,
  $course_id,
  $user_id,
  $type 
)

Definition at line 163 of file class.ilSoapCourseAdministration.php.

164 {
165 $this->initAuth($sid);
166 $this->initIlias();
167
168 if(!$this->__checkSession($sid))
169 {
170 return $this->__raiseError($this->__getMessage(),$this->__getMessageCode());
171 }
172
173 if(!is_numeric($course_id))
174 {
175 return $this->__raiseError('No valid course id given. Please choose an existing reference id of an ILIAS course',
176 'Client');
177 }
178
179 global $rbacsystem;
180
181 if(($obj_type = ilObject::_lookupType(ilObject::_lookupObjId($course_id))) != 'crs')
182 {
183 $course_id = end($ref_ids = ilObject::_getAllReferences($course_id));
184 if(ilObject::_lookupType(ilObject::_lookupObjId($course_id)) != 'crs')
185 {
186 return $this->__raiseError('Invalid course id. Object with id "'. $course_id.'" is not of type "course"','Client');
187 }
188 }
189
190 if(!$rbacsystem->checkAccess('write',$course_id))
191 {
192 return $this->__raiseError('Check access failed. No permission to write to course','Server');
193 }
194
195
196 if(ilObject::_lookupType($user_id) != 'usr')
197 {
198 return $this->__raiseError('Invalid user id. User with id "'. $user_id.' does not exist','Client');
199 }
200 if($type != 'Admin' and
201 $type != 'Tutor' and
202 $type != 'Member')
203 {
204 return $this->__raiseError('Invalid type given. Parameter "type" must be "Admin", "Tutor" or "Member"','Client');
205 }
206
207 if(!$tmp_course = ilObjectFactory::getInstanceByRefId($course_id,false))
208 {
209 return $this->__raiseError('Cannot create course instance!','Server');
210 }
211
212 if(!$tmp_user = ilObjectFactory::getInstanceByObjId($user_id,false))
213 {
214 return $this->__raiseError('Cannot create user instance!','Server');
215 }
216
217 include_once 'Modules/Course/classes/class.ilCourseParticipants.php';
218
219 $course_members = ilCourseParticipants::_getInstanceByObjId($tmp_course->getId());
220
221 switch($type)
222 {
223 case 'Admin':
224 require_once("Services/Administration/classes/class.ilSetting.php");
225 $settings = new ilSetting();
226 $course_members->add($tmp_user->getId(),IL_CRS_ADMIN);
227 $course_members->updateNotification($tmp_user->getId(),$settings->get('mail_crs_admin_notification', true));
228 break;
229
230 case 'Tutor':
231 $course_members->add($tmp_user->getId(),IL_CRS_TUTOR);
232 break;
233
234 case 'Member':
235 $course_members->add($tmp_user->getId(),IL_CRS_MEMBER);
236 break;
237 }
238
239 return true;
240 }
const IL_CRS_ADMIN
Base class for course and group participants.
const IL_CRS_MEMBER
const IL_CRS_TUTOR
static _getInstanceByObjId($a_obj_id)
Get singleton instance.
static getInstanceByObjId($a_obj_id, $stop_on_error=true)
get an instance of an Ilias object by object id
static _lookupObjId($a_id)
static _getAllReferences($a_id)
get all reference ids of object
static _lookupType($a_id, $a_reference=false)
lookup object type
ILIAS Setting Class.

References ilSoapAdministration\__getMessage(), ilSoapAdministration\__getMessageCode(), ilSoapAdministration\__raiseError(), ilObject\_getAllReferences(), ilCourseParticipants\_getInstanceByObjId(), ilObject\_lookupObjId(), ilObject\_lookupType(), ilObjectFactory\getInstanceByObjId(), ilObjectFactory\getInstanceByRefId(), IL_CRS_ADMIN, IL_CRS_MEMBER, IL_CRS_TUTOR, ilSoapAdministration\initAuth(), and ilSoapAdministration\initIlias().

+ Here is the call graph for this function:

◆ deleteCourse()

ilSoapCourseAdministration::deleteCourse (   $sid,
  $course_id 
)

Definition at line 99 of file class.ilSoapCourseAdministration.php.

100 {
101 $this->initAuth($sid);
102 $this->initIlias();
103
104 if(!$this->__checkSession($sid))
105 {
106 return $this->__raiseError($this->__getMessage(),$this->__getMessageCode());
107 }
108
109 if(!is_numeric($course_id))
110 {
111 return $this->__raiseError('No valid course id given. Please choose an existing reference id of an ILIAS course',
112 'Client');
113 }
114
115 include_once "./Services/Utilities/classes/class.ilUtil.php";
116 global $rbacsystem;
117
118 if(($obj_type = ilObject::_lookupType(ilObject::_lookupObjId($course_id))) != 'crs')
119 {
120 $course_id = end($ref_ids = ilObject::_getAllReferences($course_id));
121 if(ilObject::_lookupType(ilObject::_lookupObjId($course_id)) != 'crs')
122 {
123 return $this->__raiseError('Invalid course id. Object with id "'. $course_id.'" is not of type "course"','Client');
124 }
125 }
126
127 if(!$rbacsystem->checkAccess('delete',$course_id))
128 {
129 return $this->__raiseError('Check access failed. No permission to delete course','Server');
130 }
131
132
133 global $tree,$rbacadmin,$log;
134
135 if($tree->isDeleted($course_id))
136 {
137 return $this->__raiseError('Node already deleted','Server');
138 }
139
140 $subnodes = $tree->getSubtree($tree->getNodeData($course_id));
141 foreach ($subnodes as $subnode)
142 {
143 $rbacadmin->revokePermission($subnode["child"]);
144
145 // remove item from all user desktops
146 $affected_users = ilUtil::removeItemFromDesktops($subnode["child"]);
147
148 }
149 if(!$tree->saveSubTree($course_id,true))
150 {
151 return $this->__raiseError('Node already deleted','Client');
152 }
153
154 // write log entry
155 $log->write("SOAP ilObjectGUI::confirmedDeleteObject(), moved ref_id ".$course_id." to trash");
156
157 // remove item from all user desktops
158 $affected_users = ilUtil::removeItemFromDesktops($course_id);
159
160 return true;
161 }
static removeItemFromDesktops($a_id)
removes object from all user's desktops @access public

References $log, ilSoapAdministration\__getMessage(), ilSoapAdministration\__getMessageCode(), ilSoapAdministration\__raiseError(), ilObject\_getAllReferences(), ilObject\_lookupObjId(), ilObject\_lookupType(), ilSoapAdministration\initAuth(), ilSoapAdministration\initIlias(), and ilUtil\removeItemFromDesktops().

+ Here is the call graph for this function:

◆ excludeCourseMember()

ilSoapCourseAdministration::excludeCourseMember (   $sid,
  $course_id,
  $user_id 
)

Definition at line 242 of file class.ilSoapCourseAdministration.php.

243 {
244 $this->initAuth($sid);
245 $this->initIlias();
246
247 if(!$this->__checkSession($sid))
248 {
249 return $this->__raiseError($this->__getMessage(),$this->__getMessageCode());
250 }
251 if(!is_numeric($course_id))
252 {
253 return $this->__raiseError('No valid course id given. Please choose an existing reference id of an ILIAS course',
254 'Client');
255 }
256
257 global $rbacsystem;
258
259 if(($obj_type = ilObject::_lookupType(ilObject::_lookupObjId($course_id))) != 'crs')
260 {
261 $course_id = end($ref_ids = ilObject::_getAllReferences($course_id));
262 if(ilObject::_lookupType(ilObject::_lookupObjId($course_id)) != 'crs')
263 {
264 return $this->__raiseError('Invalid course id. Object with id "'. $course_id.'" is not of type "course"','Client');
265 }
266 }
267
268 if(ilObject::_lookupType($user_id) != 'usr')
269 {
270 return $this->__raiseError('Invalid user id. User with id "'. $user_id.' does not exist','Client');
271 }
272
273 if(!$tmp_course = ilObjectFactory::getInstanceByRefId($course_id,false))
274 {
275 return $this->__raiseError('Cannot create course instance!','Server');
276 }
277
278 if(!$rbacsystem->checkAccess('write',$course_id))
279 {
280 return $this->__raiseError('Check access failed. No permission to write to course','Server');
281 }
282
283 include_once 'Modules/Course/classes/class.ilCourseParticipants.php';
284
285 $course_members = ilCourseParticipants::_getInstanceByObjId($tmp_course->getId());
286 if(!$course_members->checkLastAdmin(array($user_id)))
287 {
288 return $this->__raiseError('Cannot deassign last administrator from course','Server');
289 }
290
291 $course_members->delete($user_id);
292
293 return true;
294 }

References ilSoapAdministration\__getMessage(), ilSoapAdministration\__getMessageCode(), ilSoapAdministration\__raiseError(), ilObject\_getAllReferences(), ilCourseParticipants\_getInstanceByObjId(), ilObject\_lookupObjId(), ilObject\_lookupType(), ilObjectFactory\getInstanceByRefId(), ilSoapAdministration\initAuth(), and ilSoapAdministration\initIlias().

+ Here is the call graph for this function:

◆ getCoursesForUser()

ilSoapCourseAdministration::getCoursesForUser (   $sid,
  $parameters 
)

get courses which belong to a specific user, fullilling the status

Parameters
string$sid
string$parametersfollowing xmlresultset, columns (user_id, status with values 1 = "MEMBER", 2 = "TUTOR", 4 = "ADMIN", 8 = "OWNER" and any xor operation e.g. 1 + 4 = 5 = ADMIN and TUTOR, 7 = ADMIN and TUTOR and MEMBER)
stringXMLResultSet, columns (ref_id, xml, parent_ref_id)

Definition at line 478 of file class.ilSoapCourseAdministration.php.

478 {
479
480 $this->initAuth($sid);
481 $this->initIlias();
482
483 if(!$this->__checkSession($sid))
484 {
485 return $this->__raiseError($this->__getMessage(),$this->__getMessageCode());
486 }
487
488 global $rbacreview, $ilObjDataCache, $tree;
489
490 include_once 'webservice/soap/classes/class.ilXMLResultSetParser.php';
491 $parser = new ilXMLResultSetParser($parameters);
492 try {
493 $parser->startParsing();
494 } catch (ilSaxParserException $exception) {
495 return $this->__raiseError($exception->getMessage(), "Client");
496 }
497 $xmlResultSet = $parser->getXMLResultSet();
498
499 if (!$xmlResultSet->hasColumn ("user_id"))
500 return $this->__raiseError("parameter user_id is missing", "Client");
501
502 if (!$xmlResultSet->hasColumn ("status"))
503 return $this->__raiseError("parameter status is missing", "Client");
504
505 $user_id = (int) $xmlResultSet->getValue (0, "user_id");
506 $status = (int) $xmlResultSet->getValue (0, "status");
507
508 $ref_ids = array();
509
510 // get roles
511#var_dump($xmlResultSet);
512#echo "uid:".$user_id;
513#echo "status:".$status;
517 foreach($rbacreview->assignedRoles($user_id) as $role_id)
518 {
519 if($role = ilObjectFactory::getInstanceByObjId($role_id,false))
520 {
521 #echo $role->getType();
522 if ($role->getType() != "role")
523 continue;
524 if ($role->getParent() == ROLE_FOLDER_ID)
525 {
526 continue;
527 }
528 $role_title = $role->getTitle();
529
530 if ($ref_id = ilUtil::__extractRefId($role_title))
531 {
533 continue;
534
535 #echo $role_title;
536 if (ilSoapCourseAdministration::MEMBER == ($status & ilSoapCourseAdministration::MEMBER) && strpos($role_title, "member") !== false)
537 {
538 $ref_ids [] = $ref_id;
539 } elseif (ilSoapCourseAdministration::TUTOR == ($status & ilSoapCourseAdministration::TUTOR) && strpos($role_title, "tutor") !== false)
540 {
541 $ref_ids [] = $ref_id;
542 } elseif (ilSoapCourseAdministration::ADMIN == ($status & ilSoapCourseAdministration::ADMIN) && strpos($role_title, "admin") !== false)
543 {
544 $ref_ids [] = $ref_id;
545 } elseif (($status & ilSoapCourseAdministration::OWNER) == ilSoapCourseAdministration::OWNER && $ilObjDataCache->lookupOwner($ilObjDataCache->lookupObjId($ref_id)) == $user_id)
546 {
547 $ref_ids [] = $ref_id;
548 }
549 }
550 }
551 }
553 {
554 $owned_objects = ilObjectFactory::getObjectsForOwner("crs", $user_id);
555 foreach ($owned_objects as $obj_id) {
556 $allrefs = ilObject::_getAllReferences($obj_id);
557 foreach($allrefs as $r)
558 {
559 if($tree->isDeleted($r))
560 {
561 continue;
562 }
563 if ($tree->isInTree($r))
564 {
565 $refs[] = $r;
566 }
567 }
568 if (count($refs) > 0)
569 $ref_ids[] = array_pop($refs);
570
571 }
572 }
573 $ref_ids = array_unique($ref_ids);
574
575
576
577 $ref_ids = array_unique($ref_ids);
578#print_r($ref_ids);
579 include_once 'webservice/soap/classes/class.ilXMLResultSetWriter.php';
580 include_once 'Modules/Course/classes/class.ilObjCourse.php';
581 include_once 'Modules/Course/classes/class.ilCourseXMLWriter.php';
582
583 $xmlResultSet = new ilXMLResultSet();
584 $xmlResultSet->addColumn("ref_id");
585 $xmlResultSet->addColumn("xml");
586 $xmlResultSet->addColumn("parent_ref_id");
587
588 global $ilUser;
589 //#18004
590 // Enable to see own participations by reducing the needed permissions
591 $permission = $user_id == $ilUser->getId() ? 'read' : 'write';
592
593 foreach ($ref_ids as $course_id) {
594 $course_obj = $this->checkObjectAccess($course_id,"crs",$permission, true);
595 if ($course_obj instanceof ilObjCourse) {
596 $row = new ilXMLResultSetRow();
597 $row->setValue("ref_id", $course_id);
598 $xmlWriter = new ilCourseXMLWriter($course_obj);
599 $xmlWriter->setAttachUsers(false);
600 $xmlWriter->start();
601 $row->setValue("xml", $xmlWriter->getXML());
602 $row->setValue("parent_ref_id", $tree->getParentId($course_id));
603 $xmlResultSet->addRow($row);
604 }
605 }
606 $xmlResultSetWriter = new ilXMLResultSetWriter($xmlResultSet);
607 $xmlResultSetWriter->start();
608 return $xmlResultSetWriter->getXML();
609 }
$parser
Definition: BPMN2Parser.php:24
getObjectsForOwner($object_type, $owner_id)
returns all objects of an owner, filtered by type, objects are not deleted!
static _exists($a_id, $a_reference=false, $a_type=null)
checks if an object exists in object_data@access public
SaxParserException thrown by ilSaxParser if property throwException is set.
checkObjectAccess($ref_id, $expected_type, $permission, $returnObject=false)
check access for ref id: expected type, permission, return object instance if returnobject is true
static __extractRefId($role_title)
extract ref id from role title, e.g.
XML Writer for XMLResultSet.
$r
Definition: example_031.php:79
$ref_id
Definition: sahs_server.php:39
$ilUser
Definition: imgupload.php:18

References $ilUser, $parser, $r, $ref_id, $row, ilUtil\__extractRefId(), ilSoapAdministration\__getMessage(), ilSoapAdministration\__getMessageCode(), ilSoapAdministration\__raiseError(), ilObject\_exists(), ilObject\_getAllReferences(), ilObject\_isInTrash(), ADMIN, ilSoapAdministration\checkObjectAccess(), ilObjectFactory\getInstanceByObjId(), ilObjectFactory\getObjectsForOwner(), ilSoapAdministration\initAuth(), ilSoapAdministration\initIlias(), MEMBER, OWNER, and TUTOR.

+ Here is the call graph for this function:

◆ getCourseXML()

ilSoapCourseAdministration::getCourseXML (   $sid,
  $course_id 
)

Definition at line 357 of file class.ilSoapCourseAdministration.php.

358 {
359 $this->initAuth($sid);
360 $this->initIlias();
361
362 if(!$this->__checkSession($sid))
363 {
364 return $this->__raiseError($this->__getMessage(),$this->__getMessageCode());
365 }
366 if(!is_numeric($course_id))
367 {
368 return $this->__raiseError('No valid course id given. Please choose an existing reference id of an ILIAS course',
369 'Client');
370 }
371
372 global $rbacsystem;
373
374 $tmp_course = $this->checkObjectAccess($course_id, "crs", "read", true);
375 if ($this->isFault($tmp_course)) {
376 return $tmp_course;
377 }
378
379 /*if(($obj_type = ilObject::_lookupType(ilObject::_lookupObjId($course_id))) != 'crs')
380 {
381 $course_id = end($ref_ids = ilObject::_getAllReferences($course_id));
382 if(ilObject::_lookupType(ilObject::_lookupObjId($course_id)) != 'crs')
383 {
384 return $this->__raiseError('Invalid course id. Object with id "'. $course_id.'" is not of type "course"','Client');
385 }
386 }
387
388 if(!$tmp_course = ilObjectFactory::getInstanceByRefId($course_id,false))
389 {
390 return $this->__raiseError('Cannot create course instance!','Server');
391 }
392
393 if(!$rbacsystem->checkAccess('read',$course_id))
394 {
395 return $this->__raiseError('Check access failed. No permission to read course','Server');
396 }*/
397
398 include_once 'Modules/Course/classes/class.ilCourseXMLWriter.php';
399
400 $xml_writer = new ilCourseXMLWriter($tmp_course);
401 $xml_writer->start();
402
403 return $xml_writer->getXML();
404 }

References ilSoapAdministration\__getMessage(), ilSoapAdministration\__getMessageCode(), ilSoapAdministration\__raiseError(), ilSoapAdministration\checkObjectAccess(), ilSoapAdministration\initAuth(), ilSoapAdministration\initIlias(), and ilSoapAdministration\isFault().

+ Here is the call graph for this function:

◆ isAssignedToCourse()

ilSoapCourseAdministration::isAssignedToCourse (   $sid,
  $course_id,
  $user_id 
)

Definition at line 297 of file class.ilSoapCourseAdministration.php.

298 {
299 $this->initAuth($sid);
300 $this->initIlias();
301
302 if(!$this->__checkSession($sid))
303 {
304 return $this->__raiseError($this->__getMessage(),$this->__getMessageCode());
305 }
306 if(!is_numeric($course_id))
307 {
308 return $this->__raiseError('No valid course id given. Please choose an existing reference id of an ILIAS course',
309 'Client');
310 }
311 global $rbacsystem;
312
313 if(($obj_type = ilObject::_lookupType(ilObject::_lookupObjId($course_id))) != 'crs')
314 {
315 $course_id = end($ref_ids = ilObject::_getAllReferences($course_id));
316 if(ilObject::_lookupType(ilObject::_lookupObjId($course_id)) != 'crs')
317 {
318 return $this->__raiseError('Invalid course id. Object with id "'. $course_id.'" is not of type "course"','Client');
319 }
320 }
321
322 if(ilObject::_lookupType($user_id) != 'usr')
323 {
324 return $this->__raiseError('Invalid user id. User with id "'. $user_id.' does not exist','Client');
325 }
326
327 if(!$tmp_course = ilObjectFactory::getInstanceByRefId($course_id,false))
328 {
329 return $this->__raiseError('Cannot create course instance!','Server');
330 }
331
332 if(!$rbacsystem->checkAccess('write',$course_id))
333 {
334 return $this->__raiseError('Check access failed. No permission to write to course','Server');
335 }
336
337 include_once './Modules/Course/classes/class.ilCourseParticipants.php';
338 $crs_members = ilCourseParticipants::_getInstanceByObjId($tmp_course->getId());
339
340 if($crs_members->isAdmin($user_id))
341 {
342 return IL_CRS_ADMIN;
343 }
344 if($crs_members->isTutor($user_id))
345 {
346 return IL_CRS_TUTOR;
347 }
348 if($crs_members->isMember($user_id))
349 {
350 return IL_CRS_MEMBER;
351 }
352
353 return "0";
354 }

References ilSoapAdministration\__getMessage(), ilSoapAdministration\__getMessageCode(), ilSoapAdministration\__raiseError(), ilObject\_getAllReferences(), ilCourseParticipants\_getInstanceByObjId(), ilObject\_lookupObjId(), ilObject\_lookupType(), ilObjectFactory\getInstanceByRefId(), IL_CRS_ADMIN, IL_CRS_MEMBER, IL_CRS_TUTOR, ilSoapAdministration\initAuth(), and ilSoapAdministration\initIlias().

+ Here is the call graph for this function:

◆ updateCourse()

ilSoapCourseAdministration::updateCourse (   $sid,
  $course_id,
  $xml 
)

Definition at line 406 of file class.ilSoapCourseAdministration.php.

407 {
408 $this->initAuth($sid);
409 $this->initIlias();
410
411 if(!$this->__checkSession($sid))
412 {
413 return $this->__raiseError($this->__getMessage(),$this->__getMessageCode());
414 }
415
416 if(!is_numeric($course_id))
417 {
418 return $this->__raiseError('No valid course id given. Please choose an existing reference id of an ILIAS course',
419 'Client');
420 }
421
422 global $rbacsystem;
423
424 if(($obj_type = ilObject::_lookupType(ilObject::_lookupObjId($course_id))) != 'crs')
425 {
426 $course_id = end($ref_ids = ilObject::_getAllReferences($course_id));
427 if(ilObject::_lookupType(ilObject::_lookupObjId($course_id)) != 'crs')
428 {
429 return $this->__raiseError('Invalid course id. Object with id "'. $course_id.'" is not of type "course"','Client');
430 }
431 }
432
433 if(!$tmp_course = ilObjectFactory::getInstanceByRefId($course_id,false))
434 {
435 return $this->__raiseError('Cannot create course instance!','Server');
436 }
437
438 if(!$rbacsystem->checkAccess('write',$course_id))
439 {
440 return $this->__raiseError('Check access failed. No permission to write course','Server');
441 }
442
443
444 // First delete old meta data
445 include_once 'Services/MetaData/classes/class.ilMD.php';
446
447 $md = new ilMD($tmp_course->getId(),0,'crs');
448 $md->deleteAll();
449
450 include_once 'Modules/Course/classes/class.ilCourseParticipants.php';
451 ilCourseParticipants::_deleteAllEntries($tmp_course->getId());
452
453
454 include_once 'Modules/Course/classes/class.ilCourseWaitingList.php';
455 ilCourseWaitingList::_deleteAll($tmp_course->getId());
456
457 include_once 'Modules/Course/classes/class.ilCourseXMLParser.php';
458
459 $xml_parser = new ilCourseXMLParser($tmp_course);
460 $xml_parser->setXMLContent($xml);
461
462 $xml_parser->startParsing();
463
464 $tmp_course->MDUpdateListener('General');
465
466 return true;
467 }
static _deleteAllEntries($a_obj_id)
Delete all entries Normally called for course deletion.
static _deleteAll($a_obj_id)
delete all

References ilSoapAdministration\__getMessage(), ilSoapAdministration\__getMessageCode(), ilSoapAdministration\__raiseError(), ilWaitingList\_deleteAll(), ilParticipants\_deleteAllEntries(), ilObject\_getAllReferences(), ilObject\_lookupObjId(), ilObject\_lookupType(), ilObjectFactory\getInstanceByRefId(), ilSoapAdministration\initAuth(), and ilSoapAdministration\initIlias().

+ Here is the call graph for this function:

Field Documentation

◆ ADMIN

const ilSoapCourseAdministration::ADMIN = 4

Definition at line 39 of file class.ilSoapCourseAdministration.php.

Referenced by getCoursesForUser().

◆ MEMBER

const ilSoapCourseAdministration::MEMBER = 1

Definition at line 37 of file class.ilSoapCourseAdministration.php.

Referenced by getCoursesForUser().

◆ OWNER

const ilSoapCourseAdministration::OWNER = 8

Definition at line 40 of file class.ilSoapCourseAdministration.php.

Referenced by getCoursesForUser().

◆ TUTOR

const ilSoapCourseAdministration::TUTOR = 2

Definition at line 38 of file class.ilSoapCourseAdministration.php.

Referenced by getCoursesForUser().


The documentation for this class was generated from the following file: