From 63a260a1d4df818535c23a2ed4a61e3ff57a3f65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Fri, 20 Jun 2014 11:35:11 +0000 Subject: [PATCH] Berechtigungen hinzugefuegt; Code bereinigt --- include/dokument.class.php | 116 +++++++++++++++---- vilesci/stammdaten/studiengang_dokumente.php | 80 +++++++++---- 2 files changed, 149 insertions(+), 47 deletions(-) diff --git a/include/dokument.class.php b/include/dokument.class.php index 5f55dfc95..93a86784f 100644 --- a/include/dokument.class.php +++ b/include/dokument.class.php @@ -442,42 +442,114 @@ class dokument extends basis_db } /** - * fügt ein Dokument einem Studiengang hinzu - * @param dokument_kurzbz - * stg_kz - * onlinebewerbung true, wenn für Online-Bewerbung relevant - * @return true wenn ok false im Fehlerfall + * Laedt die Dokument Studiengang Zuordnung + * + * @param $dokument_kurzbz + * @param $studiengang_kz + * @return true wenn ok, false im Fehlerfall */ - public function addDokument($dokument_kurzbz, $stg_kz, $onlinebewerbung=true) + public function loadDokumentStudiengang($dokument_kurzbz, $studiengang_kz) { - //Prüfung, ob Eintrag bereits vorhanden - $qry='SELECT dokument_kurzbz FROM public.tbl_dokumentstudiengang - WHERE dokument_kurzbz='.$this->db_add_param($dokument_kurzbz).' AND studiengang_kz='.$this->db_add_param($stg_kz,FHC_INTEGER); - if($this->db_query($qry)) + $qry="SELECT * FROM public.tbl_dokumentstudiengang + WHERE + studiengang_kz=".$this->db_add_param($studiengang_kz)." + AND dokument_kurzbz=".$this->db_add_param($dokument_kurzbz); + + if($result = $this->db_query($qry)) { - if($this->db_fetch_object()) + if($row = $this->db_fetch_object($result)) { - $this->errormsg = 'Eintrag bereits vorhanden'; + $this->dokument_kurzbz = $row->dokument_kurzbz; + $this->studiengang_kz = $row->studiengang_kz; + $this->onlinebewerbung = $this->db_parse_bool($row->onlinebewerbung); + return true; + } + else + { + $this->errormsg='Fehler beim Laden der Daten'; return false; } } else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } + + /** + * Prueft ob die Zuordnung Dokument zu Studiengang bereits vorhanden ist + * @param $dokument_kurzbz + * @parma $studiengang_kz + * @return true wenn vorhanden, false wenn nicht vorhanden + */ + public function existsDokumentStudiengang($dokument_kurzbz, $studiengang_kz) + { + $qry='SELECT + dokument_kurzbz + FROM + public.tbl_dokumentstudiengang + WHERE + dokument_kurzbz='.$this->db_add_param($dokument_kurzbz).' + AND studiengang_kz='.$this->db_add_param($studiengang_kz,FHC_INTEGER); + + if($result = $this->db_query($qry)) + { + if($this->db_num_rows($result)>0) + return true; + else + return false; + } + else { $this->errormsg = 'Fehler beim Durchführen der Datenbankabfrage'; return false; } - - $qry='INSERT INTO public.tbl_dokumentstudiengang (dokument_kurzbz, studiengang_kz, onlinebewerbung) - VALUES ('. - $this->db_add_param($dokument_kurzbz).','. - $this->db_add_param($stg_kz,FHC_INTEGER).','. - $this->db_add_param($onlinebewerbung,FHC_BOOLEAN).')'; - - $this->db_query($qry); } + + /** + * Speichert die Zuordnung Dokument zu Studiengang + * @return true wenn ok false im Fehlerfall + */ + public function saveDokumentStudiengang() + { + if(!$this->existsDokumentStudiengang($this->dokument_kurzbz, $this->studiengang_kz)) + { + $qry='INSERT INTO public.tbl_dokumentstudiengang (dokument_kurzbz, studiengang_kz, onlinebewerbung) + VALUES ('. + $this->db_add_param($this->dokument_kurzbz).','. + $this->db_add_param($this->studiengang_kz,FHC_INTEGER).','. + $this->db_add_param($this->onlinebewerbung,FHC_BOOLEAN).')'; + } + else + { + $qry = 'UPDATE public.tbl_dokumentstudiengang SET + onlinebewerbung='.$this->db_add_param($this->onlinebewerbung,FHC_BOOLEAN).' + WHERE + dokument_kurzbz='.$this->db_add_param($this->dokument_kurzbz).' + AND studiengang_kz='.$this->db_add_param($this->studiengang_kz); + } + + if($this->db_query($qry)) + { + return true; + } + else + { + $this->errormsg = 'Fehler beim Speichern der Zuordnung'; + return false; + } + } + + /** + * Laedt einen Dokumenttyp + * @param $dokument_kurzbz + * @return true wenn ok, false im Fehlerfall + */ public function loadDokumenttyp($dokument_kurzbz) { - $qry="Select * FROM public.tbl_dokument where dokument_kurzbz =".$this->db_add_param($dokument_kurzbz).";"; + $qry="SELECT * FROM public.tbl_dokument + WHERE dokument_kurzbz =".$this->db_add_param($dokument_kurzbz).";"; if($this->db_query($qry)) { @@ -535,4 +607,4 @@ class dokument extends basis_db } -?> \ No newline at end of file +?> diff --git a/vilesci/stammdaten/studiengang_dokumente.php b/vilesci/stammdaten/studiengang_dokumente.php index 0b14368f3..2b4f35cd2 100644 --- a/vilesci/stammdaten/studiengang_dokumente.php +++ b/vilesci/stammdaten/studiengang_dokumente.php @@ -1,5 +1,4 @@ * */ - require_once('../../config/vilesci.config.inc.php'); +require_once('../../include/functions.inc.php'); require_once('../../include/studiengang.class.php'); require_once('../../include/dokument.class.php'); +require_once('../../include/benutzerberechtigung.class.php'); $stg_kz=isset($_REQUEST['stg_kz'])?$_REQUEST['stg_kz']:''; $dokument_kurzbz=isset($_REQUEST['dokument_kurzbz'])?$_REQUEST['dokument_kurzbz']:''; @@ -37,12 +37,22 @@ if(isset($_POST['add'])) if(isset($_POST['saveDoc'])) $action='saveDoc'; +$uid = get_uid(); +$rechte = new benutzerberechtigung(); +$rechte->getBerechtigungen($uid); + +if(!$rechte->isBerechtigt('basis/studiengang', $stg_kz, 'suid')) + die('Sie haben keine Berechtigung für diese Seite'); + if($action=='add') { if($dokument_kurzbz != '' && $stg_kz != '') { $dokument=new dokument(); - $dokument->addDokument($dokument_kurzbz, $stg_kz, $onlinebewerbung); + $dokument->dokument_kurzbz = $dokument_kurzbz; + $dokument->studiengang_kz = $stg_kz; + $dokument->onlinebewerbung = $onlinebewerbung; + $dokument->saveDokumentStudiengang(); } } @@ -56,6 +66,22 @@ if($action=='delete') } } +if($action =='toggleonline') +{ + if($dokument_kurzbz != '' && $stg_kz != '') + { + $dokument=new dokument(); + if($dokument->loadDokumentStudiengang($dokument_kurzbz, $stg_kz)) + { + $dokument->onlinebewerbung = !$dokument->onlinebewerbung; + if(!$dokument->saveDokumentStudiengang()) + echo $dokument->errormsg; + } + else + echo 'Zuordnung ist nicht vorhanden'; + } +} + if($action=='saveDoc') { $dokBezeichnung=isset($_POST['dokument_bezeichnung'])?$_POST['dokument_bezeichnung']:''; @@ -100,7 +126,7 @@ $output .= ' if($stg_kz!='') { - $output .= ' + $output .= '
@@ -111,50 +137,52 @@ if($stg_kz!='') '; $dokStg=new dokument(); $dokStg->getDokumente($stg_kz); + $zugewieseneDokumente=array(); foreach($dokStg->result as $dok) { - $checked=$dok->onlinebewerbung?' checked':''; + $zugewieseneDokumente[]=$dok->dokument_kurzbz; + $checked=$dok->onlinebewerbung?'true':'false'; $output .= ' - + '; } $output .= ' - - - - + + + - +
Dokumentname
'.$dok->bezeichnung.' Zuordnung löschen
-
- +

- +