From e87bc58fc6b49b31d56e05a7fb7371396b2c9935 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Wed, 27 Jan 2010 16:52:04 +0000 Subject: [PATCH] - Reservierung auf neues Berechtigungskonzept umgestellt - Reservierungen haben insertamum und insertvon Feld - Erweiterte Reservierung mit Auswahl des Lektors, Studienganges, Semester und Gruppe --- cis/private/lvplan/stpl_reserve_list.php | 188 ++++++---- cis/private/lvplan/stpl_week.php | 51 ++- include/benutzerberechtigung.class.php | 52 ++- include/reservierung.class.php | 8 +- include/studiengang.class.php | 2 +- include/wochenplan.class.php | 139 ++++++- rdf/funktion.rdf.php | 2 +- system/FH-Complete.txp | 344 ++++++++---------- system/checksystem.php | 23 +- vilesci/personen/funktion.php | 5 +- .../benutzerberechtigung_details.php | 312 ++++++++-------- 11 files changed, 671 insertions(+), 455 deletions(-) diff --git a/cis/private/lvplan/stpl_reserve_list.php b/cis/private/lvplan/stpl_reserve_list.php index 96a4c82fe..71d56def1 100644 --- a/cis/private/lvplan/stpl_reserve_list.php +++ b/cis/private/lvplan/stpl_reserve_list.php @@ -19,30 +19,30 @@ * Andreas Oesterreicher and * Rudolf Hangl . */ - require_once('../../../config/cis.config.inc.php'); - require_once('../../../include/functions.inc.php'); - require_once('../../../include/benutzerberechtigung.class.php'); +require_once('../../../config/cis.config.inc.php'); +require_once('../../../include/functions.inc.php'); +require_once('../../../include/datum.class.php'); +require_once('../../../include/benutzerberechtigung.class.php'); - if (!$db = new basis_db()) - die('Fehler beim Oeffnen der Datenbankverbindung'); - - $uid=get_uid(); - - if (isset($_GET['id'])) - $id=$_GET['id']; - else if (isset($_POST['id'])) - $id=$_POST['id']; - $rechte = new benutzerberechtigung(); - $rechte->getBerechtigungen($uid); - - if (isset($id)) - { - $sql_query="DELETE FROM campus.tbl_reservierung WHERE reservierung_id=$id"; - $erg=$db->db_query($sql_query); - } +if (!$db = new basis_db()) + die('Fehler beim Oeffnen der Datenbankverbindung'); + +$uid = get_uid(); + +if (isset($_GET['id'])) + $id=$_GET['id']; +else if (isset($_POST['id'])) + $id=$_POST['id']; + +$datum_obj = new datum(); +$rechte = new benutzerberechtigung(); +$rechte->getBerechtigungen($uid); + +if(!$rechte->isBerechtigt('lehre/reservierung:begrenzt', null, 'suid')) + die('Sie haben keine Berechtigung fuer diese Seite'); - ?> + @@ -50,21 +50,36 @@ -

- - - - +

+

 Lehrveranstaltungsplan >> ReservierungenHELP 
+ + + +
 Lehrveranstaltungsplan >> ReservierungenHELP 

db_query($sql_query)) + echo 'Reservierung wurde geloescht
'; + else + echo 'Fehler beim Loeschen der Reservierung!
'; + } + //Aktuelle Reservierungen abfragen. - $datum=mktime(); - $datum=date("Y-m-d",$datum); + $datum = mktime(); + $datum = date("Y-m-d",$datum); //EIGENE - $sql_query="SELECT * FROM campus.vw_reservierung WHERE datum>='$datum' AND uid='$uid'"; - $sql_query.=" ORDER BY datum, titel, ort_kurzbz, stunde"; + $sql_query="SELECT * FROM campus.vw_reservierung + WHERE datum>='$datum' AND uid='$uid' + ORDER BY datum, titel, ort_kurzbz, stunde"; + if (!$erg_res=$db->db_query($sql_query)) die($db->db_last_error()); @@ -74,7 +89,16 @@ { echo 'Eigene Reservierungen:
'; echo ''; - echo ''; + echo ' + + + + + + + + + '; for ($i=0; $i<$num_rows_res; $i++) { $zeile=$i % 2; @@ -85,7 +109,12 @@ $ort_kurzbz=$db->db_result($erg_res,$i,"ort_kurzbz"); $pers_uid=$db->db_result($erg_res,$i,"uid"); $beschreibung=$db->db_result($erg_res,$i,"beschreibung"); - echo ''; + $insertamum=$db->db_result($erg_res,$i,"insertamum"); + $insertvon=$db->db_result($erg_res,$i,"insertvon"); + $datum1 = $datum_obj->formatDatum($datum1, 'd.m.Y'); + if($insertamum!='') + $insertamum = $datum_obj->formatDatum($insertamum, 'd.m.Y H:i:s'); + echo ''; echo ''; echo ''; echo ''; @@ -93,8 +122,8 @@ echo ''; echo ''; $z=$i-1; - if (($pers_uid==$uid)|| $rechte->isBerechtigt('admin', 0, 'suid')) - echo ''; + if (($pers_uid==$uid)|| $rechte->isBerechtigt('lehre/reservierung', null, 'suid')) + echo ''; echo ''; } echo '
DatumTitelStundeOrtPersonBeschreibungAktion
DatumTitelStundeOrtPersonBeschreibungAktion
'.$datum1.''.$titel.''.$stunde.''.$pers_uid.''.$beschreibung.' DeleteDelete
'; @@ -103,43 +132,68 @@ echo '

