From 0be9542db2bd1ae001b3dc2ea6700ca4838a7aef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Fri, 19 Sep 2014 10:35:38 +0000 Subject: [PATCH] =?UTF-8?q?Diverse=20Fehler=20und=20Sicherheitsl=C3=BCcken?= =?UTF-8?q?=20behoben?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/js/CSS and JavaScript.txt | 13 +- vilesci/lehre/lvplanwartung.php | 397 ++++++++++++++++++------------ 2 files changed, 251 insertions(+), 159 deletions(-) diff --git a/include/js/CSS and JavaScript.txt b/include/js/CSS and JavaScript.txt index 474e1fba1..741eff8e0 100644 --- a/include/js/CSS and JavaScript.txt +++ b/include/js/CSS and JavaScript.txt @@ -31,9 +31,20 @@ jquery.js -jquery-1.9.min.js +jquery1.9.min.js -> jqueryUI (autocomplete, datepicker, etc) -> Deutsches Schema für datepicker -> tablesorter +Tablesorter +************** +$(document).ready(function() +{ + $("#t1").tablesorter( + { + sortList: [[2,1]], + widgets: ["zebra"] + }); +}); + diff --git a/vilesci/lehre/lvplanwartung.php b/vilesci/lehre/lvplanwartung.php index 63a109463..7893a3c38 100644 --- a/vilesci/lehre/lvplanwartung.php +++ b/vilesci/lehre/lvplanwartung.php @@ -20,206 +20,287 @@ * Rudolf Hangl < rudolf.hangl@technikum-wien.at > * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > */ - require_once('../../config/vilesci.config.inc.php'); - require_once('../../include/basis_db.class.php'); - if (!$db = new basis_db()) - die('Es konnte keine Verbindung zum Server aufgebaut werden.'); - - require_once('../../include/studiengang.class.php'); - require_once('../../include/functions.inc.php'); - require_once('../../include/studiensemester.class.php'); +/** + * Dieses Script wird verwendet, um zu bereits verplanten LVPlan Eintraegen zusaetzliche + * Gruppen dazu zu verplanen. (zB fuer Incoming Gruppen die erst spaeter zur LV hinzugefuegt werden) + */ +require_once('../../config/vilesci.config.inc.php'); +require_once('../../include/basis_db.class.php'); +require_once('../../include/studiengang.class.php'); +require_once('../../include/functions.inc.php'); +require_once('../../include/studiensemester.class.php'); +require_once('../../include/benutzerberechtigung.class.php'); + +if (!$db = new basis_db()) + die('Es konnte keine Verbindung zum Server aufgebaut werden.'); + +// Benutzerdefinierte Variablen laden +$user = get_uid(); +loadVariables($user); + +// Berechtigungen pruefen +$rechte = new benutzerberechtigung(); +$rechte->getBerechtigungen($user); + +if(!$rechte->isBerechtigt('lehre/lvplan', null,'suid')) + die('Sie haben keine Berechtigung für diese Seite'); // Variablen Initialisieren - $studiengang_kz=0; - $lektor_uid=0; - $unr=0; - $semester=0; - $verband=' '; - $gruppe=' '; - $gruppe_kurzbz=''; - $leid=0; +$studiengang_kz=0; +$lektor_uid=0; +$unr=0; +$semester=0; +$verband=' '; +$gruppe=' '; +$gruppe_kurzbz=''; +$leid=0; - $stg_kz=0; - $sem=0; +$stg_kz=0; +$sem=0; - $insert=false; +$insert=false; + +if(isset($_GET['stg_kz'])) + $stg_kz = $_GET['stg_kz']; + +if(isset($_GET['studiengang_kz'])) + $studiengang_kz = $_GET['studiengang_kz']; + +if(isset($_GET['sem'])) + $sem = $_GET['sem']; + +if(isset($_GET['semester'])) + $semester = $_GET['semester']; + +if(isset($_GET['verband'])) + $verband = $_GET['verband']; + +if(isset($_GET['gruppe'])) + $gruppe = $_GET['gruppe']; + +if(isset($_GET['leid'])) + $leid = $_GET['leid']; + +if(isset($_GET['gruppe_kurzbz'])) + $gruppe_kurzbz = $_GET['gruppe_kurzbz']; + +if(isset($_GET['lektor_uid'])) + $lektor_uid = $_GET['lektor_uid']; + +if(isset($_GET['unr'])) + $unr = $_GET['unr']; -// POST/GET Parameter uebernehmen - if (isset($_GET)) - { - while (list ($tmp_key, $tmp_val) = each ($_GET)) - { - $$tmp_key=$tmp_val; - } - - } - else if (isset($_POST)) - { - while (list ($tmp_key, $tmp_val) = each ($_POST)) - { - $$tmp_key=$tmp_val; - } - } // Plausib der Variablen - if ($verband=='') - $verband=' '; - if ($gruppe=='') - $gruppe=' '; - - if(!is_numeric($stg_kz)) - $stg_kz=0; - if(!is_numeric($semester)) - $semester=0; - - $insert=trim($insert); - $insert=(empty($insert)?false:true); +if ($verband=='') + $verband=' '; +if ($gruppe=='') + $gruppe=' '; + +if(!is_numeric($stg_kz)) + $stg_kz=0; +if(!is_numeric($semester)) + $semester=0; + +$insert = (isset($_GET['insert'])?$_GET['insert']:false); +$insert=trim($insert); +$insert=(empty($insert)?false:true); // Studiengang lesen - $s=new studiengang(); - $s->getAll('typ, kurzbz', false); - $studiengang=$s->result; - -// Benutzerdefinierte Variablen laden - $user = get_uid(); - loadVariables($user); - +$s=new studiengang(); +$s->getAll('typ, kurzbz', false); +$studiengang=$s->result; // Bezeichnungen fuer Tabellen und Views - $lva_stpl_view=VIEW_BEGIN.'lva_'.$db_stpl_table; - $stpl_table=TABLE_BEGIN.$db_stpl_table; +$lva_stpl_view=VIEW_BEGIN.'lva_'.$db_stpl_table; +$stpl_table=TABLE_BEGIN.$db_stpl_table; +$outp=''; -//*************** im Stundenplan hinzufuegen ************************* - if ($insert) +// Eintrag im Stundenplan hinzufuegen +if ($insert) +{ + // Termine holen + $qry = "SELECT DISTINCT datum, stunde FROM lehre.$stpl_table WHERE lehreinheit_id=".$db->db_add_param($leid, FHC_INTEGER); + + if(!$result=$db->db_query($qry)) + die ($qry .' '.$db->db_last_error()); + + while ($row=$db->db_fetch_object($result)) { - // Termine holen - $qry = "SELECT DISTINCT datum, stunde FROM lehre.$stpl_table WHERE lehreinheit_id=".$leid; - //echo $qry.'
'; - if(!$result=$db->db_query($qry)) - die ($qry .' '.$db->db_last_error()); - - while ($row=$db->db_fetch_object($result)) + $qry = "SELECT + DISTINCT ort_kurzbz + FROM + lehre.".$stpl_table." + WHERE + lehreinheit_id=".$db->db_add_param($leid, FHC_INTEGER)." + AND datum=".$db->db_add_param($row->datum)." + AND stunde=".$db->db_add_param($row->stunde).";"; + + if(!$result_ort=$db->db_query($qry)) + die ("DB Fehler $qry" .' '.$db->db_last_error()); + + while ($row_ort=$db->db_fetch_object($result_ort)) { - $qry = "SELECT DISTINCT ort_kurzbz FROM lehre.".$stpl_table." - WHERE lehreinheit_id=$leid AND datum='$row->datum' AND stunde=$row->stunde;"; - if(!$result_ort=$db->db_query($qry)) - die ("DB Fehler $qry" .' '.$db->db_last_error()); - while ($row_ort=$db->db_fetch_object($result_ort)) + // Pruefen ob der Eintrag schon in der Datenbank vorhanden ist + // da sonst bei mehrmaligem Refresh der Seite der Eintrag oefter eingetragen wird + $qry = "SELECT + 1 + FROM + lehre.$stpl_table + WHERE datum=".$db->db_add_param($row->datum). + ' AND stunde='.$db->db_add_param($row->stunde). + ' AND ort_kurzbz='.$db->db_add_param($row_ort->ort_kurzbz). + ' AND unr='.$db->db_add_param($unr). + ' AND mitarbeiter_uid='.$db->db_add_param($lektor_uid). + ' AND studiengang_kz='.$db->db_add_param($studiengang_kz). + ' AND semester='.$db->db_add_param($semester). + ' AND verband='.$db->db_add_param($verband). + ' AND gruppe='.$db->db_add_param($gruppe); + + if ($gruppe_kurzbz!='') + $qry.=' AND gruppe_kurzbz='.$db->db_add_param($gruppe_kurzbz); + else + $qry.=' AND gruppe_kurzbz is null'; + + if($result_stplcheck=$db->db_query($qry)) { - $qry="INSERT INTO lehre.$stpl_table (datum,stunde,ort_kurzbz,unr,mitarbeiter_uid,studiengang_kz,semester,verband,gruppe,gruppe_kurzbz,lehreinheit_id, insertvon) - VALUES ('".$row->datum."', $row->stunde,'$row_ort->ort_kurzbz',$unr,'".$lektor_uid."',$studiengang_kz,$semester,'$verband','$gruppe',"; - if ($gruppe_kurzbz!='') - $qry.="'$gruppe_kurzbz',$leid,'LVPlanCheck');"; + if($db->db_num_rows($result_stplcheck)==0) + { + $qry="INSERT INTO lehre.$stpl_table (datum,stunde,ort_kurzbz,unr,mitarbeiter_uid,studiengang_kz, + semester,verband,gruppe,gruppe_kurzbz,lehreinheit_id, insertvon) + VALUES (".$db->db_add_param($row->datum).",". + $db->db_add_param($row->stunde).",". + $db->db_add_param($row_ort->ort_kurzbz).",". + $db->db_add_param($unr).",". + $db->db_add_param($lektor_uid).",". + $db->db_add_param($studiengang_kz).",". + $db->db_add_param($semester).",". + $db->db_add_param($verband).",". + $db->db_add_param($gruppe).","; + + if ($gruppe_kurzbz!='') + $qry.=$db->db_add_param($gruppe_kurzbz).","; + else + $qry.="NULL,"; + + $qry.=$db->db_add_param($leid, FHC_INTEGER).",'LVPlanCheck');"; + + if(!$result_insert=$db->db_query($qry)) + die ("DB Fehler $qry" .' '.$db->db_last_error()); + } else - $qry.="NULL,$leid,'LVPlanCheck');"; - if(!$result_insert=$db->db_query($qry)) - die ("DB Fehler $qry" .' '.$db->db_last_error()); + { + $outp.='Fehlgeschlagen: Eintrag bereits vorhanden'; + } } } } +} - $stsem_obj = new studiensemester(); -/* if(date("m")>=1 || date("m")<=2) - { - $stsem_obj->getNextStudiensemester(); - $studiensemester = $stsem_obj->studiensemester_kurzbz; - } - else */ - $studiensemester = $semester_aktuell; - $where=" studiensemester_kurzbz='".$studiensemester."'"; - if (!empty($semester)) - $where.=" AND semester=$semester"; - if (!empty($stg_kz)) - $where.=" AND studiengang_kz='$stg_kz'"; +$stsem_obj = new studiensemester(); +$studiensemester = $semester_aktuell; - - if(isset($_GET['lvid']) && is_numeric($_GET['lvid'])) - { - //Lehrevz Speichern - if(isset($_POST['lehrevz'])) - { - $qry = "UPDATE lehre.tbl_lehrveranstaltung SET lehreverzeichnis='".addslashes($_POST['lehrevz'])."' WHERE lehrveranstaltung_id='".$_GET['lvid']."'"; - if(!$db->db_query($qry)) - echo "Fehler beim Speichern! " .' '.$db->db_last_error(); - else - echo "Erfolgreich gespeichert"; - } - } +$where=" studiensemester_kurzbz=".$db->db_add_param($studiensemester); - $sql_query="SELECT *, planstunden-verplant::smallint AS offenestunden - FROM lehre.$lva_stpl_view JOIN lehre.tbl_lehrform ON $lva_stpl_view.lehrform=tbl_lehrform.lehrform_kurzbz - WHERE $where AND verplant=0 AND planstunden>0 AND lehreinheit_id IN (SELECT lehreinheit_id FROM lehre.$stpl_table) - ORDER BY offenestunden DESC, lehrfach, lehrform, semester, verband, gruppe, gruppe_kurzbz;"; - //echo $sql_query; - if(!$result_lv=$db->db_query($sql_query)) - die ("DB Fehler $sql_query" .' '.$db->db_last_error()); - if(!$result_lv) - die("Lehrveranstaltung not found!"); - - $outp=''; - $s=array(); - $outp.="'; - $outp.= '
-- '; - for ($i=0;$i<=$s[$stg_kz]->max_sem;$i++) - $outp.= ''.$i.' -- '; +if (!empty($semester)) + $where.=" AND semester=".$db->db_add_param($semester, FHC_INTEGER); + +if (!empty($stg_kz)) + $where.=" AND studiengang_kz=".$db->db_add_param($stg_kz, FHC_INTEGER); + +$sql_query="SELECT + *, planstunden-verplant::smallint AS offenestunden + FROM + lehre.$lva_stpl_view + JOIN lehre.tbl_lehrform ON ($lva_stpl_view.lehrform=tbl_lehrform.lehrform_kurzbz) + WHERE $where + AND verplant=0 + AND planstunden>0 + AND lehreinheit_id IN (SELECT lehreinheit_id FROM lehre.$stpl_table) + ORDER BY offenestunden DESC, lehrfach, lehrform, semester, verband, gruppe, gruppe_kurzbz;"; + +if(!$result_lv=$db->db_query($sql_query)) + die ("DB Fehler $sql_query" .' '.$db->db_last_error()); +if(!$result_lv) + die("Lehrveranstaltung not found!"); + +$s=array(); +$outp.=''; +$outp.= '
-- '; +for ($i=0;$i<=$s[$stg_kz]->max_sem;$i++) + $outp.= ''.$i.' -- '; ?> -Lehrveranstaltung Verwaltung - - - - + LVPlan Wartung + + + + + + - + LV-Plan Wartung (".$s[$stg_kz]->kurzbz." - ".$semester.") ($lva_stpl_view)"; - -echo '
'; echo $outp; -echo ''; -echo ""; -echo '
'; -echo "

