33include_once 
'./webservice/soap/classes/class.ilSoapAdministration.php';
 
   44                parent::ilSoapAdministration();
 
   54                if(!$this->__checkSession($sid))
 
   61                        return $this->
__raiseError(
'No valid target id given. Please choose an existing reference id of an ILIAS category',
 
   69                        return $this->
__raiseError(
'No valid target given.', 
'Client');
 
   74                        return $this->
__raiseError(
"Parent with ID $target_id has been deleted.", 
'CLIENT_OBJECT_DELETED');
 
   77                if(!$rbacsystem->checkAccess(
'create',
$target_id,
'crs'))
 
   79                        return $this->
__raiseError(
'Check access failed. No permission to create courses',
'Server');
 
   84                include_once(
"Modules/Course/classes/class.ilObjCourse.php");
 
   87                $newObj->setType(
'crs');
 
   88                $newObj->setTitle(
'dummy');
 
   89                $newObj->setDescription(
"");
 
   90                $newObj->create(
true); 
 
   91                $newObj->createReference();
 
   95                include_once 
'Modules/Course/classes/class.ilCourseXMLParser.php';
 
   98                $xml_parser->setXMLContent($crs_xml);
 
   99                $xml_parser->startParsing();
 
  100                return $newObj->getRefId() ? $newObj->getRefId() : 
"0";
 
  109                if(!$this->__checkSession($sid))
 
  114                if(!is_numeric($course_id))
 
  116                        return $this->
__raiseError(
'No valid course id given. Please choose an existing reference id of an ILIAS course',
 
  120                include_once 
"./Services/Utilities/classes/class.ilUtil.php";
 
  128                                return $this->
__raiseError(
'Invalid course id. Object with id "'. $course_id.
'" is not of type "course"',
'Client');
 
  132                if(!$rbacsystem->checkAccess(
'delete',$course_id))
 
  134                        return $this->
__raiseError(
'Check access failed. No permission to delete course',
'Server');
 
  138                global $tree,$rbacadmin,
$log;
 
  140                if($tree->isDeleted($course_id))
 
  142                        return $this->
__raiseError(
'Node already deleted',
'Server');
 
  145                $subnodes = $tree->getSubtree($tree->getNodeData($course_id));
 
  146                foreach ($subnodes as $subnode)
 
  148                        $rbacadmin->revokePermission($subnode[
"child"]);
 
  154                if(!$tree->saveSubTree($course_id,
true))
 
  156                        return $this->
__raiseError(
'Node already deleted',
'Client');
 
  160                $log->write(
"SOAP ilObjectGUI::confirmedDeleteObject(), moved ref_id ".$course_id.
" to trash");
 
  173                if(!$this->__checkSession($sid))
 
  178                if(!is_numeric($course_id))
 
  180                        return $this->
__raiseError(
'No valid course id given. Please choose an existing reference id of an ILIAS course',
 
  191                                return $this->
__raiseError(
'Invalid course id. Object with id "'. $course_id.
'" is not of type "course"',
'Client');
 
  195                if(!$rbacsystem->checkAccess(
'write',$course_id))
 
  197                        return $this->
__raiseError(
'Check access failed. No permission to write to course',
'Server');
 
  203                        return $this->
__raiseError(
'Invalid user id. User with id "'. $user_id.
' does not exist',
'Client');
 
  205                if($type != 
'Admin' and
 
  209                        return $this->
__raiseError(
'Invalid type given. Parameter "type" must be "Admin", "Tutor" or "Member"',
'Client');
 
  214                        return $this->
__raiseError(
'Cannot create course instance!',
'Server');
 
  219                        return $this->
__raiseError(
'Cannot create user instance!',
'Server');
 
  222                include_once 
'Modules/Course/classes/class.ilCourseParticipants.php';
 
  229                                require_once(
"Services/Administration/classes/class.ilSetting.php");
 
  232                                $course_members->updateNotification($tmp_user->getId(),$settings->get(
'mail_crs_admin_notification', 
true));
 
  252                if(!$this->__checkSession($sid))
 
  256                if(!is_numeric($course_id))
 
  258                        return $this->
__raiseError(
'No valid course id given. Please choose an existing reference id of an ILIAS course',
 
  269                                return $this->
__raiseError(
'Invalid course id. Object with id "'. $course_id.
'" is not of type "course"',
'Client');
 
  275                        return $this->
__raiseError(
'Invalid user id. User with id "'. $user_id.
' does not exist',
'Client');
 
  280                        return $this->
__raiseError(
'Cannot create course instance!',
'Server');
 
  283                if(!$rbacsystem->checkAccess(
'write',$course_id))
 
  285                        return $this->
__raiseError(
'Check access failed. No permission to write to course',
'Server');
 
  288                include_once 
'Modules/Course/classes/class.ilCourseParticipants.php';
 
  291                if(!$course_members->checkLastAdmin(array($user_id)))
 
  293                        return $this->
__raiseError(
'Cannot deassign last administrator from course',
'Server');
 
  296                $course_members->delete($user_id);
 
  307                if(!$this->__checkSession($sid))
 
  311                if(!is_numeric($course_id))
 
  313                        return $this->
__raiseError(
'No valid course id given. Please choose an existing reference id of an ILIAS course',
 
  323                                return $this->
__raiseError(
'Invalid course id. Object with id "'. $course_id.
'" is not of type "course"',
'Client');
 
  329                        return $this->
__raiseError(
'Invalid user id. User with id "'. $user_id.
' does not exist',
'Client');
 
  334                        return $this->
__raiseError(
'Cannot create course instance!',
'Server');
 
  337                if(!$rbacsystem->checkAccess(
'write',$course_id))
 
  339                        return $this->
__raiseError(
'Check access failed. No permission to write to course',
'Server');
 
  342                include_once 
'./Modules/Course/classes/class.ilCourseParticipants.php';
 
  345                if($crs_members->isAdmin($user_id))
 
  349                if($crs_members->isTutor($user_id))
 
  353                if($crs_members->isMember($user_id))
 
  367                if(!$this->__checkSession($sid))
 
  371                if(!is_numeric($course_id))
 
  373                        return $this->
__raiseError(
'No valid course id given. Please choose an existing reference id of an ILIAS course',
 
  380                if ($this->
isFault($tmp_course)) {
 
  403                include_once 
'Modules/Course/classes/class.ilCourseXMLWriter.php';
 
  406                $xml_writer->start();
 
  408                return $xml_writer->getXML();
 
  416                if(!$this->__checkSession($sid))
 
  421                if(!is_numeric($course_id))
 
  423                        return $this->
__raiseError(
'No valid course id given. Please choose an existing reference id of an ILIAS course',
 
  434                                return $this->
__raiseError(
'Invalid course id. Object with id "'. $course_id.
'" is not of type "course"',
'Client');
 
  440                        return $this->
__raiseError(
'Cannot create course instance!',
'Server');
 
  443                if(!$rbacsystem->checkAccess(
'write',$course_id))
 
  445                        return $this->
__raiseError(
'Check access failed. No permission to write course',
'Server');
 
  450                include_once 
'Services/MetaData/classes/class.ilMD.php';
 
  452                $md = 
new ilMD($tmp_course->getId(),0,
'crs');
 
  455                include_once 
'Modules/Course/classes/class.ilCourseParticipants.php';
 
  459                include_once 
'Modules/Course/classes/class.ilCourseWaitingList.php';
 
  462                include_once 
'Modules/Course/classes/class.ilCourseXMLParser.php';
 
  465                $xml_parser->setXMLContent($xml);
 
  467                $xml_parser->startParsing();
 
  469                $tmp_course->MDUpdateListener(
'General');
 
  488                if(!$this->__checkSession($sid))
 
  493                global $rbacreview, $ilObjDataCache, $tree;
 
  495                include_once 
'webservice/soap/classes/class.ilXMLResultSetParser.php';
 
  498                        $parser->startParsing();
 
  500                        return $this->
__raiseError($exception->getMessage(), 
"Client");
 
  502                $xmlResultSet = $parser->getXMLResultSet();
 
  504                if (!$xmlResultSet->hasColumn (
"user_id"))
 
  505                        return $this->
__raiseError(
"parameter user_id is missing", 
"Client");
 
  507                if (!$xmlResultSet->hasColumn (
"status"))
 
  508                        return $this->
__raiseError(
"parameter status is missing", 
"Client");
 
  510                $user_id = (int) $xmlResultSet->getValue (0, 
"user_id");
 
  511                $status = (int) $xmlResultSet->getValue (0, 
"status");
 
  516#var_dump($xmlResultSet); 
  517#echo "uid:".$user_id;
 
  518#echo "status:".$status;
 
  522                foreach($rbacreview->assignedRoles($user_id) as $role_id)
 
  526                                #echo $role->getType(); 
  527                                if ($role->getType() != 
"role")
 
  529                                if ($role->getParent() == ROLE_FOLDER_ID)
 
  533                                $role_title = $role->getTitle();
 
  560                        foreach ($owned_objects as $obj_id) {
 
  562                                foreach($allrefs as 
$r)
 
  564                                        if($tree->isDeleted(
$r))
 
  568                                        if ($tree->isInTree(
$r))
 
  573                                if (count($refs) > 0)
 
  574                                        $ref_ids[] = array_pop($refs);
 
  578                $ref_ids = array_unique($ref_ids);
 
  582                $ref_ids = array_unique($ref_ids);
 
  584                include_once 
'webservice/soap/classes/class.ilXMLResultSetWriter.php';
 
  585                include_once 
'Modules/Course/classes/class.ilObjCourse.php';
 
  586                include_once 
'Modules/Course/classes/class.ilCourseXMLWriter.php';
 
  589                $xmlResultSet->addColumn(
"ref_id");
 
  590                $xmlResultSet->addColumn(
"xml");
 
  591                $xmlResultSet->addColumn(
"parent_ref_id");
 
  596                $permission = $user_id == 
$ilUser->getId() ? 
'read' : 
'write';
 
  598                foreach ($ref_ids as $course_id) {
 
  602                                $row->setValue(
"ref_id", $course_id);
 
  604                                $xmlWriter->setAttachUsers(
false);                              
 
  606                                $row->setValue(
"xml", $xmlWriter->getXML());
 
  607                                $row->setValue(
"parent_ref_id", $tree->getParentId($course_id));
 
  608                                $xmlResultSet->addRow(
$row);
 
  612                $xmlResultSetWriter->start();
 
  613                return $xmlResultSetWriter->getXML();
 
const IL_CRS_ADMIN
Base class for course and group participants.
static _getInstanceByObjId($a_obj_id)
Get singleton instance.
getInstanceByObjId($a_obj_id, $stop_on_error=true)
get an instance of an Ilias object by object id
getInstanceByRefId($a_ref_id, $stop_on_error=true)
get an instance of an Ilias object by reference id
getObjectsForOwner($object_type, $owner_id)
returns all objects of an owner, filtered by type, objects are not deleted!
static _lookupObjId($a_id)
_isInTrash($a_ref_id)
checks wether object is in trash
static _getAllReferences($a_id)
get all reference ids of object
static _exists($a_id, $a_reference=false, $a_type=null)
checks if an object exists in object_data@access public
static _lookupType($a_id, $a_reference=false)
lookup object type
static _deleteAllEntries($a_obj_id)
Delete all entries Normally called for course deletion.
SaxParserException thrown by ilSaxParser if property throwException is set.
__raiseError($a_message, $a_code)
checkObjectAccess($ref_id, $expected_type, $permission, $returnObject=false)
check access for ref id: expected type, permission, return object instance if returnobject is true
getCoursesForUser($sid, $parameters)
get courses which belong to a specific user, fullilling the status
excludeCourseMember($sid, $course_id, $user_id)
deleteCourse($sid, $course_id)
addCourse($sid, $target_id, $crs_xml)
getCourseXML($sid, $course_id)
isAssignedToCourse($sid, $course_id, $user_id)
ilSoapCourseAdministration()
assignCourseMember($sid, $course_id, $user_id, $type)
updateCourse($sid, $course_id, $xml)
static __extractRefId($role_title)
extract ref id from role title, e.g.
static removeItemFromDesktops($a_id)
removes object from all user's desktops @access public
static _deleteAll($a_obj_id)
delete all
XML Writer for XMLResultSet.