From 3a0ef33eeea7e6ba2cda6a7f9f65f2be60cf6f6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Tue, 8 May 2012 12:41:50 +0000 Subject: [PATCH] =?UTF-8?q?Soap=20Schnittstelle=20f=C3=BCr=20Mitarbeiter?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- soap/mitarbeiter.soap.php | 194 ++++++++++++++++++++ soap/mitarbeiter.wsdl.php | 119 ++++++++++++ soap/soap_test_mitarbeiter.php | 321 +++++++++++++++++++++++++++++++++ 3 files changed, 634 insertions(+) create mode 100755 soap/mitarbeiter.soap.php create mode 100755 soap/mitarbeiter.wsdl.php create mode 100755 soap/soap_test_mitarbeiter.php diff --git a/soap/mitarbeiter.soap.php b/soap/mitarbeiter.soap.php new file mode 100755 index 000000000..593594a8a --- /dev/null +++ b/soap/mitarbeiter.soap.php @@ -0,0 +1,194 @@ +. + */ +/** + * Webservice fuer Mitarbeiter + * + */ +require_once('../config/vilesci.config.inc.php'); +require_once('../include/basis_db.class.php'); +require_once('../include/functions.inc.php'); +require_once('../include/webservicerecht.class.php'); +require_once('../include/mitarbeiter.class.php'); + +ini_set("soap.wsdl_cache_enabled", "0"); + +$SOAPServer = new SoapServer(APP_ROOT."/soap/mitarbeiter.wsdl.php?".microtime(true)); +$SOAPServer->addFunction("getMitarbeiterFromUID"); +$SOAPServer->addFunction("getMitarbeiter"); +$SOAPServer->addFunction("SearchMitarbeiter"); +$SOAPServer->handle(); + +/** + * + * Funktion getMitarbeiterFromUID liefert einen Mitarbeiter zurück + * @param uid - uid des Mitarbeiters + * @param authentifizierung - Array mit Username und Passwort + * + * Berechtigung: + INSERT INTO system.tbl_webservicerecht(berechtigung_kurzbz, methode, attribut) VALUES('soap/mitarbeiter','getMitarbeiterFromUID','vorname'); + INSERT INTO system.tbl_webservicerecht(berechtigung_kurzbz, methode, attribut) VALUES('soap/mitarbeiter','getMitarbeiterFromUID','nachname'); + INSERT INTO system.tbl_webservicerecht(berechtigung_kurzbz, methode, attribut) VALUES('soap/mitarbeiter','getMitarbeiterFromUID','titelpre'); + INSERT INTO system.tbl_webservicerecht(berechtigung_kurzbz, methode, attribut) VALUES('soap/mitarbeiter','getMitarbeiterFromUID','titelpost'); + INSERT INTO system.tbl_webservicerecht(berechtigung_kurzbz, methode, attribut) VALUES('soap/mitarbeiter','getMitarbeiterFromUID','uid'); + INSERT INTO system.tbl_webservicerecht(berechtigung_kurzbz, methode, attribut) VALUES('soap/mitarbeiter','getMitarbeiterFromUID','email'); + + */ +function getMitarbeiterFromUID($uid, $authentifizierung) +{ + $user = $authentifizierung->username; + $passwort = $authentifizierung->passwort; + + // User authentifizieren + if(!check_user($user, $passwort)) + return new SoapFault("Server", "Invalid Credentials"); + + // darf user überhaupt was von Methode sehen + $recht = new webservicerecht(); + if(!$recht->isUserAuthorized($user, 'getMitarbeiterFromUID')) + return new SoapFault("Server", "No permission"); + + // Daten für Lehrveranstaltung + $mitarbeiter = new mitarbeiter(); + if(!$mitarbeiter->load($uid)) + return new SoapFault("Server", "Error loading Data"); + + class foo{}; + + $obj = new foo(); + $obj->vorname = $mitarbeiter->vorname; + $obj->nachname = $mitarbeiter->nachname; + $obj->titelpre = $mitarbeiter->titelpre; + $obj->titelpost = $mitarbeiter->titelpost; + $obj->uid = $mitarbeiter->uid; + $obj->email = $mitarbeiter->uid.'@'.DOMAIN; + + // lösche alle Attribute für die user keine Berechtigung hat + $obj = $recht->clearResponse($user, 'getMitarbeiterFromUID', $obj); + + return $obj; +} + + +/** + * + * Funktion getMitarbeiter liefert alle aktiven Mitarbeiter zurück + * @param authentifizierung - Array mit Username und Passwort + * + * Berechtigung: + INSERT INTO system.tbl_webservicerecht(berechtigung_kurzbz, methode, attribut) VALUES('soap/mitarbeiter','getMitarbeiter','vorname'); + INSERT INTO system.tbl_webservicerecht(berechtigung_kurzbz, methode, attribut) VALUES('soap/mitarbeiter','getMitarbeiter','nachname'); + INSERT INTO system.tbl_webservicerecht(berechtigung_kurzbz, methode, attribut) VALUES('soap/mitarbeiter','getMitarbeiter','titelpre'); + INSERT INTO system.tbl_webservicerecht(berechtigung_kurzbz, methode, attribut) VALUES('soap/mitarbeiter','getMitarbeiter','titelpost'); + INSERT INTO system.tbl_webservicerecht(berechtigung_kurzbz, methode, attribut) VALUES('soap/mitarbeiter','getMitarbeiter','uid'); + INSERT INTO system.tbl_webservicerecht(berechtigung_kurzbz, methode, attribut) VALUES('soap/mitarbeiter','getMitarbeiter','email'); + */ +function getMitarbeiter($authentifizierung) +{ + $user = $authentifizierung->username; + $passwort = $authentifizierung->passwort; + + // User authentifizieren + if(!check_user($user, $passwort)) + return new SoapFault("Server", "Invalid Credentials"); + + // darf user überhaupt was von Methode sehen + $recht = new webservicerecht(); + if(!$recht->isUserAuthorized($user, 'getMitarbeiter')) + return new SoapFault("Server", "No permission"); + + // Daten für Lehrveranstaltung + $mitarbeiter = new mitarbeiter(); + if(!$result = $mitarbeiter->getMitarbeiter()) + return new SoapFault("Server", "Error loading Data:".$mitarbeiter->errormsg); + + $return = array(); + class foo{}; + foreach($result as $row) + { + if($row->aktiv) + { + $obj = new foo(); + $obj->vorname = $row->vorname; + $obj->nachname = $row->nachname; + $obj->titelpre = $row->titelpre; + $obj->titelpost = $row->titelpost; + $obj->uid = $row->uid; + $obj->email = $row->uid.'@'.DOMAIN; + + // lösche alle Attribute für die user keine Berechtigung hat + $return[] = $recht->clearResponse($user, 'getMitarbeiter', $obj); + } + } + + return $return; +} + +/** + * + * Funktion SearchMitarbeiter liefert alle aktiven Mitarbeiter zurück + * @param filter - Suchfilter + * @param authentifizierung - Array mit Username und Passwort + * + * Berechtigung: + INSERT INTO system.tbl_webservicerecht(berechtigung_kurzbz, methode, attribut) VALUES('soap/mitarbeiter','SearchMitarbeiter','vorname'); + INSERT INTO system.tbl_webservicerecht(berechtigung_kurzbz, methode, attribut) VALUES('soap/mitarbeiter','SearchMitarbeiter','nachname'); + INSERT INTO system.tbl_webservicerecht(berechtigung_kurzbz, methode, attribut) VALUES('soap/mitarbeiter','SearchMitarbeiter','titelpre'); + INSERT INTO system.tbl_webservicerecht(berechtigung_kurzbz, methode, attribut) VALUES('soap/mitarbeiter','SearchMitarbeiter','titelpost'); + INSERT INTO system.tbl_webservicerecht(berechtigung_kurzbz, methode, attribut) VALUES('soap/mitarbeiter','SearchMitarbeiter','uid'); + INSERT INTO system.tbl_webservicerecht(berechtigung_kurzbz, methode, attribut) VALUES('soap/mitarbeiter','SearchMitarbeiter','email'); + */ +function SearchMitarbeiter($filter, $authentifizierung) +{ + $user = $authentifizierung->username; + $passwort = $authentifizierung->passwort; + + // User authentifizieren + if(!check_user($user, $passwort)) + return new SoapFault("Server", "Invalid Credentials"); + + // darf user überhaupt was von Methode sehen + $recht = new webservicerecht(); + if(!$recht->isUserAuthorized($user, 'getMitarbeiter')) + return new SoapFault("Server", "No permission"); + + // Daten für Lehrveranstaltung + $mitarbeiter = new mitarbeiter(); + if(!$mitarbeiter->search($filter)) + return new SoapFault("Server", "Error loading Data:".$mitarbeiter->errormsg); + + $return = array(); + class foo{}; + foreach($mitarbeiter->result as $row) + { + $obj = new foo(); + $obj->vorname = $row->vorname; + $obj->nachname = $row->nachname; + $obj->titelpre = $row->titelpre; + $obj->titelpost = $row->titelpost; + $obj->uid = $row->uid; + $obj->email = $row->uid.'@'.DOMAIN; + + // lösche alle Attribute für die user keine Berechtigung hat + $return[] = $recht->clearResponse($user, 'getMitarbeiter', $obj); + } + + return $return; +} +?> diff --git a/soap/mitarbeiter.wsdl.php b/soap/mitarbeiter.wsdl.php new file mode 100755 index 000000000..466ba53eb --- /dev/null +++ b/soap/mitarbeiter.wsdl.php @@ -0,0 +1,119 @@ +"; +?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + " /> + + + + + + + + + " /> + + + + + + + + + " /> + + + + + + + + + + + + "/> + + + \ No newline at end of file diff --git a/soap/soap_test_mitarbeiter.php b/soap/soap_test_mitarbeiter.php new file mode 100755 index 000000000..8c73e4117 --- /dev/null +++ b/soap/soap_test_mitarbeiter.php @@ -0,0 +1,321 @@ + + + + + + + + SOAP TestClient für Mitarbeiter + + + getMitarbeiterFromUID
+ getMitarbeiter
+ SearchMitarbeiter
+ Show WSDL

+ + + + + + + + + + + + + + + + + + + +
Username:
Passwort:
UID:
+ + +
+ '; + echo ' + + '; + } + elseif($method=='getMitarbeiter') + { + echo' +
+ + + + + + + + + + + + + +
Username:
Passwort:
+ + +
+
'; + echo ' + + '; + } + elseif($method=='SearchMitarbeiter') + { + echo' +
+ + + + + + + + + + + + + + + + + +
Username:
Passwort:
Suchfilter:
+ + +
+
'; + echo ' + + '; + } + +echo '
'; +class foo {}; + +if(isset($_REQUEST['submit']) && $_GET['method']=='getMitarbeiterFromUID') +{ + $client = new SoapClient(APP_ROOT."/soap/mitarbeiter.wsdl.php?".microtime(true)); + + try + { + $authentifizierung = new foo(); + $authentifizierung->username=$_REQUEST['username']; + $authentifizierung->passwort=$_REQUEST['passwort']; + $response = $client->getMitarbeiterFromUID($_REQUEST['uid'], $authentifizierung); + + var_dump($response); + } + catch(SoapFault $fault) + { + echo "SOAP Fault: (faultcode: {$fault->faultcode}, faultstring: {$fault->faultstring})", E_USER_ERROR; + } + + + +} +if(isset($_REQUEST['submit']) && $_GET['method']=='getMitarbeiter') +{ + $client = new SoapClient(APP_ROOT."/soap/mitarbeiter.wsdl.php?".microtime(true)); + + try + { + $authentifizierung = new foo(); + $authentifizierung->username=$_REQUEST['username']; + $authentifizierung->passwort=$_REQUEST['passwort']; + $response = $client->getMitarbeiter($authentifizierung); + + var_dump($response); + } + catch(SoapFault $fault) + { + echo "SOAP Fault: (faultcode: {$fault->faultcode}, faultstring: {$fault->faultstring})", E_USER_ERROR; + } + + + +} +if(isset($_REQUEST['submit']) && $_GET['method']=='SearchMitarbeiter') +{ + $client = new SoapClient(APP_ROOT."/soap/mitarbeiter.wsdl.php?".microtime(true)); + + try + { + $authentifizierung = new foo(); + $authentifizierung->username=$_REQUEST['username']; + $authentifizierung->passwort=$_REQUEST['passwort']; + + $response = $client->SearchMitarbeiter($_REQUEST['filter'],$authentifizierung); + + var_dump($response); + } + catch(SoapFault $fault) + { + echo "SOAP Fault: (faultcode: {$fault->faultcode}, faultstring: {$fault->faultstring})", E_USER_ERROR; + } + + + +} + +echo '
'; +?>