Public Member Functions

ilSoapCourseAdministration Class Reference

Inheritance diagram for ilSoapCourseAdministration:
Collaboration diagram for ilSoapCourseAdministration:

Public Member Functions

 ilSoapCourseAdministration ()
 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)

Detailed Description

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


Member Function Documentation

ilSoapCourseAdministration::addCourse ( sid,
target_id,
crs_xml 
)

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

References $rbacsystem, $target_id, ilSoapAdministration::__checkSession(), and ilSoapAdministration::__raiseError().

        {
                if(!$this->__checkSession($sid))
                {
                        return $this->__raiseError($this->sauth->getMessage(),$this->sauth->getMessageCode());
                }                       

                if(!is_numeric($target_id))
                {
                        return $this->__raiseError('No valid target id given. Please choose an existing reference id of an ILIAS category',
                                                                           'Client');
                }

                // Include main header
                include_once './include/inc.header.php';
                global $rbacsystem;

                if(!$rbacsystem->checkAccess('create',$target_id,'crs'))
                {
                        return $this->__raiseError('Check access failed. No permission to create courses','Server');
                }

                // Start import
                include_once("course/classes/class.ilObjCourse.php");

                $newObj = new ilObjCourse();
                $newObj->setType('crs');
                $newObj->setTitle('dummy');
                $newObj->setDescription("");
                $newObj->create(true); // true for upload
                $newObj->createReference();
                $newObj->putInTree($target_id);
                $newObj->setPermissions($target_id);
                $newObj->initDefaultRoles();

                include_once 'course/classes/class.ilCourseXMLParser.php';

                $xml_parser = new ilCourseXMLParser($newObj);
                $xml_parser->setXMLContent($crs_xml);

                $xml_parser->startParsing();

                $newObj->MDUpdateListener('General');

                return $newObj->getRefId() ? $newObj->getRefId() : "0";
                
        }

Here is the call graph for this function:

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

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

References $rbacsystem, $tmp_user, $type, $user_id, ilSoapAdministration::__checkSession(), ilSoapAdministration::__raiseError(), ilObject::_getAllReferences(), ilObject::_lookupObjId(), ilObject::_lookupType(), ilObjectFactory::getInstanceByObjId(), and ilObjectFactory::getInstanceByRefId().

        {
                if(!$this->__checkSession($sid))
                {
                        return $this->__raiseError($this->sauth->getMessage(),$this->sauth->getMessageCode());
                }

                if(!is_numeric($course_id))
                {
                        return $this->__raiseError('No valid course id given. Please choose an existing reference id of an ILIAS course',
                                                                           'Client');
                }

                // Include main header
                include_once './include/inc.header.php';

                global $rbacsystem;

                if(($obj_type = ilObject::_lookupType(ilObject::_lookupObjId($course_id))) != 'crs')
                {
                        $course_id = end($ref_ids = ilObject::_getAllReferences($course_id));
                        if(ilObject::_lookupType(ilObject::_lookupObjId($course_id)) != 'crs')
                        {
                                return $this->__raiseError('Invalid course id. Object with id "'. $course_id.'" is not of type "course"','Client');
                        }
                }

                if(!$rbacsystem->checkAccess('write',$course_id))
                {
                        return $this->__raiseError('Check access failed. No permission to write to course','Server');
                }

                
                if(ilObject::_lookupType($user_id) != 'usr')
                {
                        return $this->__raiseError('Invalid user id. User with id "'. $user_id.' does not exist','Client');
                }
                if($type != 'Admin' and
                   $type != 'Tutor' and
                   $type != 'Member')
                {
                        return $this->__raiseError('Invalid type given. Parameter "type" must be "Admin", "Tutor" or "Member"','Client');
                }

                if(!$tmp_course = ilObjectFactory::getInstanceByRefId($course_id,false))
                {
                        return $this->__raiseError('Cannot create course instance!','Server');
                }

                if(!$tmp_user = ilObjectFactory::getInstanceByObjId($user_id,false))
                {
                        return $this->__raiseError('Cannot create user instance!','Server');
                }

                include_once 'course/classes/class.ilCourseMembers.php';
                
                $course_members = new ilCourseMembers($tmp_course);

                switch($type)
                {
                        case 'Admin':
                                $course_members->add($tmp_user,$course_members->ROLE_ADMIN,$course_members->STATUS_NOTIFY,0);
                                break;

                        case 'Tutor':
                                $course_members->add($tmp_user,$course_members->ROLE_TUTOR,$course_members->STATUS_NO_NOTIFY,0);
                                break;

                        case 'Member':
                                $course_members->add($tmp_user,$course_members->ROLE_MEMBER,$course_members->STATUS_UNBLOCKED,0);
                                break;
                }

                return true;
        }

