diff --git a/include/ortraumtyp.class.php b/include/ortraumtyp.class.php
index 8e0f27233..e6a889ebb 100644
--- a/include/ortraumtyp.class.php
+++ b/include/ortraumtyp.class.php
@@ -183,5 +183,51 @@ class ortraumtyp extends basis_db
return false;
}
}
+
+ /**
+ * Laedt die Raumtypen eines Ortes
+ *
+ * @param $ort_kurzbz
+ * @return boolean
+ */
+ public function getRaumtypen($ort_kurzbz)
+ {
+ if($ort_kurzbz=='')
+ {
+ $this->errormsg = 'Kein gültiger Schlüssel vorhanden';
+ return false;
+ }
+
+ $qry = "SELECT
+ *
+ FROM
+ public.tbl_ortraumtyp
+ JOIN public.tbl_raumtyp USING(raumtyp_kurzbz)
+ WHERE
+ ort_kurzbz=".$this->db_add_param($ort_kurzbz);
+
+ if($this->db_query($qry))
+ {
+ while($row = $this->db_fetch_object())
+ {
+ $obj = new ortraumtyp();
+
+ $obj->ort_kurzbz = $row->ort_kurzbz;
+ $obj->hierarchie = $row->hierarchie;
+ $obj->raumtyp_kurzbz = $row->raumtyp_kurzbz;
+ $obj->beschreibung = $row->beschreibung;
+
+ $this->result[] = $obj;
+ }
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Laden der Daten';
+ return false;
+ }
+
+ return true;
+ }
}
?>
\ No newline at end of file
diff --git a/include/webservicerecht.class.php b/include/webservicerecht.class.php
index 724a30b00..cce0683e7 100755
--- a/include/webservicerecht.class.php
+++ b/include/webservicerecht.class.php
@@ -63,7 +63,7 @@ class webservicerecht extends basis_db
foreach ($berechtigung->berechtigungen as $recht)
{
// ist berechtigung noch gültig
- if($recht->start < date('Y-m-d') && $recht->ende > date('Y-m-d'))
+ if(($recht->start < date('Y-m-d') || $recht->start=='') && ($recht->ende > date('Y-m-d') || $recht->ende==''))
$berechtigungArray[] = $recht->berechtigung_kurzbz;
}
diff --git a/soap/ort.soap.php b/soap/ort.soap.php
new file mode 100755
index 000000000..89976a6c1
--- /dev/null
+++ b/soap/ort.soap.php
@@ -0,0 +1,226 @@
+.
+ */
+/**
+ * Webservice fuer Ort/Raum
+ *
+ */
+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/ort.class.php');
+require_once('../include/ortraumtyp.class.php');
+
+ini_set("soap.wsdl_cache_enabled", "0");
+
+$SOAPServer = new SoapServer(APP_ROOT."/soap/ort.wsdl.php?".microtime(true));
+$SOAPServer->addFunction("getOrtFromKurzbz");
+$SOAPServer->addFunction("getRaeume");
+$SOAPServer->addFunction("searchRaum");
+$SOAPServer->handle();
+
+/**
+ *
+ * Funktion getOrtFromKurzbz liefert einen Ort zurück
+ * @param ort_kurzbz - ort_kurzbz
+ * @param authentifizierung - Array mit Username und Passwort
+ *
+ * Berechtigung:
+ INSERT INTO system.tbl_webservicerecht(berechtigung_kurzbz, methode, attribut) VALUES('soap/ort','getOrtFromKurzbz','bezeichnung');
+ INSERT INTO system.tbl_webservicerecht(berechtigung_kurzbz, methode, attribut) VALUES('soap/ort','getOrtFromKurzbz','stockwerk');
+ INSERT INTO system.tbl_webservicerecht(berechtigung_kurzbz, methode, attribut) VALUES('soap/ort','getOrtFromKurzbz','sitzplaetze');
+ INSERT INTO system.tbl_webservicerecht(berechtigung_kurzbz, methode, attribut) VALUES('soap/ort','getOrtFromKurzbz','raumtyp');
+
+ */
+function getOrtFromKurzbz($ort_kurzbz, $authentifizierung)
+{
+ if($ort_kurzbz == '')
+ return new SOAPFault("Server", "ort_kurzbz must be set");
+
+ $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, 'getOrtFromKurzbz'))
+ return new SoapFault("Server", "No permission");
+
+ // Daten für Lehrveranstaltung
+ $ort = new ort();
+ if(!$ort->load($ort_kurzbz))
+ return new SoapFault("Server", "Error loading Data");
+
+ class foo{};
+
+ $raumtyp = new ortraumtyp();
+ $raumtyp->getRaumtypen($ort_kurzbz);
+ $raumtyp_arr = array();
+
+ foreach($raumtyp->result as $row)
+ {
+ $rt = new foo();
+ $rt->beschreibung = $row->beschreibung;
+ $rt->raumtyp_kurzbz = $row->raumtyp_kurzbz;
+ $rt->hierarchie = $row->hierarchie;
+
+ $raumtyp_arr[] = $rt;
+ }
+
+ $OrtObject = new foo();
+ $OrtObject->bezeichnung = $ort->bezeichnung;
+ $OrtObject->stockwerk = $ort->stockwerk;
+ $OrtObject->sitzplaetze = $ort->max_person;
+ $OrtObject->raumtyp= $raumtyp_arr;
+
+ // lösche alle Attribute für die user keine Berechtigung hat
+ $OrtObject = $recht->clearResponse($user, 'getOrtFromKurzbz', $OrtObject);
+
+ return $OrtObject;
+}
+
+
+/**
+ *
+ * Funktion getRaeume liefert alle aktiven reservierbaren Orte zurück
+ * @param authentifizierung - Array mit Username und Passwort
+ *
+ * Berechtigung:
+ INSERT INTO system.tbl_webservicerecht(berechtigung_kurzbz, methode, attribut) VALUES('soap/ort','getRaeume','ort_kurzbz');
+ INSERT INTO system.tbl_webservicerecht(berechtigung_kurzbz, methode, attribut) VALUES('soap/ort','getRaeume','bezeichnung');
+ INSERT INTO system.tbl_webservicerecht(berechtigung_kurzbz, methode, attribut) VALUES('soap/ort','getRaeume','planbezeichnung');
+ INSERT INTO system.tbl_webservicerecht(berechtigung_kurzbz, methode, attribut) VALUES('soap/ort','getRaeume','sitzplaetze');
+ INSERT INTO system.tbl_webservicerecht(berechtigung_kurzbz, methode, attribut) VALUES('soap/ort','getRaeume','aktiv');
+ INSERT INTO system.tbl_webservicerecht(berechtigung_kurzbz, methode, attribut) VALUES('soap/ort','getRaeume','lehre');
+ INSERT INTO system.tbl_webservicerecht(berechtigung_kurzbz, methode, attribut) VALUES('soap/ort','getRaeume','reservieren');
+ INSERT INTO system.tbl_webservicerecht(berechtigung_kurzbz, methode, attribut) VALUES('soap/ort','getRaeume','stockwerk');
+ */
+function getRaeume($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, 'getRaeume'))
+ return new SoapFault("Server", "No permission");
+
+ // Daten für Lehrveranstaltung
+ $ort = new ort();
+ if(!$ort->getAll())
+ return new SoapFault("Server", "Error loading Data");
+
+ $return = array();
+ class foo{};
+ foreach($ort->result as $row)
+ {
+ if($row->aktiv && $row->lehre)
+ {
+ $OrtObject = new foo();
+ $OrtObject->ort_kurzbz = $row->ort_kurzbz;
+ $OrtObject->bezeichnung = $row->bezeichnung;
+ $OrtObject->planbezeichnung = $row->planbezeichnung;
+ $OrtObject->sitzplaetze = $row->max_person;
+ $OrtObject->aktiv = $row->aktiv;
+ $OrtObject->lehre = $row->lehre;
+ $OrtObject->reservieren = $row->reservieren;
+ $OrtObject->stockwerk = $row->stockwerk;
+
+ // lösche alle Attribute für die user keine Berechtigung hat
+ $return[] = $recht->clearResponse($user, 'getRaeume', $OrtObject);
+ }
+ }
+
+ return $return;
+}
+
+/**
+ *
+ * Funktion searchRaum Sucht einen Raum
+ *
+ * @param date $datum
+ * @param time $zeit_von
+ * @param time $zeit_bis
+ * @param string $raumtyp
+ * @param integer $anzpersonen
+ * @param boolean $reservierung
+ * @param authentifizierung - Array mit Username und Passwort
+ *
+ * Berechtigung:
+ INSERT INTO system.tbl_webservicerecht(berechtigung_kurzbz, methode, attribut) VALUES('soap/ort','searchRaum','ort_kurzbz');
+ INSERT INTO system.tbl_webservicerecht(berechtigung_kurzbz, methode, attribut) VALUES('soap/ort','searchRaum','bezeichnung');
+ INSERT INTO system.tbl_webservicerecht(berechtigung_kurzbz, methode, attribut) VALUES('soap/ort','searchRaum','planbezeichnung');
+ INSERT INTO system.tbl_webservicerecht(berechtigung_kurzbz, methode, attribut) VALUES('soap/ort','searchRaum','sitzplaetze');
+ INSERT INTO system.tbl_webservicerecht(berechtigung_kurzbz, methode, attribut) VALUES('soap/ort','searchRaum','aktiv');
+ INSERT INTO system.tbl_webservicerecht(berechtigung_kurzbz, methode, attribut) VALUES('soap/ort','searchRaum','lehre');
+ INSERT INTO system.tbl_webservicerecht(berechtigung_kurzbz, methode, attribut) VALUES('soap/ort','searchRaum','reservieren');
+ INSERT INTO system.tbl_webservicerecht(berechtigung_kurzbz, methode, attribut) VALUES('soap/ort','searchRaum','stockwerk');
+ */
+function searchRaum($datum, $zeit_von, $zeit_bis, $raumtyp=null, $anzpersonen=null, $reservierung=true, $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, 'searchRaum'))
+ return new SoapFault("Server", "No permission");
+
+ // Daten für Lehrveranstaltung
+ $ort = new ort();
+ if(!$ort->search($datum, $zeit_von, $zeit_bis, $raumtyp, $anzpersonen, $reservierung))
+ return new SoapFault("Server", "Error loading Data");
+
+ $return = array();
+ class foo{};
+ foreach($ort->result as $row)
+ {
+ if($row->aktiv && $row->lehre)
+ {
+ $OrtObject = new foo();
+ $OrtObject->ort_kurzbz = $row->ort_kurzbz;
+ $OrtObject->bezeichnung = $row->bezeichnung;
+ $OrtObject->planbezeichnung = $row->planbezeichnung;
+ $OrtObject->sitzplaetze = $row->max_person;
+ $OrtObject->aktiv = $row->aktiv;
+ $OrtObject->lehre = $row->lehre;
+ $OrtObject->reservieren = $row->reservieren;
+ $OrtObject->stockwerk = $row->stockwerk;
+
+ // lösche alle Attribute für die user keine Berechtigung hat
+ $return[] = $recht->clearResponse($user, 'searchRaum', $OrtObject);
+ }
+ }
+
+ return $return;
+}
+
+?>
diff --git a/soap/ort.wsdl.php b/soap/ort.wsdl.php
new file mode 100755
index 000000000..8ce17e6f3
--- /dev/null
+++ b/soap/ort.wsdl.php
@@ -0,0 +1,141 @@
+";
+?>
+
| Username: | ++ |
| Passwort: | ++ |
| Ort_Kurzbz: | ++ |
| + | + + + | +