From bb78764bef722a284ffa89dc21296eb641e92358 Mon Sep 17 00:00:00 2001 From: oesi Date: Tue, 28 Apr 2015 18:26:29 +0200 Subject: [PATCH] =?UTF-8?q?Sicherheitsl=C3=BCcke=20beim=20L=C3=B6schen=20v?= =?UTF-8?q?on=20Reservierungen=20behoben?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cis/private/lvplan/stpl_reserve_list.php | 58 ++++++++++++++---------- include/reservierung.class.php | 44 +++++++++++++++++- 2 files changed, 76 insertions(+), 26 deletions(-) diff --git a/cis/private/lvplan/stpl_reserve_list.php b/cis/private/lvplan/stpl_reserve_list.php index 08a02344d..ddb757e38 100644 --- a/cis/private/lvplan/stpl_reserve_list.php +++ b/cis/private/lvplan/stpl_reserve_list.php @@ -24,6 +24,7 @@ require_once('../../../include/functions.inc.php'); require_once('../../../include/datum.class.php'); require_once('../../../include/benutzerberechtigung.class.php'); require_once('../../../include/phrasen.class.php'); +require_once('../../../include/reservierung.class.php'); if (!$db = new basis_db()) die($p->t('global/fehlerBeimOeffnenDerDatenbankverbindung')); @@ -54,23 +55,30 @@ if(!$rechte->isBerechtigt('lehre/reservierung:begrenzt', null, 'suid')) -

- - - - - -
 t('lvplan/lehrveranstaltungsplan');?> >> t('lvplan/reservierungen');?>HELP 
-

+

t('lvplan/lehrveranstaltungsplan');?> >> t('lvplan/reservierungen');?>

db_query($sql_query)) - echo ''.$p->t('lvplan/reservierungWurdeGeloescht').'
'; + + $reservierung = new reservierung(); + if($reservierung->load($id)) + { + if($reservierung->uid==$uid || $rechte->isBerechtigt('lehre/reservierung', null, 'suid')) + { + if($reservierung->delete($id)) + echo ''.$p->t('lvplan/reservierungWurdeGeloescht').'
'; + else + echo $reservierung->errormsg; + } + else + { + echo ''.$p->t('global/keineBerechtigung').'
'; + } + } else echo ''.$p->t('global/fehleraufgetreten').'!
'; } @@ -81,7 +89,7 @@ if(!$rechte->isBerechtigt('lehre/reservierung:begrenzt', null, 'suid')) //EIGENE $sql_query="SELECT * FROM campus.vw_reservierung - WHERE datum>='$datum' AND uid='$uid' + WHERE datum>=".$db->db_add_param($datum)." AND uid=".$db->db_add_param($uid)." ORDER BY datum, titel, ort_kurzbz, stunde"; if (!$erg_res=$db->db_query($sql_query)) @@ -119,12 +127,12 @@ if(!$rechte->isBerechtigt('lehre/reservierung:begrenzt', null, 'suid')) if($insertamum!='') $insertamum = $datum_obj->formatDatum($insertamum, 'd.m.Y H:i:s'); echo ''; - echo ''.$datum1.''; - echo ''.$titel.''; - echo ''.$stunde.''; - echo ''.$ort_kurzbz.''; - echo ''.$pers_uid.''; - echo ''.$beschreibung.' '; + echo ''.$db->convert_html_chars($datum1).''; + echo ''.$db->convert_html_chars($titel).''; + echo ''.$db->convert_html_chars($stunde).''; + echo ''.$db->convert_html_chars($ort_kurzbz).''; + echo ''.$db->convert_html_chars($pers_uid).''; + echo ''.$db->convert_html_chars($beschreibung).' '; $z=$i-1; if (($pers_uid==$uid)|| $rechte->isBerechtigt('lehre/reservierung', null, 'suid')) echo 'Delete'; @@ -142,7 +150,7 @@ if(!$rechte->isBerechtigt('lehre/reservierung:begrenzt', null, 'suid')) //ALLE $sql_query="SELECT * FROM campus.vw_reservierung - WHERE datum>='$datum' + WHERE datum>=".$db->db_add_param($datum)." ORDER BY datum, titel, ort_kurzbz, stunde"; if (!$erg_res=$db->db_query($sql_query)) die($db->db_last_error()); @@ -180,12 +188,12 @@ if(!$rechte->isBerechtigt('lehre/reservierung:begrenzt', null, 'suid')) if($insertamum!='') $insertamum = $datum_obj->formatDatum($insertamum, 'd.m.Y H:i:s'); echo ''; - echo ''.$datum.''; - echo ''.$titel.''; - echo ''.$stunde.''; - echo ''.$ort_kurzbz.''; - echo ''.$pers_uid.''; - echo ''.$beschreibung.' '; + echo ''.$db->convert_html_chars($datum).''; + echo ''.$db->convert_html_chars($titel).''; + echo ''.$db->convert_html_chars($stunde).''; + echo ''.$db->convert_html_chars($ort_kurzbz).''; + echo ''.$db->convert_html_chars($pers_uid).''; + echo ''.$db->convert_html_chars($beschreibung).' '; $z=$i-1; if (($pers_uid==$uid) || $rechte->isBerechtigt('lehre/reservierung', null, 'suid')) echo 'Delete'; diff --git a/include/reservierung.class.php b/include/reservierung.class.php index d246854dd..2edac6844 100644 --- a/include/reservierung.class.php +++ b/include/reservierung.class.php @@ -54,7 +54,49 @@ class reservierung extends basis_db if($reservierung_id!=null) $this->load($reservierung_id); } - + + /** + * Laedt eine Reservierung + * @param $reservierung_id + * @return boolean + */ + public function load($reservierung_id) + { + $qry = "SELECT * FROM campus.tbl_reservierung WHERE reservierung_id=".$this->db_add_param($reservierung_id); + + if($result = $this->db_query($qry)) + { + if($row = $this->db_fetch_object($result)) + { + $this->reservierung_id = $row->reservierung_id; + $this->ort_kurzbz = $row->ort_kurzbz; + $this->studiengang_kz = $row->studiengang_kz; + $this->uid = $row->uid; + $this->stunde = $row->stunde; + $this->datum = $row->datum; + $this->titel = $row->titel; + $this->beschreibung = $row->beschreibung; + $this->semester = $row->semester; + $this->verband = $row->verband; + $this->gruppe = $row->gruppe; + $this->gruppe_kurzbz = $row->gruppe_kurzbz; + $this->insertamum = $row->insertamum; + $this->insertvon = $row->insertvon; + return true; + } + else + { + $this->errormsg = 'Eintrag wurde nicht gefunden'; + return false; + } + } + else + { + $this->errormsg = 'Fehler beim Ladend er Daten'; + return false; + } + } + /** * Prueft die Variablen vor dem Speichern * auf Gueltigkeit.