Here is the call graph for this function:

ilSoapCourseAdministration::deleteCourse ( sid,
course_id 
)

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

References $log, $rbacadmin, $rbacsystem, $tree, ilSoapAdministration::__checkSession(), ilSoapAdministration::__raiseError(), ilObject::_getAllReferences(), ilObject::_lookupObjId(), ilObject::_lookupType(), and ilUtil::removeItemFromDesktops().

        {
                if(!$this->__checkSession($sid))
                {
                        return $this->__raiseError($this->sauth->getMessage(),$this->sauth->getMessageCode());
                }                       

                if(!is_numeric($course_id))
                {
                        return $this->__raiseError('No valid course id given. Please choose an existing reference id of an ILIAS course',
                                                                           'Client');
                }

                // Include main header
                include_once './include/inc.header.php';
                include_once './classes/class.ilUtil.php';
                global $rbacsystem;

                if(($obj_type = ilObject::_lookupType(ilObject::_lookupObjId($course_id))) != 'crs')
                {
                        $course_id = end($ref_ids = ilObject::_getAllReferences($course_id));
                        if(ilObject::_lookupType(ilObject::_lookupObjId($course_id)) != 'crs')
                        {
                                return $this->__raiseError('Invalid course id. Object with id "'. $course_id.'" is not of type "course"','Client');
                        }
                }

                if(!$rbacsystem->checkAccess('delete',$course_id))
                {
                        return $this->__raiseError('Check access failed. No permission to delete course','Server');
                }


                global $tree,$rbacadmin,$log;

                $subnodes = $tree->getSubtree($tree->getNodeData($course_id));
                        
                foreach ($subnodes as $subnode)
                {
                        $rbacadmin->revokePermission($subnode["child"]);

                        // remove item from all user desktops
                        $affected_users = ilUtil::removeItemFromDesktops($subnode["child"]);
                                
                }
                $tree->saveSubTree($course_id);
                $tree->deleteTree($tree->getNodeData($course_id));
                
                // write log entry
                $log->write("SOAP ilObjectGUI::confirmedDeleteObject(), moved ref_id ".$course_id." to trash");
                
                // remove item from all user desktops
                $affected_users = ilUtil::removeItemFromDesktops($course_id);
                
                return true;
        }

Here is the call graph for this function:

ilSoapCourseAdministration::excludeCourseMember ( sid,
course_id,
user_id 
)

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