'; flush(); - - //ALLE - $sql_query="SELECT * FROM campus.vw_reservierung WHERE datum>='$datum' "; - $sql_query.=" ORDER BY datum, titel, ort_kurzbz, stunde"; - if (!$erg_res=$db->db_query($sql_query)) - die($db->db_last_error()); - $num_rows_res=$db->db_num_rows($erg_res); - if ($num_rows_res>0) + + if(isset($_GET['alle'])) { - echo 'Alle Reservierungen:
'; - echo ''; - echo ''; - for ($i=0; $i<$num_rows_res; $i++) + + //ALLE + $sql_query="SELECT * FROM campus.vw_reservierung + WHERE datum>='$datum' + ORDER BY datum, titel, ort_kurzbz, stunde"; + if (!$erg_res=$db->db_query($sql_query)) + die($db->db_last_error()); + + $num_rows_res=$db->db_num_rows($erg_res); + if ($num_rows_res>0) { - $zeile=$i % 2; - $id=$db->db_result($erg_res,$i,"reservierung_id"); - $datum=$db->db_result($erg_res,$i,"datum"); - $titel=$db->db_result($erg_res,$i,"titel"); - $stunde=$db->db_result($erg_res,$i,"stunde"); - $ort_kurzbz=$db->db_result($erg_res,$i,"ort_kurzbz"); - $pers_uid=$db->db_result($erg_res,$i,"uid"); - $beschreibung=$db->db_result($erg_res,$i,"beschreibung"); - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - $z=$i-1; - if (($pers_uid==$uid) || $rechte->isBerechtigt('admin', 0, 'suid')) - echo ''; - echo ''; + echo 'Alle Reservierungen:
'; + echo '
DatumTitelStundeOrtPersonBeschreibungAktion
'.$datum.''.$titel.''.$stunde.''.$ort_kurzbz.''.$pers_uid.''.$beschreibung.' Delete
'; + echo ' + + + + + + + + + '; + + for ($i=0; $i<$num_rows_res; $i++) + { + $zeile=$i % 2; + $id=$db->db_result($erg_res,$i,"reservierung_id"); + $datum=$db->db_result($erg_res,$i,"datum"); + $titel=$db->db_result($erg_res,$i,"titel"); + $stunde=$db->db_result($erg_res,$i,"stunde"); + $ort_kurzbz=$db->db_result($erg_res,$i,"ort_kurzbz"); + $pers_uid=$db->db_result($erg_res,$i,"uid"); + $beschreibung=$db->db_result($erg_res,$i,"beschreibung"); + $insertamum=$db->db_result($erg_res,$i,"insertamum"); + $insertvon=$db->db_result($erg_res,$i,"insertvon"); + + $datum = $datum_obj->formatDatum($datum, 'd.m.Y'); + if($insertamum!='') + $insertamum = $datum_obj->formatDatum($insertamum, 'd.m.Y H:i:s'); + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + $z=$i-1; + if (($pers_uid==$uid) || $rechte->isBerechtigt('lehre/reservierung', null, 'suid')) + echo ''; + echo ''; + } + echo '
DatumTitelStundeOrtPersonBeschreibungAktion
'.$datum.''.$titel.''.$stunde.''.$ort_kurzbz.''.$pers_uid.''.$beschreibung.' Delete
'; + flush(); } - echo ''; - flush(); } + else + echo 'Alle Reservierungen anzeigen'; + ?> \ No newline at end of file diff --git a/cis/private/lvplan/stpl_week.php b/cis/private/lvplan/stpl_week.php index 09bdacded..6c2da6bcb 100644 --- a/cis/private/lvplan/stpl_week.php +++ b/cis/private/lvplan/stpl_week.php @@ -144,11 +144,11 @@ if (isset($_POST['titel'])) $berechtigung=new benutzerberechtigung(); $berechtigung->getBerechtigungen($uid); -if ($berechtigung->isBerechtigt('raumres')) +if ($berechtigung->isBerechtigt('lehre/reservierung:begrenzt', null, 'sui')) $raumres=true; else $raumres=false; - +unset($berechtigung); // Authentifizierung if (check_student($uid)) $user='student'; @@ -172,7 +172,7 @@ if (isset($_POST['reserve'])) else if (isset($_GET['reserve'])) $reserve=$_GET['reserve']; // Reservieren -if (isset($reserve) && ($user=='lektor' || $raumres)) +if (isset($reserve) && $raumres) { if(!$erg_std=$db->db_query("SELECT * FROM lehre.tbl_stunde ORDER BY stunde")) { @@ -204,21 +204,36 @@ if (isset($reserve) && ($user=='lektor' || $raumres)) echo "
Eingabe Beschreibung fehlt!
"; else { - $reservierung = new reservierung(); - $reservierung->datum = $datum_res; - $reservierung->uid = $uid; - $reservierung->ort_kurzbz = $ort_kurzbz; - $reservierung->stunde = $stunde; - $reservierung->beschreibung = $_REQUEST['beschreibung']; - $reservierung->titel = $_REQUEST['titel']; - $reservierung->studiengang_kz='0'; - if(!$reservierung->save(true)) - echo $reservierung->errormsg; - else - $count++; - } - - } + $reservierung = new reservierung(); + $reservierung->datum = $datum_res; + $reservierung->ort_kurzbz = $ort_kurzbz; + $reservierung->stunde = $stunde; + $reservierung->beschreibung = $_REQUEST['beschreibung']; + $reservierung->titel = $_REQUEST['titel']; + $reservierung->insertamum=date('Y-m-d H:i:s'); + $reservierung->insertvon=$uid; + + if(isset($_REQUEST['studiengang_kz'])) + { + $reservierung->studiengang_kz = $_REQUEST['studiengang_kz']; + $reservierung->semester = $_REQUEST['semester']; + $reservierung->verband = $_REQUEST['verband']; + $reservierung->gruppe = $_REQUEST['gruppe']; + $reservierung->gruppe_kurzbz = $_REQUEST['gruppe_kurzbz']; + $reservierung->uid = $_REQUEST['user_uid']; + } + else + { + $reservierung->studiengang_kz='0'; + $reservierung->uid = $uid; + } + + if(!$reservierung->save(true)) + echo $reservierung->errormsg; + else + $count++; + } + } else { echo "
$ort_kurzbz bereits reserviert von ".$db->db_result($suchen_std,0,'"uid"')." $datum_res - Stunde $stunde
"; diff --git a/include/benutzerberechtigung.class.php b/include/benutzerberechtigung.class.php index 93fce3d2f..fac03bd5c 100644 --- a/include/benutzerberechtigung.class.php +++ b/include/benutzerberechtigung.class.php @@ -318,7 +318,17 @@ class benutzerberechtigung extends basis_db public function getBerechtigungen($uid,$all=false) { // Berechtigungen holen - + /* + Direkte Berechtigungszuordnung + UNION + Berechtigung ueber Rolle + UNION + Berechtigung ueber Funktion + UNION + Berechtigung ueber Funktion Mitarbeiter + UNION + Berechtigung ueber Funktion Student + */ $qry = "SELECT benutzerberechtigung_id, tbl_benutzerrolle.uid, tbl_benutzerrolle.funktion_kurzbz, tbl_benutzerrolle.rolle_kurzbz, tbl_benutzerrolle.berechtigung_kurzbz, tbl_benutzerrolle.art, tbl_benutzerrolle.art art1, @@ -354,15 +364,45 @@ class benutzerberechtigung extends basis_db FROM system.tbl_benutzerrolle JOIN public.tbl_benutzerfunktion USING(funktion_kurzbz) WHERE tbl_benutzerfunktion.uid='".addslashes($uid)."' - ORDER BY negativ DESC"; + + UNION + + SELECT + benutzerberechtigung_id, '', tbl_benutzerrolle.funktion_kurzbz, + tbl_benutzerrolle.rolle_kurzbz, tbl_benutzerrolle.berechtigung_kurzbz, tbl_benutzerrolle.art, tbl_benutzerrolle.art art1, + tbl_benutzerrolle.oe_kurzbz, tbl_benutzerrolle.studiensemester_kurzbz, tbl_benutzerrolle.start, + tbl_benutzerrolle.ende, tbl_benutzerrolle.negativ, tbl_benutzerrolle.updateamum, tbl_benutzerrolle.updatevon, + tbl_benutzerrolle.insertamum, tbl_benutzerrolle.insertvon + FROM + system.tbl_benutzerrolle + WHERE + tbl_benutzerrolle.funktion_kurzbz='Mitarbeiter' AND + EXISTS (SELECT mitarbeiter_uid FROM public.tbl_mitarbeiter WHERE mitarbeiter_uid='".addslashes($uid)."') - if(!$this->db_query($qry)) + UNION + + SELECT + benutzerberechtigung_id, '', tbl_benutzerrolle.funktion_kurzbz, + tbl_benutzerrolle.rolle_kurzbz, tbl_benutzerrolle.berechtigung_kurzbz, tbl_benutzerrolle.art, tbl_benutzerrolle.art art1, + tbl_benutzerrolle.oe_kurzbz, tbl_benutzerrolle.studiensemester_kurzbz, tbl_benutzerrolle.start, + tbl_benutzerrolle.ende, tbl_benutzerrolle.negativ, tbl_benutzerrolle.updateamum, tbl_benutzerrolle.updatevon, + tbl_benutzerrolle.insertamum, tbl_benutzerrolle.insertvon + FROM + system.tbl_benutzerrolle + WHERE + tbl_benutzerrolle.funktion_kurzbz='Student' AND + EXISTS (SELECT student_uid FROM public.tbl_student WHERE student_uid='".addslashes($uid)."') + + + ORDER BY negativ DESC"; + + if(!$result = $this->db_query($qry)) { $this->errormsg='Fehler beim Laden der Berechtigungen'; return false; } - while($row=$this->db_fetch_object()) + while($row=$this->db_fetch_object($result)) { //wenn die Berechtigung an einer Organisationseinheit haengt, dann werden //auch die Berechtigungen fuer die darunterliegenden Organisationseinheiten angelegt @@ -405,9 +445,9 @@ class benutzerberechtigung extends basis_db $this->berechtigungen[]=$b; } } - + unset($result); // Attribute des Mitarbeiters holen - $sql_query="SELECT * FROM public.tbl_mitarbeiter WHERE mitarbeiter_uid='".addslashes($uid)."'"; + $sql_query="SELECT fixangestellt, lektor FROM public.tbl_mitarbeiter WHERE mitarbeiter_uid='".addslashes($uid)."'"; if(!$this->db_query($sql_query)) { $this->errormsg='Fehler beim Laden der Berechtigungen'; diff --git a/include/reservierung.class.php b/include/reservierung.class.php index 610890f72..c8c42afa8 100644 --- a/include/reservierung.class.php +++ b/include/reservierung.class.php @@ -40,6 +40,8 @@ class reservierung extends basis_db public $verband; // char(1) public $gruppe; // char(1) public $gruppe_kurzbz; // varchar(10) + public $insertamum; + public $insertvon; /** * Konstruktor - Uebergibt die Connection und laedt optional eine Reservierung @@ -132,7 +134,7 @@ class reservierung extends basis_db if($this->new) { $qry = 'INSERT INTO campus.tbl_reservierung (ort_kurzbz, studiengang_kz, uid, stunde, datum, titel, - beschreibung, semester, verband, gruppe, gruppe_kurzbz) + beschreibung, semester, verband, gruppe, gruppe_kurzbz, insertamum, insertvon) VALUES('.$this->addslashes($this->ort_kurzbz).','. $this->addslashes($this->studiengang_kz).','. $this->addslashes($this->uid).','. @@ -143,7 +145,9 @@ class reservierung extends basis_db $this->addslashes($this->semester).','. $this->addslashes($this->verband).','. $this->addslashes($this->gruppe).','. - $this->addslashes($this->gruppe_kurzbz).');'; + $this->addslashes($this->gruppe_kurzbz).','. + $this->addslashes($this->insertamum).','. + $this->addslashes($this->insertvon).');'; } else { diff --git a/include/studiengang.class.php b/include/studiengang.class.php index 9772621e3..fb0f58c9a 100644 --- a/include/studiengang.class.php +++ b/include/studiengang.class.php @@ -227,7 +227,7 @@ class studiengang extends basis_db $this->errormsg = 'Datensatz konnte nicht geladen werden'; return false; } - + while($row = $this->db_fetch_object($result)) { $stg_obj = new studiengang(); diff --git a/include/wochenplan.class.php b/include/wochenplan.class.php index c45db7a98..0395f90e5 100644 --- a/include/wochenplan.class.php +++ b/include/wochenplan.class.php @@ -32,6 +32,8 @@ require_once(dirname(__FILE__).'/basis_db.class.php'); require_once(dirname(__FILE__).'/lehrstunde.class.php'); require_once(dirname(__FILE__).'/ferien.class.php'); require_once(dirname(__FILE__).'/benutzerberechtigung.class.php'); +require_once(dirname(__FILE__).'/studiengang.class.php'); +require_once(dirname(__FILE__).'/mitarbeiter.class.php'); require_once(dirname(__FILE__).'/datum.class.php'); class wochenplan extends basis_db @@ -686,7 +688,7 @@ class wochenplan extends basis_db $datum_res_lektor_start_m = date('Y-m-d', $datum_res_lektor_start); $datum_res_lektor_ende_m = date('Y-m-d', $datum_res_lektor_ende); $datum_m = date('Y-m-d',$datum); - if (($raumres || $this->user=='lektor') && $this->type=='ort' && ($datum_m>=$datum_res_lektor_start_m && $datum_m<=$datum_res_lektor_ende_m)) + if ($raumres && $this->type=='ort' && ($datum_m>=$datum_res_lektor_start_m && $datum_m<=$datum_res_lektor_ende_m)) echo ''; //&& $datum>=$datum_now echo ''.$this->crlf; } @@ -695,16 +697,135 @@ class wochenplan extends basis_db $datum=jump_day($datum, 1); } echo ' '.$this->crlf; - if ($this->user=='lektor' && $this->type=='ort' && ($datum>=$datum_now && $datum>=$datum_res_lektor_start && $datum_mon<=$datum_res_lektor_ende)) + if ($raumres && $this->type=='ort' && ($datum>=$datum_now && $datum>=$datum_res_lektor_start && $datum_mon<=$datum_res_lektor_ende)) { - echo '
Titel: '.$this->crlf; - echo ' Beschreibung: '.$this->crlf; - echo ' '.$this->crlf; + echo ''; + echo ' '.$this->crlf; + echo ' '.$this->crlf; + + $rechte = new benutzerberechtigung(); + $rechte->getBerechtigungen($user_uid); + + //Pruefen ob die erweiterte Reservierungsrechte vorhanden sind + if($rechte->isBerechtigt('lehre/reservierung', null, 'sui')) + { + //Lektor + echo ' + '.$this->crlf; + echo ''.$this->crlf; + + //Studiengaenge Laden fuer die eine erweiterte Reservierungsberechtigung vorhanden ist + $stg = new studiengang(); + $stg->loadArray($rechte->getStgKz('lehre/reservierung'),'typ, kurzbz',true); + + //Studiengang + echo ''; + + //Semester + echo ' + + '.$this->crlf; + + //Gruppe + echo ' + '.$this->crlf; + + //Spezialgruppe + echo ''.$this->crlf; + + } + else + { echo ' '.$this->crlf; - echo ' '.$this->crlf; - echo ' '.$this->crlf; - echo ' '.$this->crlf; - echo ''; + } + + echo ''; + + echo '
Titel:Beschreibung: Lektor
Studiengang Semester + + + '.$this->crlf; + + //Verband + echo 'Verband + + Gruppe + + Spezialgruppe'; + echo ' '.$this->crlf; + echo ' '.$this->crlf; + echo ' '.$this->crlf; + echo ' '.$this->crlf; + echo '
'; + echo ' Reservierungen löschen '; } } diff --git a/rdf/funktion.rdf.php b/rdf/funktion.rdf.php index b563889b7..591bcfd51 100644 --- a/rdf/funktion.rdf.php +++ b/rdf/funktion.rdf.php @@ -43,7 +43,7 @@ echo ' '; -$qry = 'SELECT * FROM public.tbl_funktion ORDER BY beschreibung'; +$qry = 'SELECT * FROM public.tbl_funktion WHERE aktiv ORDER BY beschreibung'; $db = new basis_db(); if($db->db_query($qry)) diff --git a/system/FH-Complete.txp b/system/FH-Complete.txp index 6c965a71c..2ee9a209c 100644 --- a/system/FH-Complete.txp +++ b/system/FH-Complete.txp @@ -19549,7 +19549,6 @@ {8E243342-98D3-4EAF-A5AE-FCCA6C21FA92} {C467E70C-FDB5-4077-A1BB-E9EDAD431133} - {DC74EFF2-A9DA-41DE-BE50-F671A7C13AF6} {5BFF7FBF-9925-4030-9FA3-24C164B0E4A9} {F932700D-7ED7-4302-82CD-454174D51965} {D0AFF09F-C978-4863-B564-5BEAC0BD76BB} @@ -20329,8 +20328,8 @@ 0 0 -28 - 3637 - 196 + 3332 + 190 0 827 200 @@ -20403,8 +20402,8 @@ 0 0 -28 - 2964 - 157 + 2659 + 151 0 904 551 @@ -20915,7 +20914,6 @@ {4C600B20-1BBE-473A-96C8-99BF0FFA188E} {933927C5-9BCC-40A3-A80A-FCF852D73769} {3421DA78-A78B-4D5E-81BF-1F12D75BC5A7} - {82685A93-6953-4B04-843D-2FF2824B33B5} {99704522-73F2-46DE-966E-EFF206DD1A41} {B1C17E11-0CBD-471C-9B9A-FCB45C7D8200} @@ -21117,44 +21115,6 @@ 1 1 - - {91BA0243-304A-4001-80BF-C75C622D009C} - tbl_reservierung - 0 - {4F6AF445-FC9D-442F-B186-00EFEA54EFF6} - 0 - {A99B42E5-E7D3-4396-98DB-D4A5C5BE71BD} - 1 - 0 - 15780518 - 238 - 0 - Arial - 0 - 0 - -28 - 2315 - 163 - 0 - 858 - 551 - 0 - 1 - 1 - 1 - 1 - - {DC74EFF2-A9DA-41DE-BE50-F671A7C13AF6} - {82685A93-6953-4B04-843D-2FF2824B33B5} - - 1 - 1 - 5 - 1 - 0 - 1 - 1 - {02818E50-653A-4992-BBE2-4140B5EA18A4} tbl_organisationseinheit @@ -21431,57 +21391,6 @@ - - {DC74EFF2-A9DA-41DE-BE50-F671A7C13AF6} - fk_studiengang_reservierung - 0 - {968C3305-6B62-44CA-8843-16B64A78BD68} - 0 - {5DA5E226-881B-4D94-8690-081CF88C8633} - 1 - 0 - 16777215 - 238 - 0 - Arial - 0 - 0 - -28 - - {4C98A428-14DD-4587-B44B-5A31CAA42B19} - - - {91BA0243-304A-4001-80BF-C75C622D009C} - - 1161 - 2530 - - - 1701 - 2293 - - - 1701 - 2324 - - - 1376 - 2324 - - - 1052 - 2324 - - - 1052 - 2499 - - - 1021 - 2499 - - - {5BFF7FBF-9925-4030-9FA3-24C164B0E4A9} fk_studiengang_reihungstest @@ -22274,7 +22183,7 @@ {4C98A428-14DD-4587-B44B-5A31CAA42B19} 1414 - 2368 + 2283 2424 @@ -22293,11 +22202,11 @@ 2324 - 2042 + 1872 2324 - 2042 + 1872 2293 @@ -22580,7 +22489,7 @@ {C2303976-8004-4530-A9DC-543D000F94C9} 6559 - 2343 + 2339 3226 @@ -22600,11 +22509,11 @@ 7609 - 2402 + 2581 7640 - 2402 + 2581 @@ -22834,7 +22743,7 @@ {CA4F7EAC-55C4-480E-B7C9-180DB66AC5B0} - 8730 + 8741 2237 @@ -22855,11 +22764,11 @@ 8843 - 2312 + 2289 8874 - 2312 + 2289 @@ -22885,16 +22794,16 @@ {0C663600-4D6D-4A2E-800A-153F59399066} - 8615 + 8626 1691 8874 - 2029 + 2052 8843 - 2029 + 2052 8843 @@ -22987,32 +22896,32 @@ {C1125389-C466-4DFA-88C1-872A5EAA6C84} - 7478 - 263 + 4244 + 2586 7640 - 2581 + 2402 7609 - 2581 + 2402 - 4350 - 2581 + 4344 + 2276 - 4350 - 3331 + 4344 + 3026 - 1092 - 3331 + 1086 + 3026 - 1061 - 3331 + 1055 + 3026 @@ -23501,32 +23410,32 @@ {C1125389-C466-4DFA-88C1-872A5EAA6C84} - 524 - 3503 + 518 + 3198 - 610 - 3637 + 604 + 3332 - 610 - 3606 + 604 + 3301 - 610 - 3576 + 604 + 3271 - 609 - 3576 + 603 + 3271 - 609 - 3546 + 603 + 3241 - 609 - 3515 + 603 + 3210 @@ -23909,8 +23818,8 @@ {C1125389-C466-4DFA-88C1-872A5EAA6C84} - 1090 - 2847 + 1009 + 2542 1291 @@ -23921,20 +23830,20 @@ 2693 - 1260 - 2920 + 1254 + 2615 - 1092 - 2920 + 1086 + 2615 - 1092 - 3148 + 1086 + 2843 - 1061 - 3148 + 1055 + 2843 @@ -24346,57 +24255,6 @@ - - {82685A93-6953-4B04-843D-2FF2824B33B5} - fk_benutzer_reservierung - 0 - {0FE17FC5-E5C9-4BFB-9D0F-E5F84E3CAAF1} - 0 - {A80BE599-3CAF-4616-AF5B-29650AB78786} - 1 - 0 - 16777215 - 238 - 0 - Arial - 0 - 0 - -28 - - {CA4F7EAC-55C4-480E-B7C9-180DB66AC5B0} - - - {91BA0243-304A-4001-80BF-C75C622D009C} - - 5948 - 2337 - - - 8874 - 2218 - - - 8843 - 2218 - - - 4947 - 2218 - - - 4947 - 2682 - - - 1052 - 2682 - - - 1021 - 2682 - - - {99704522-73F2-46DE-966E-EFF206DD1A41} fk_benutzer_benutzerfunktion @@ -24424,11 +24282,11 @@ 8874 - 2123 + 2170 8843 - 2123 + 2170 6384 @@ -29054,7 +28912,7 @@ 54 0 858 - 551 + 629 0 1 1 @@ -29783,7 +29641,7 @@ {8331BBC6-0552-4561-BD23-4079196ABB79} 768 - 3269 + 3281 1012 @@ -29803,11 +29661,11 @@ 943 - 3270 + 3310 912 - 3270 + 3310 @@ -34686,7 +34544,7 @@ Technikum Wien 2.0 2009-04-17T10:15:21.000+01:00 - 2010-01-15T16:09:43.265+01:00 + 2010-01-27T16:25:24.031+01:00 FH-Complete 2.0 @@ -47443,6 +47301,88 @@ Studiengang>0 und Semester>0 -> News fuer bestimmtes Semester im Studie 0 + + {062FE967-1B4C-49AE-8B1F-D622926B172E} + insertamum + 0 + {F1B322C0-2F68-4C57-8DD8-B8A2367EF231} + 0 + 0 + 0 + 0 + 1 + + + + + + + 0 + + 0 + 0 + insertamum + 0 + + + + + + + + + + {342E3F36-138D-40F7-B1B2-D9489C848835} + + + + + + + + 0 + + + {77BD873A-E512-457F-8AE4-FF08703E1765} + insertvon + 0 + {A46EB17F-EBA1-481B-AEF6-60E6E42254B0} + 0 + 0 + 0 + 0 + 1 + + + + + 32 + + 0 + + 0 + 0 + insertvon + 0 + + + + + + + + + + {ECB8F02F-B683-4252-8508-ED9D064C9AF3} + + + + + + + + 0 + @@ -159767,7 +159707,7 @@ SELECT tbl_benutzer.uid, tbl_benutzergruppe.gruppe_kurzbz, tbl_gruppe.studiengan +SELECT tbl_reservierung.reservierung_id, tbl_reservierung.ort_kurzbz, tbl_reservierung.studiengang_kz, tbl_reservierung.uid, tbl_reservierung.stunde, tbl_reservierung.datum, tbl_reservierung.titel, tbl_reservierung.beschreibung, tbl_reservierung.semester, tbl_reservierung.verband, tbl_reservierung.gruppe, tbl_reservierung.gruppe_kurzbz, tbl_studiengang.kurzbz AS stg_kurzbz, tbl_reservierung.insertamum, tbl_reservierung.insertvon FROM (campus.tbl_reservierung JOIN tbl_studiengang USING (studiengang_kz))]]> vw_reservierung 0 diff --git a/system/checksystem.php b/system/checksystem.php index 6e0733f20..62fb5ec8f 100644 --- a/system/checksystem.php +++ b/system/checksystem.php @@ -325,6 +325,27 @@ if(@$db->db_query("SELECT organisationsform FROM public.tbl_studiengang LIMIT 1" echo 'public.tbl_studiengang: Spalte organisationsform entfernt!
'; } +if(@$db->db_query("SELECT insertamum FROM campus.tbl_reservierung LIMIT 1;")) +{ + $qry = "ALTER TABLE campus.tbl_reservierung ADD COLUMN insertamum timestamp; + ALTER TABLE campus.tbl_reservierung ADD COLUMN insertvon varchar(32); + DROP VIEW campus.vw_reservierung; + + CREATE VIEW campus.vw_reservierung AS + SELECT tbl_reservierung.reservierung_id, tbl_reservierung.ort_kurzbz, tbl_reservierung.studiengang_kz, + tbl_reservierung.uid, tbl_reservierung.stunde, tbl_reservierung.datum, tbl_reservierung.titel, + tbl_reservierung.beschreibung, tbl_reservierung.semester, tbl_reservierung.verband, tbl_reservierung.gruppe, + tbl_reservierung.gruppe_kurzbz, tbl_studiengang.kurzbz AS stg_kurzbz, tbl_reservierung.insertamum, tbl_reservierung.insertvon + FROM campus.tbl_reservierung JOIN public.tbl_studiengang USING (studiengang_kz); + + GRANT SELECT ON campus.vw_reservierung TO GROUP web; + GRANT SELECT ON campus.vw_reservierung TO GROUP admin;"; + + if(!$db->db_query($qry)) + echo 'campus.tbl_reservierung: '.$db->db_last_error().'
'; + else + echo 'campus.tbl_reservierung: Spalte insertamum und insertvon hinzugefuegt!
'; +} echo '
'; @@ -364,7 +385,7 @@ $tabellen=array( "campus.tbl_notenschluesseluebung" => array("uebung_id","note","punkte"), "campus.tbl_paabgabetyp" => array("paabgabetyp_kurzbz","bezeichnung"), "campus.tbl_paabgabe" => array("paabgabe_id","projektarbeit_id","paabgabetyp_kurzbz","fixtermin","datum","kurzbz","abgabedatum", "insertvon","insertamum","updatevon","updateamum"), - "campus.tbl_reservierung" => array("reservierung_id","ort_kurzbz","studiengang_kz","uid","stunde","datum","titel","beschreibung","semester","verband","gruppe","gruppe_kurzbz","veranstaltung_id"), + "campus.tbl_reservierung" => array("reservierung_id","ort_kurzbz","studiengang_kz","uid","stunde","datum","titel","beschreibung","semester","verband","gruppe","gruppe_kurzbz","veranstaltung_id","insertamum","insertvon"), "campus.tbl_resturlaub" => array("mitarbeiter_uid","resturlaubstage","mehrarbeitsstunden","updateamum","updatevon","insertamum","insertvon","urlaubstageprojahr"), "campus.tbl_studentbeispiel" => array("student_uid","beispiel_id","vorbereitet","probleme","updateamum","updatevon","insertamum","insertvon"), "campus.tbl_studentuebung" => array("student_uid","mitarbeiter_uid","abgabe_id","uebung_id","note","mitarbeitspunkte","punkte","anmerkung","benotungsdatum","updateamum","updatevon","insertamum","insertvon"), diff --git a/vilesci/personen/funktion.php b/vilesci/personen/funktion.php index 91cab3156..35926963b 100644 --- a/vilesci/personen/funktion.php +++ b/vilesci/personen/funktion.php @@ -28,7 +28,7 @@ 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.'); + die('Es konnte keine Verbindung zum Server aufgebaut werden.'); $sql_query="SELECT funktion_kurzbz, beschreibung FROM public.tbl_funktion ORDER BY funktion_kurzbz"; $result_funktion=$db->db_query($sql_query); @@ -59,6 +59,7 @@ if ($result_funktion!=0) echo ''; for ($i=0;$i<$num_fields; $i++) echo "".$db->db_field_name($result_funktion,$i).""; + echo ''; echo ''; for ($j=0; $j<$num_rows;$j++) { @@ -68,6 +69,8 @@ if ($result_funktion!=0) echo "Details"; for ($i=0; $i<$num_fields; $i++) echo "$row[$i]"; + + echo "Berechtigungen"; echo "\n"; } } diff --git a/vilesci/stammdaten/benutzerberechtigung_details.php b/vilesci/stammdaten/benutzerberechtigung_details.php index ef5dbf346..2f0e2c9c5 100644 --- a/vilesci/stammdaten/benutzerberechtigung_details.php +++ b/vilesci/stammdaten/benutzerberechtigung_details.php @@ -31,6 +31,7 @@ require_once('../../include/studiensemester.class.php'); require_once('../../include/person.class.php'); require_once('../../include/benutzer.class.php'); + require_once('../../include/funktion.class.php'); $user = get_uid(); @@ -64,6 +65,9 @@ if(isset($_POST['del'])) { + if(!$rechte->isBerechtigt('basis/berechtigung', null, 'suid')) + die('Sie haben keine Berechtigung fuer diese Aktion'); + $benutzerberechtigung_id = $_POST['benutzerberechtigung_id']; $ber = new benutzerberechtigung(); @@ -86,6 +90,7 @@ $berechtigung_kurzbz = $_POST['berechtigung_kurzbz']; $rolle_kurzbz = $_POST['rolle_kurzbz']; $uid = $_POST['uid']; + $funktion_kurzbz = $_POST['funktion_kurzbz']; $studiensemester_kurzbz = $_POST['studiensemester_kurzbz']; $start = $_POST['start']; $ende = $_POST['ende']; @@ -113,6 +118,7 @@ $ber->berechtigung_kurzbz = $berechtigung_kurzbz; $ber->rolle_kurzbz = $rolle_kurzbz; $ber->uid = $uid; + $ber->funktion_kurzbz = $funktion_kurzbz; $ber->studiensemester_kurzbz = $studiensemester_kurzbz; $ber->start = $start; $ber->ende = $ende; @@ -163,101 +169,116 @@ $oe = new organisationseinheit(); $oe->getAll(); - if (isset($_REQUEST['uid'])) + if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz'])) { - $uid = $_REQUEST['uid']; - - $ben = new benutzer(); - if (!$ben->load($uid)) - $htmlstr .= "
Benutzer ".$uid." existiert nicht
"; - else + $uid=''; + $funktion_kurzbz=''; + $rights = new benutzerberechtigung(); + if(isset($_REQUEST['uid']) && $_REQUEST['uid']!='') { - $rights = new benutzerberechtigung(); + $uid = $_REQUEST['uid']; + + $ben = new benutzer(); + if (!$ben->load($uid)) + die('Benutzer existiert nicht'); + $rights->loadBenutzerRollen($uid); - - $htmlstr .= "
Berechtigungen ".$uid."
\n"; - $htmlstr .= "\n"; - $htmlstr .= "\n"; - $htmlstr .= "\n"; - foreach($rights->berechtigungen as $b) - { - $htmlstr .= "\n"; - $htmlstr .= "\n"; - $htmlstr .= "\n"; - $htmlstr .= " \n"; - - //Rolle - $htmlstr .= " \n"; - - //Berechtigung - $htmlstr .= " \n"; - - //Art - $htmlstr .= " \n"; - - //Organisationseinheit - $htmlstr .= " \n"; - - //Studiensemester - $htmlstr .= " \n"; - - - $htmlstr .= " \n"; - $htmlstr .= " \n"; - $htmlstr .= " \n"; - - $htmlstr .= " "; - $htmlstr .= " "; - $htmlstr .= " \n"; - $htmlstr .= "\n"; + } + elseif(isset($_REQUEST['funktion_kurzbz']) && $_REQUEST['funktion_kurzbz']!='') + { + $funktion_kurzbz = $_REQUEST['funktion_kurzbz']; + + $funktion = new funktion(); + if(!$funktion->load($funktion_kurzbz)) + die('Funktion existiert nicht'); + + $rights->loadBenutzerRollen(null, $funktion_kurzbz); + } + $htmlstr .= "
Berechtigungen ".$uid.$funktion_kurzbz."
\n"; + $htmlstr .= "
RolleBerechtigungArtOrganisationseinheitSemesterNegStartEnde
negativ?'checked="checked"':'')." onchange='markier(\"".$b->benutzerberechtigung_id."\")'>
\n"; + $htmlstr .= "\n"; + $htmlstr .= "\n"; + foreach($rights->berechtigungen as $b) + { + $htmlstr .= "\n"; + $htmlstr .= "\n"; + $htmlstr .= "\n"; + $htmlstr .= "\n"; + $htmlstr .= " \n"; + + //Rolle + $htmlstr .= " \n"; + + //Berechtigung + $htmlstr .= " \n"; + + //Art + $htmlstr .= " \n"; + + //Organisationseinheit + $htmlstr .= " \n"; + + //Studiensemester + $htmlstr .= " \n"; + + + $htmlstr .= " \n"; + $htmlstr .= " \n"; + $htmlstr .= " \n"; + + $htmlstr .= " "; + $htmlstr .= " "; + $htmlstr .= " \n"; + $htmlstr .= "\n"; + } $htmlstr .= "\n"; $htmlstr .= "\n"; $htmlstr .= "\n"; $htmlstr .= "\n"; + $htmlstr .= "\n"; $htmlstr .= " \n"; //Rolle @@ -316,8 +337,6 @@ $htmlstr .= "\n"; $htmlstr .= "
RolleBerechtigungArtOrganisationseinheitSemesterNegStartEnde
negativ?'checked="checked"':'')." onchange='markier(\"".$b->benutzerberechtigung_id."\")'>
\n"; - - } } $htmlstr .= "
".$errorstr."
\n"; @@ -326,66 +345,65 @@ -Berechtigung - Details - - - - - + Berechtigung - Details + + + + +