diff --git a/soap/student.soap.php b/soap/student.soap.php new file mode 100755 index 000000000..6be3fb284 --- /dev/null +++ b/soap/student.soap.php @@ -0,0 +1,181 @@ +. + */ + +require_once('../config/vilesci.config.inc.php'); +require_once('../include/student.class.php'); +require_once('../include/prestudent.class.php'); +require_once('../include/webservicerecht.class.php'); +require_once('../include/studiensemester.class.php'); +ini_set("soap.wsdl_cache_enabled", "0"); + +$SOAPServer = new SoapServer(APP_ROOT."/soap/student.wsdl.php?".microtime()); +$SOAPServer->addFunction("getStudentFromUid"); +$SOAPServer->addFunction("getStudentFromMatrikelnummer"); +$SOAPServer->addFunction("getStudentFromStudiengang"); +$SOAPServer->handle(); + +/** + * Lädt einen Studenten anhand übergebener UID + * @param $student_uid + * @param $authentifizierung + */ +function getStudentFromUid($student_uid, $authentifizierung) +{ + $recht = new webservicerecht(); + $user = $authentifizierung->username; + $passwort = $authentifizierung->passwort; + + // User authentifizieren + if(!check_user($user, $passwort)) + return new SoapFault("Server", "Invalid Credentials"); + + // darf User überhaupt Methode verwenden + $recht = new webservicerecht(); + if(!$recht->isUserAuthorized($user, 'getStudentFromUid')) + return new SoapFault("Server", "No permission"); + + $studentObj = new student(); // Studentendaten + $student = new foo(); // Rückgabeobjekt + $preStudent = new prestudent(); // StudentenStatus + + if(!$studentObj->load($student_uid)) + return new SoapFault("Server", "Kein Student mit übergebener Uid gefunden"); + + $preStudent->getLastStatus($studentObj->prestudent_id); + + $student->studiengang_kz = $studentObj->studiengang_kz; + $student->semester = $studentObj->semester; + $student->verband = $studentObj->verband; + $student->gruppe = $studentObj->gruppe; + $student->vorname = $studentObj->vorname; + $student->nachname = $studentObj->nachname; + $student->uid = $studentObj->uid; + $student->status = $preStudent->status_kurzbz; + $student->personenkennzeichen = $studentObj->matrikelnr; + $student->email = $student->uid.'@'.DOMAIN; + + $student = $recht->clearResponse($user, 'getStudentFromUid', $student); + + return $student; +} + +/** + * Lädt einen Studenten anhand übergebener Matrikelnummer + * @param $matrikelnummer + * @param $authentifizierung + */ +function getStudentFromMatrikelnummer($matrikelnummer, $authentifizierung) +{ + $recht = new webservicerecht(); + $user = $authentifizierung->username; + $passwort = $authentifizierung->passwort; + + // User authentifizieren + if(!check_user($user, $passwort)) + return new SoapFault("Server", "Invalid Credentials"); + + // darf User überhaupt Methode verwenden + $recht = new webservicerecht(); + if(!$recht->isUserAuthorized($user, 'getStudentFromMatrikelnummer')) + return new SoapFault("Server", "No permission"); + + $studentObj = new student(); // Studentendaten + $student = new foo(); // Rückgabeobjekt + $preStudent = new prestudent(); // StudentenStatus + + $student_uid = $studentObj->getUidFromMatrikelnummer($matrikelnummer); + if(!$studentObj->load($student_uid)) + return new SoapFault("Server", "Kein Student mit übergebener Matrikelnummer gefunden"); + + $preStudent->getLastStatus($studentObj->prestudent_id); + + $student->studiengang_kz = $studentObj->studiengang_kz; + $student->semester = $studentObj->semester; + $student->verband = $studentObj->verband; + $student->gruppe = $studentObj->gruppe; + $student->vorname = $studentObj->vorname; + $student->nachname = $studentObj->nachname; + $student->uid = $studentObj->uid; + $student->status = $preStudent->status_kurzbz; + $student->personenkennzeichen = $studentObj->matrikelnr; + $student->email = $student->uid.'@'.DOMAIN; + + $student = $recht->clearResponse($user, 'getStudentFromMatrikelnummer', $student); + + return $student; +} + +/** + * Lädt alle Studenten eines gewissen Kriteriums + * @param $studiengang + * @param $semester + * @param $verband + * @param $gruppe + * @param $authentifizierung + */ +function getStudentFromStudiengang($studiengang, $semester = null, $verband = null, $gruppe = null, $authentifizierung) +{ + $recht = new webservicerecht(); + $user = $authentifizierung->username; + $passwort = $authentifizierung->passwort; + + // User authentifizieren + if(!check_user($user, $passwort)) + return new SoapFault("Server", "Invalid Credentials"); + + // darf User überhaupt Methode verwenden + $recht = new webservicerecht(); + if(!$recht->isUserAuthorized($user, 'getStudentFromStudiengang')) + return new SoapFault("Server", "No permission"); + + $studentObj = new student(); // Studentendaten + $preStudent = new prestudent(); // StudentenStatus + + $studiensemester = new studiensemester(); // aktuelles Studiensemester + $studSemester = $studiensemester->getakt(); + + $studentObj->result = $studentObj->getStudents($studiengang, $semester, $verband, $gruppe, null, $studSemester); + + $studentArray = array(); + + foreach($studentObj->result as $stud) + { + $student = new foo(); // Rückgabeobjekt + $preStudent->getLastStatus($stud->prestudent_id); + + $student->studiengang_kz = $stud->studiengang_kz; + $student->semester = $stud->semester; + $student->verband = $stud->verband; + $student->gruppe = $stud->gruppe; + $student->vorname = $stud->vorname; + $student->nachname = $stud->nachname; + $student->uid = $stud->uid; + $student->status = $preStudent->status_kurzbz; + $student->personenkennzeichen = $stud->matrikelnr; + $student->email = $stud->uid.'@'.DOMAIN; + + $student = $recht->clearResponse($user, 'getStudentFromStudiengang', $student); + $studentArray[] = $student; + } + return $studentArray; +} + +class foo{} \ No newline at end of file diff --git a/soap/student.wsdl.php b/soap/student.wsdl.php new file mode 100755 index 000000000..97a2de0a1 --- /dev/null +++ b/soap/student.wsdl.php @@ -0,0 +1,122 @@ +"; +?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + " /> + + + + + + + + + " /> + + + + + + + + + " /> + + + + + + + + + + + + "/> + + + \ No newline at end of file