References $rbacsystem, $user_id, ilSoapAdministration::__checkSession(), ilSoapAdministration::__raiseError(), ilObject::_getAllReferences(), ilObject::_lookupObjId(), ilObject::_lookupType(), and ilObjectFactory::getInstanceByRefId().

        {
                if(!$this->__checkSession($sid))
                {
                        return $this->__raiseError($this->sauth->getMessage(),$this->sauth->getMessageCode());
                }                       
                if(!is_numeric($course_id))
                {
                        return $this->__raiseError('No valid course id given. Please choose an existing reference id of an ILIAS course',
                                                                           'Client');
                }

                // Include main header
                include_once './include/inc.header.php';
                global $rbacsystem;

                if(($obj_type = ilObject::_lookupType(ilObject::_lookupObjId($course_id))) != 'crs')
                {
                        $course_id = end($ref_ids = ilObject::_getAllReferences($course_id));
                        if(ilObject::_lookupType(ilObject::_lookupObjId($course_id)) != 'crs')
                        {
                                return $this->__raiseError('Invalid course id. Object with id "'. $course_id.'" is not of type "course"','Client');
                        }
                }

                if(ilObject::_lookupType($user_id) != 'usr')
                {
                        return $this->__raiseError('Invalid user id. User with id "'. $user_id.' does not exist','Client');
                }

                if(!$tmp_course = ilObjectFactory::getInstanceByRefId($course_id,false))
                {
                        return $this->__raiseError('Cannot create course instance!','Server');
                }

                if(!$rbacsystem->checkAccess('write',$course_id))
                {
                        return $this->__raiseError('Check access failed. No permission to write to course','Server');
                }

                include_once 'course/classes/class.ilCourseMembers.php';
                
                $course_members = new ilCourseMembers($tmp_course);

                if(!$course_members->checkLastAdmin(array($user_id)))
                {
                        return $this->__raiseError('Cannot deassign last administrator from course','Server');
                }

                $course_members->delete($user_id);

                return true;
        }

Here is the call graph for this function:

ilSoapCourseAdministration::getCourseXML ( sid,
course_id 
)

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

References $rbacsystem, ilSoapAdministration::__checkSession(), ilSoapAdministration::__raiseError(), ilObject::_getAllReferences(), ilObject::_lookupObjId(), ilObject::_lookupType(), and ilObjectFactory::getInstanceByRefId().

        {
                if(!$this->__checkSession($sid))
                {
                        return $this->__raiseError($this->sauth->getMessage(),$this->sauth->getMessageCode());
                }                       
                if(!is_numeric($course_id))
                {
                        return $this->__raiseError('No valid course id given. Please choose an existing reference id of an ILIAS course',
                                                                           'Client');
                }

                // Include main header
                include_once './include/inc.header.php';

                global $rbacsystem;

                if(($obj_type = ilObject::_lookupType(ilObject::_lookupObjId($course_id))) != 'crs')
                {
                        $course_id = end($ref_ids = ilObject::_getAllReferences($course_id));
                        if(ilObject::_lookupType(ilObject::_lookupObjId($course_id)) != 'crs')
                        {
                                return $this->__raiseError('Invalid course id. Object with id "'. $course_id.'" is not of type "course"','Client');
                        }
                }

                if(!$tmp_course = ilObjectFactory::getInstanceByRefId($course_id,false))
                {
                        return $this->__raiseError('Cannot create course instance!','Server');
                }

                if(!$rbacsystem->checkAccess('read',$course_id))
                {
                        return $this->__raiseError('Check access failed. No permission to read course','Server');
                }

                include_once 'course/classes/class.ilCourseXMLWriter.php';

                $xml_writer = new ilCourseXMLWriter($tmp_course);
                $xml_writer->start();
                
                return $xml_writer->getXML();
        }

Here is the call graph for this function:

ilSoapCourseAdministration::ilSoapCourseAdministration (  ) 

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

References ilSoapAdministration::ilSoapAdministration().

Here is the call graph for this function:

ilSoapCourseAdministration::isAssignedToCourse ( sid,
course_id,
user_id 
)

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

