From b0fafd20132fa1520c5733eb700971c4582abacc Mon Sep 17 00:00:00 2001 From: Stefan Puraner Date: Tue, 12 May 2015 12:50:32 +0200 Subject: [PATCH] preparation for addon externe Ausweise --- cis/infoterminal/index.php | 129 ++++++++++++++++++------------ soap/kartenverlaengerung.soap.php | 22 +++++ 2 files changed, 100 insertions(+), 51 deletions(-) diff --git a/cis/infoterminal/index.php b/cis/infoterminal/index.php index 3e7f7ed2d..b364691fe 100644 --- a/cis/infoterminal/index.php +++ b/cis/infoterminal/index.php @@ -41,6 +41,7 @@ require_once('../../include/konto.class.php'); require_once('../../include/functions.inc.php'); require_once('../../include/authentication.class.php'); + require_once('../../include/addon.class.php'); require_once('../../include/'.EXT_FKT_PATH.'/serviceterminal.inc.php'); if (!$db = new basis_db()) @@ -92,7 +93,7 @@ unset($_SESSION[constSESSIONNAME]); $uid=''; $work='raumanzeigen'; - $raumtyp_kurzbz='EDV'; + $raumtyp_kurzbz=$ServiceTerminalDefaultRaumtyp; } @@ -107,22 +108,49 @@ // Login Prozedure wenn Anmeldung ueber einen Schluessel erfolgte // - Lesen der Betriebsmittel um Anwender zu ermitteln ( es wird hier kein Passwort benoetigt / LDAP ) $cardlogin=false; + $cardnumber = ""; if ($db && !empty($key_input)) // Login { - // Pruefen ob es sich um eine HEX Eingabe handelt - - $betriebsmittel = new betriebsmittel(); - //$key_input = $betriebsmittel->transform_kartennummer($key_input); + // Pruefen ob es sich um eine HEX Eingabe handelt + $betriebsmittel = new betriebsmittel(); + //$key_input = $betriebsmittel->transform_kartennummer($key_input); - // führende nullen entfernen - $key_input = preg_replace("/^0*/", "", $key_input); - $uidStudent = getUidFromCardNumber($key_input); - if($uidStudent != false) + // führende nullen entfernen + $key_input = preg_replace("/^0*/", "", $key_input); + $uidStudent = getUidFromCardNumber($key_input); + if($uidStudent != false) + { + $uid = $uidStudent; + $work = "login"; + $cardlogin = true; + } + else + { + $addon_externeAusweise = false; + $addon = new addon(); + $addon->loadAddons(); + foreach($addon->result as $ad) { - $uid = $uidStudent; - $work = "login"; - $cardlogin = true; + if($ad->kurzbz == "externeAusweise") + { + $addon_externeAusweise = true; + } } + + if($addon_externeAusweise) + { + require_once (dirname(__FILE__).'/../../addons/externeAusweise/include/idCard.class.php'); + $idCard = new idCard(); + if($idCard->loadByCardnumber($key_input)) + { + $uid = ""; + $cardnumber = $idCard->cardnumber; + $work = "verlaengerung"; + $cardlogin = true; + $_SESSION[constSESSIONNAME]["uid"]=$cardnumber; + } + } + } } if (mb_strtolower($work)=='login') @@ -485,7 +513,7 @@ $refreshtime = ($sdtools?99999:(isset($_SESSION[constSESSIONNAME]["uid"]) && !em echo ' Logo '; - if(isset($_SESSION[constSESSIONNAME]["uid"]) && !empty($_SESSION[constSESSIONNAME]["uid"]) ) + if(isset($_SESSION[constSESSIONNAME]["uid"]) && !empty($_SESSION[constSESSIONNAME]["uid"]) && !empty($_SESSION[constSESSIONNAME]["pwd"])) { //Angemeldeter User - Stundenplan der Woche echo ' @@ -506,8 +534,7 @@ $refreshtime = ($sdtools?99999:(isset($_SESSION[constSESSIONNAME]["uid"]) && !em // Tabelle der Raumtypen echo html_output_liste_raumtypen($row_ort); - - if(isset($_SESSION[constSESSIONNAME]["uid"]) && !empty($_SESSION[constSESSIONNAME]["uid"]) ) + if(isset($_SESSION[constSESSIONNAME]["uid"]) && !empty($_SESSION[constSESSIONNAME]["uid"]) && empty($cardnumber)) { //Angemeldeter User - Stundenplan der Woche echo ' @@ -610,7 +637,7 @@ $refreshtime = ($sdtools?99999:(isset($_SESSION[constSESSIONNAME]["uid"]) && !em } else if (strtolower($work)==strtolower("verlaengerung") && isset($_SESSION[constSESSIONNAME])) { - karten_verlaengerung($_SESSION[constSESSIONNAME]["uid"]); + karten_verlaengerung($_SESSION[constSESSIONNAME]["uid"],$cardnumber); } else if (mb_strtolower($work)==mb_strtolower("stundenplan") && isset($_SESSION[constSESSIONNAME]["uid"]) && !empty($_SESSION[constSESSIONNAME]["uid"]) ) { @@ -752,46 +779,46 @@ function meine_uid_informationen($db,$uid,$user="") * Zeigt die Oberfläche zur Kartenverlängerung an * @param $uid Userkurzzeichen */ -function karten_verlaengerung($uid) +function karten_verlaengerung($uid, $cardnumber=NULL) { - $studienbeitrag = false; - - - // Mitarbeiter brauchen die Karte nicht verlängern - - $cardPerson = new benutzer(); - if(!$cardPerson->load($uid)) + if(is_null($cardnumber)) { - die('Konnte User nicht laden'); + $studienbeitrag = false; + // Mitarbeiter brauchen die Karte nicht verlängern + + $cardPerson = new benutzer(); + if(!$cardPerson->load($uid)) + { + die('Konnte User nicht laden'); + } + + $html_user_daten=''; + $html_user_daten.='