Übersicht

- +echo '

Übersicht

+
- "; + '; if ($result_lv!=0) { $num_rows=$db->db_num_rows($result_lv); // raumtyp raumtypalternativ stundenblockung wochenrythmus semesterstunden start_kw anmerkung - echo " - \n"; + echo " + + + + + + + + \n"; echo ""; echo ""; for($i=0;$i<$num_rows;$i++) { - $row=$db->db_fetch_object($result_lv); - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo "\n"; + $row=$db->db_fetch_object($result_lv); + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; } } @@ -231,4 +312,4 @@ else
- \ No newline at end of file +
LE-IDUNRLehrfachLektorLehrverbandGruppeSSplanstundenVerplantLE-IDUNRLehrfachLektorLehrverbandGruppeSSplanstundenVerplant
$row->lehreinheit_id$row->unr$row->lehrfach-$row->lehrform - $row->lehrfach_bez$row->lektor$row->studiengang-$row->semester$row->verband$row->gruppe$row->gruppe_kurzbz$row->studiensemester_kurzbz$row->planstunden$row->verplantHinzufuegen
$row->lehreinheit_id$row->unr$row->lehrfach-$row->lehrform - $row->lehrfach_bez$row->lektor$row->studiengang-$row->semester$row->verband$row->gruppe$row->gruppe_kurzbz$row->studiensemester_kurzbz$row->planstunden$row->verplantHinzufuegen