References $rbacsystem, $user_id, ilSoapAdministration::__checkSession(), ilSoapAdministration::__raiseError(), ilObject::_getAllReferences(), ilObject::_lookupObjId(), ilObject::_lookupType(), and ilObjectFactory::getInstanceByRefId().

        {
                if(!$this->__checkSession($sid))
                {
                        return $this->__raiseError($this->sauth->getMessage(),$this->sauth->getMessageCode());
                }                       
                if(!is_numeric($course_id))
                {
                        return $this->__raiseError('No valid course id given. Please choose an existing reference id of an ILIAS course',
                                                                           'Client');
                }
                // Include main header
                include_once './include/inc.header.php';
                global $rbacsystem;

                if(($obj_type = ilObject::_lookupType(ilObject::_lookupObjId($course_id))) != 'crs')
                {
                        $course_id = end($ref_ids = ilObject::_getAllReferences($course_id));
                        if(ilObject::_lookupType(ilObject::_lookupObjId($course_id)) != 'crs')
                        {
                                return $this->__raiseError('Invalid course id. Object with id "'. $course_id.'" is not of type "course"','Client');
                        }
                }

                if(ilObject::_lookupType($user_id) != 'usr')
                {
                        return $this->__raiseError('Invalid user id. User with id "'. $user_id.' does not exist','Client');
                }

                if(!$tmp_course = ilObjectFactory::getInstanceByRefId($course_id,false))
                {
                        return $this->__raiseError('Cannot create course instance!','Server');
                }

                if(!$rbacsystem->checkAccess('write',$course_id))
                {
                        return $this->__raiseError('Check access failed. No permission to write to course','Server');
                }

                include_once './course/classes/class.ilCourseMembers.php';

                $crs_members = new ilCourseMembers($tmp_course);
                
                if($crs_members->isAdmin($user_id))
                {
                        return $crs_members->ROLE_ADMIN;
                }
                if($crs_members->isTutor($user_id))
                {
                        return $crs_members->ROLE_TUTOR;
                }
                if($crs_members->isMember($user_id))
                {
                        return $crs_members->ROLE_MEMBER;
                }

                return "0";
        }

Here is the call graph for this function:

ilSoapCourseAdministration::updateCourse ( sid,
course_id,
xml 
)

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

References $rbacsystem, ilSoapAdministration::__checkSession(), ilSoapAdministration::__raiseError(), ilCourseWaitingList::_deleteAll(), ilObject::_getAllReferences(), ilObject::_lookupObjId(), ilObject::_lookupType(), and ilObjectFactory::getInstanceByRefId().

        {
                if(!$this->__checkSession($sid))
                {
                        return $this->__raiseError($this->sauth->getMessage(),$this->sauth->getMessageCode());
                }                       
                if(!is_numeric($course_id))
                {
                        return $this->__raiseError('No valid course id given. Please choose an existing reference id of an ILIAS course',
                                                                           'Client');
                }

                // Include main header
                include_once './include/inc.header.php';

                global $rbacsystem;

                if(($obj_type = ilObject::_lookupType(ilObject::_lookupObjId($course_id))) != 'crs')
                {
                        $course_id = end($ref_ids = ilObject::_getAllReferences($course_id));
                        if(ilObject::_lookupType(ilObject::_lookupObjId($course_id)) != 'crs')
                        {
                                return $this->__raiseError('Invalid course id. Object with id "'. $course_id.'" is not of type "course"','Client');
                        }
                }

                if(!$tmp_course = ilObjectFactory::getInstanceByRefId($course_id,false))
                {
                        return $this->__raiseError('Cannot create course instance!','Server');
                }

                if(!$rbacsystem->checkAccess('write',$course_id))
                {
                        return $this->__raiseError('Check access failed. No permission to write course','Server');
                }


                // First delete old meta data
                include_once 'Services/MetaData/classes/class.ilMD.php';

                $md = new ilMD($tmp_course->getId(),0,'crs');
                $md->deleteAll();

                include_once 'course/classes/class.ilCourseMembers.php';

                $crs_members = new ilCourseMembers($tmp_course);
                $crs_members->deleteAllEntries();

                include_once 'course/classes/class.ilCourseWaitingList.php';

                ilCourseWaitingList::_deleteAll($tmp_course->getId());

                include_once 'course/classes/class.ilCourseXMLParser.php';

                $xml_parser = new ilCourseXMLParser($tmp_course);
                $xml_parser->setXMLContent($xml);

                $xml_parser->startParsing();

                $tmp_course->MDUpdateListener('General');

                return true;
        }

Here is the call graph for this function:


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