Verlängerung Studienausweis

'; + $html_user_daten.=' + + + + +
+ + + + + + + +
'.($cardPerson->titelpre?$cardPerson->titelpre.' ':'').$cardPerson->vorname.' '.$cardPerson->nachname.' '.($cardPerson->titelpost?$cardPerson->titelpost:'').' 
+  
+ + +
 
+  
'; + + echo $html_user_daten; } - - $html_user_daten=''; - $html_user_daten.='

Verlängerung Studienausweis

'; - $html_user_daten.=' - - - - -
- - - - - - - -
'.($cardPerson->titelpre?$cardPerson->titelpre.' ':'').$cardPerson->vorname.' '.$cardPerson->nachname.' '.($cardPerson->titelpost?$cardPerson->titelpost:'').' 
-  
- - -
 
-  
'; - - echo $html_user_daten; - // User zur Karte konnte nicht geladen werden - $data = ServiceTerminalCheckVerlaengerung($uid); + $data = ServiceTerminalCheckVerlaengerung($uid, $cardnumber); if($data[0]===true) { diff --git a/soap/kartenverlaengerung.soap.php b/soap/kartenverlaengerung.soap.php index 122910832..e5cc5bb1f 100755 --- a/soap/kartenverlaengerung.soap.php +++ b/soap/kartenverlaengerung.soap.php @@ -26,6 +26,7 @@ require_once('../include/studiensemester.class.php'); require_once('../include/benutzer.class.php'); require_once('../include/webservicelog.class.php'); require_once('../include/datum.class.php'); +require_once('../include/addon.class.php'); require_once('../include/'.EXT_FKT_PATH.'/serviceterminal.inc.php'); ini_set("soap.wsdl_cache_enabled", "0"); @@ -43,6 +44,27 @@ function getNumber($cardNr) return $objArray; } + $addon_externeAusweise = false; + $addon = new addon(); + $addon->loadAddons(); + foreach($addon->result as $ad) + { + if($ad->kurzbz == "externeAusweise") + { + $addon_externeAusweise = true; + } + } + + if($addon_externeAusweise) + { + require_once (dirname(__FILE__).'/../addons/externeAusweise/include/idCard.class.php'); + $idCard = new idCard(); + if($idCard->loadByCardnumber($cardNr)) + { + return ServiceTerminalGetDrucktext($cardNr, $cardNr); + } + } + // Karte ist noch nicht ausgegeben $cardUser = new betriebsmittelperson(); if(!$cardUser->getKartenzuordnung($cardNr))