diff --git a/include/bisorgform.class.php b/include/bisorgform.class.php index 0caae5177..9a6703b01 100644 --- a/include/bisorgform.class.php +++ b/include/bisorgform.class.php @@ -1,121 +1,121 @@ - - */ -require_once(dirname(__FILE__).'/basis_db.class.php'); - -class bisorgform extends basis_db -{ - public $new; - public $result = array(); - - //Tabellenspalten - public $bisorgform_kurzbz; - public $code; - - - /** - * Konstruktor - * @param code des zu ladenden Datensatzes - */ - public function __construct($code=null) - { - parent::__construct(); - - if(!is_null($code)) - $this->load($code); - } - - /** - * Laedt einen Datensatz - * @param code des zu ladenden Datensatzes - */ - public function load($code) - { - //code auf gueltigkeit pruefen - if(!is_numeric($code) || $code == '') - { - $this->errormsg = 'code muss eine gueltige Zahl sein'; - return false; - } - - //laden des Datensatzes - $qry = "SELECT - distinct code,bisorgform_kurzbz - FROM - bis.tbl_orgform - WHERE - code=".$this->db_add_param($code, FHC_INTEGER); - - if($this->db_query($qry)) - { - if($row = $this->db_fetch_object()) - { - $this->bisorgform_kurzbz = $row->bisorgform_kurzbz; - $this->code = $row->code; - - return true; - } - else - { - $this->errormsg = 'Fehler bei der Datenbankabfrage'; - return false; - } - } - else - { - $this->errormsg = 'Fehler bei der Datenbankabfrage'; - return false; - } - } - - - - /** - * Laedt alle BIS Orgformen - * @return List mit Orgformen wenn ok, false wenn Fehler - */ - public function getList() - { - //laden des Datensatzes - $qry = "SELECT - distinct code,bisorgform_kurzbz - FROM - bis.tbl_bisorgfom - ORDER BY code"; - - if($this->db_query($qry)) - { - $this->result = array(); - while($row = $this->db_fetch_object()) - { - $obj = new bisorgform(); - $obj->bisorgform_kurzbz = $row->bisorgform_kurzbz; - $obj->code = $row->code; - $this->result[] = $obj; - } - return $this->result; - } - else - { - $this->errormsg = 'Fehler bei der Datenbankabfrage'; - return false; - } - } -} -?> \ No newline at end of file + + */ +require_once(dirname(__FILE__).'/basis_db.class.php'); + +class bisorgform extends basis_db +{ + public $new; + public $result = array(); + + //Tabellenspalten + public $bisorgform_kurzbz; + public $code; + + + /** + * Konstruktor + * @param code des zu ladenden Datensatzes + */ + public function __construct($code=null) + { + parent::__construct(); + + if(!is_null($code)) + $this->load($code); + } + + /** + * Laedt einen Datensatz + * @param code des zu ladenden Datensatzes + */ + public function load($code) + { + //code auf gueltigkeit pruefen + if(!is_numeric($code) || $code == '') + { + $this->errormsg = 'code muss eine gueltige Zahl sein'; + return false; + } + + //laden des Datensatzes + $qry = "SELECT + distinct code,bisorgform_kurzbz + FROM + bis.tbl_orgform + WHERE + code=".$this->db_add_param($code, FHC_INTEGER); + + if($this->db_query($qry)) + { + if($row = $this->db_fetch_object()) + { + $this->bisorgform_kurzbz = $row->bisorgform_kurzbz; + $this->code = $row->code; + + return true; + } + else + { + $this->errormsg = 'Fehler bei der Datenbankabfrage'; + return false; + } + } + else + { + $this->errormsg = 'Fehler bei der Datenbankabfrage'; + return false; + } + } + + + + /** + * Laedt alle BIS Orgformen + * @return List mit Orgformen wenn ok, false wenn Fehler + */ + public function getList() + { + //laden des Datensatzes + $qry = "SELECT + distinct code,bisorgform_kurzbz + FROM + bis.tbl_bisorgform + ORDER BY code"; + + if($this->db_query($qry)) + { + $this->result = array(); + while($row = $this->db_fetch_object()) + { + $obj = new bisorgform(); + $obj->bisorgform_kurzbz = $row->bisorgform_kurzbz; + $obj->code = $row->code; + $this->result[] = $obj; + } + return $this->result; + } + else + { + $this->errormsg = 'Fehler bei der Datenbankabfrage'; + return false; + } + } +} +?> diff --git a/system/checksystem.php b/system/checksystem.php index a6f2372c0..383db1d43 100644 --- a/system/checksystem.php +++ b/system/checksystem.php @@ -25,6 +25,7 @@ require_once('../config/system.config.inc.php'); require_once('../include/basis_db.class.php'); require_once('../version.php'); +require_once('../include/benutzerberechtigung.class.php'); // Datenbank Verbindung $db = new basis_db(); @@ -36,15 +37,26 @@ echo ' '; +$uid = get_uid(); +$rechte = new benutzerberechtigung(); +$rechte->getBerechtigungen($uid); + +if(!$rechte->isBerechtigt('admin')) +{ + exit('Sie haben keine Berechtigung'); +} + echo '

Systemcheck!

'; echo '

DB-Updates!

'; + + echo '
'; - $dbupdStr = 'dbupdate_'.$fhcomplete_version.'.php'; - echo $dbupdStr . ' wird aufgerufen...'; + $dbupdStr = 'dbupdate_'.$fhcomplete_version.'.php'; + echo $dbupdStr . ' wird aufgerufen...'; echo '
'; echo '
'; - require_once($dbupdStr); + require_once($dbupdStr); echo '
'; // ******** Berechtigungen Prüfen ************/ @@ -136,8 +148,8 @@ $berechtigungen = array( array('soap/benutzer','Berechtigung für Bentutzerabfrage Addon Kontoimport'), array('soap/buchungen','Berechtigung für Buchungsabfrage Addon Kontoimport'), array('student/bankdaten','Bankdaten des Studenten'), - array('student/anrechnung','Anrechnungen des Studenten'), - array('student/anwesenheit','Anwesenheiten im FAS'), + array('student/anrechnung','Anrechnungen des Studenten'), + array('student/anwesenheit','Anwesenheiten im FAS'), array('student/dokumente','Wenn SUID dann dürfen Dokumente auch wieder entfernt werden'), array('student/noten','Notenverwaltung'), array('student/stammdaten','Stammdaten der Studenten'), diff --git a/system/dbupdate_3.0.php b/system/dbupdate_3.0.php index fbbfae75d..27ab18457 100644 --- a/system/dbupdate_3.0.php +++ b/system/dbupdate_3.0.php @@ -20,8 +20,8 @@ * Beschreibung: * Dieses Skript prueft die Datenbank auf aktualitaet, dabei werden fehlende Attribute angelegt. */ - - + + // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen echo '

Pruefe Tabellen und Attribute!

'; @@ -3534,8 +3534,8 @@ if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berecht // Attribut Aktiv für tbl_vorlagestudiengang und alle bisherigen Vorlagen auf aktiv setzen if(!$result = @$db->db_query("SELECT aktiv FROM public.tbl_vorlagestudiengang")) { - $qry = "ALTER TABLE public.tbl_vorlagestudiengang ADD COLUMN aktiv boolean NOT NULL default true; - + $qry = "ALTER TABLE public.tbl_vorlagestudiengang ADD COLUMN aktiv boolean NOT NULL default true; + UPDATE public.tbl_vorlagestudiengang SET aktiv=true; "; @@ -3613,117 +3613,117 @@ if($result = @$db->db_query("SELECT * FROM information_schema.tables WHERE table $qry = " CREATE OR REPLACE VIEW system.vw_berechtigung_nichtrekursiv AS SELECT - uid, berechtigung_kurzbz, + uid, berechtigung_kurzbz, -- art zusammenfassung und nur die nehmen die gleich sind - CASE WHEN length(art)>length(art1) THEN art1 ELSE art END as art, + CASE WHEN length(art)>length(art1) THEN art1 ELSE art END as art, oe_kurzbz, kostenstelle_id FROM ( -- Normal - SELECT + 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, 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,tbl_benutzerrolle.kostenstelle_id,tbl_benutzerrolle.anmerkung - FROM - system.tbl_benutzerrolle JOIN system.tbl_berechtigung USING(berechtigung_kurzbz) + FROM + system.tbl_benutzerrolle JOIN system.tbl_berechtigung USING(berechtigung_kurzbz) -- Rollen UNION - SELECT + SELECT benutzerberechtigung_id, tbl_benutzerrolle.uid, tbl_benutzerrolle.funktion_kurzbz, tbl_benutzerrolle.rolle_kurzbz, tbl_berechtigung.berechtigung_kurzbz, tbl_benutzerrolle.art, tbl_rolleberechtigung.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,tbl_benutzerrolle.kostenstelle_id,tbl_benutzerrolle.anmerkung - FROM - system.tbl_benutzerrolle JOIN system.tbl_rolle USING(rolle_kurzbz) - JOIN system.tbl_rolleberechtigung USING(rolle_kurzbz) + FROM + system.tbl_benutzerrolle JOIN system.tbl_rolle USING(rolle_kurzbz) + JOIN system.tbl_rolleberechtigung USING(rolle_kurzbz) JOIN system.tbl_berechtigung ON(tbl_rolleberechtigung.berechtigung_kurzbz=tbl_berechtigung.berechtigung_kurzbz) -- Funktionen UNION - SELECT + SELECT benutzerberechtigung_id, tbl_benutzerfunktion.uid, tbl_benutzerrolle.funktion_kurzbz, tbl_benutzerrolle.rolle_kurzbz, tbl_benutzerrolle.berechtigung_kurzbz, tbl_benutzerrolle.art, tbl_benutzerrolle.art art1, tbl_benutzerfunktion.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,tbl_benutzerrolle.kostenstelle_id,tbl_benutzerrolle.anmerkung - FROM + FROM system.tbl_benutzerrolle JOIN public.tbl_benutzerfunktion USING(funktion_kurzbz) - WHERE + WHERE (tbl_benutzerfunktion.datum_von IS NULL OR tbl_benutzerfunktion.datum_von<=now()) AND (tbl_benutzerfunktion.datum_bis IS NULL OR tbl_benutzerfunktion.datum_bis>=now()) -- Funktion Mitarbeiter UNION - SELECT + SELECT benutzerberechtigung_id, vw_mitarbeiter.uid, 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,tbl_benutzerrolle.kostenstelle_id,tbl_benutzerrolle.anmerkung - FROM + FROM system.tbl_benutzerrolle, campus.vw_mitarbeiter - WHERE + WHERE tbl_benutzerrolle.funktion_kurzbz='Mitarbeiter' and vw_mitarbeiter.aktiv - + -- Funktion Student UNION - SELECT + SELECT benutzerberechtigung_id, vw_student.uid, 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,tbl_benutzerrolle.kostenstelle_id,tbl_benutzerrolle.anmerkung - FROM + FROM system.tbl_benutzerrolle, campus.vw_student - WHERE + WHERE tbl_benutzerrolle.funktion_kurzbz='Student' and vw_student.aktiv - ) as a - WHERE + ) as a + WHERE -- Datumsgrenzen beruecksichtigen - (a.start<=now() OR a.start is null) + (a.start<=now() OR a.start is null) AND (a.ende>=now() OR a.ende is null) -- Neagtiv Rechte entfernen AND not negativ - AND NOT EXISTS(SELECT + AND NOT EXISTS(SELECT 1 - FROM + FROM system.tbl_benutzerrolle JOIN system.tbl_berechtigung USING(berechtigung_kurzbz) WHERE uid=a.uid AND berechtigung_kurzbz=a.berechtigung_kurzbz AND negativ); - + CREATE OR REPLACE VIEW system.vw_berechtigung AS - WITH RECURSIVE oes(oe_kurzbz, pfad) as + WITH RECURSIVE oes(oe_kurzbz, pfad) as ( - SELECT - oe_kurzbz, '/' || oe_kurzbz::text as pfad FROM public.tbl_organisationseinheit - WHERE - oe_parent_kurzbz is null AND aktiv = true + SELECT + oe_kurzbz, '/' || oe_kurzbz::text as pfad FROM public.tbl_organisationseinheit + WHERE + oe_parent_kurzbz is null AND aktiv = true UNION ALL - SELECT - o.oe_kurzbz, COALESCE(oes.pfad,'') || '/' || COALESCE(o.oe_kurzbz,'') as pfad - FROM - public.tbl_organisationseinheit o, oes - WHERE + SELECT + o.oe_kurzbz, COALESCE(oes.pfad,'') || '/' || COALESCE(o.oe_kurzbz,'') as pfad + FROM + public.tbl_organisationseinheit o, oes + WHERE o.oe_parent_kurzbz=oes.oe_kurzbz and aktiv = true ) - SELECT + SELECT uid, berechtigung_kurzbz, art, oes.oe_kurzbz, kostenstelle_id - FROM - system.vw_berechtigung_nichtrekursiv, oes - WHERE + FROM + system.vw_berechtigung_nichtrekursiv, oes + WHERE (oes.pfad || '/' like '%/' || vw_berechtigung_nichtrekursiv.oe_kurzbz || '/%' OR (vw_berechtigung_nichtrekursiv.oe_kurzbz is null AND kostenstelle_id is null)) UNION - SELECT + SELECT uid, berechtigung_kurzbz, art, null::varchar(32), kostenstelle_id - FROM - system.vw_berechtigung_nichtrekursiv + FROM + system.vw_berechtigung_nichtrekursiv WHERE kostenstelle_id is not null; @@ -3740,7 +3740,7 @@ if($result = @$db->db_query("SELECT * FROM information_schema.tables WHERE table } } -// Eigene Berechtigung ob Unoconv-Dokumente aus dem FAS als Nicht-PDF exportiert werden dürfen +// Eigene Berechtigung ob Unoconv-Dokumente aus dem FAS als Nicht-PDF exportiert werden dürfen if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berechtigung_kurzbz='system/change_outputformat' LIMIT 1")) { if($db->db_num_rows($result)==0) @@ -4098,5 +4098,5 @@ if (!$result=@$db->db_query($sql_query)) if($error==false) echo '
Gegenpruefung fehlerfrei'; - + ?> diff --git a/system/dbupdate_3.1.php b/system/dbupdate_3.1.php index d084c97d0..61234d5c8 100644 --- a/system/dbupdate_3.1.php +++ b/system/dbupdate_3.1.php @@ -20,8 +20,8 @@ * Beschreibung: * Dieses Skript prueft die Datenbank auf aktualitaet, dabei werden fehlende Attribute angelegt. */ - - + + // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen echo '

Pruefe Tabellen und Attribute!

'; @@ -3534,8 +3534,8 @@ if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berecht // Attribut Aktiv für tbl_vorlagestudiengang und alle bisherigen Vorlagen auf aktiv setzen if(!$result = @$db->db_query("SELECT aktiv FROM public.tbl_vorlagestudiengang")) { - $qry = "ALTER TABLE public.tbl_vorlagestudiengang ADD COLUMN aktiv boolean NOT NULL default true; - + $qry = "ALTER TABLE public.tbl_vorlagestudiengang ADD COLUMN aktiv boolean NOT NULL default true; + UPDATE public.tbl_vorlagestudiengang SET aktiv=true; "; @@ -3613,117 +3613,117 @@ if($result = @$db->db_query("SELECT * FROM information_schema.tables WHERE table $qry = " CREATE OR REPLACE VIEW system.vw_berechtigung_nichtrekursiv AS SELECT - uid, berechtigung_kurzbz, + uid, berechtigung_kurzbz, -- art zusammenfassung und nur die nehmen die gleich sind - CASE WHEN length(art)>length(art1) THEN art1 ELSE art END as art, + CASE WHEN length(art)>length(art1) THEN art1 ELSE art END as art, oe_kurzbz, kostenstelle_id FROM ( -- Normal - SELECT + 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, 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,tbl_benutzerrolle.kostenstelle_id,tbl_benutzerrolle.anmerkung - FROM - system.tbl_benutzerrolle JOIN system.tbl_berechtigung USING(berechtigung_kurzbz) + FROM + system.tbl_benutzerrolle JOIN system.tbl_berechtigung USING(berechtigung_kurzbz) -- Rollen UNION - SELECT + SELECT benutzerberechtigung_id, tbl_benutzerrolle.uid, tbl_benutzerrolle.funktion_kurzbz, tbl_benutzerrolle.rolle_kurzbz, tbl_berechtigung.berechtigung_kurzbz, tbl_benutzerrolle.art, tbl_rolleberechtigung.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,tbl_benutzerrolle.kostenstelle_id,tbl_benutzerrolle.anmerkung - FROM - system.tbl_benutzerrolle JOIN system.tbl_rolle USING(rolle_kurzbz) - JOIN system.tbl_rolleberechtigung USING(rolle_kurzbz) + FROM + system.tbl_benutzerrolle JOIN system.tbl_rolle USING(rolle_kurzbz) + JOIN system.tbl_rolleberechtigung USING(rolle_kurzbz) JOIN system.tbl_berechtigung ON(tbl_rolleberechtigung.berechtigung_kurzbz=tbl_berechtigung.berechtigung_kurzbz) -- Funktionen UNION - SELECT + SELECT benutzerberechtigung_id, tbl_benutzerfunktion.uid, tbl_benutzerrolle.funktion_kurzbz, tbl_benutzerrolle.rolle_kurzbz, tbl_benutzerrolle.berechtigung_kurzbz, tbl_benutzerrolle.art, tbl_benutzerrolle.art art1, tbl_benutzerfunktion.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,tbl_benutzerrolle.kostenstelle_id,tbl_benutzerrolle.anmerkung - FROM + FROM system.tbl_benutzerrolle JOIN public.tbl_benutzerfunktion USING(funktion_kurzbz) - WHERE + WHERE (tbl_benutzerfunktion.datum_von IS NULL OR tbl_benutzerfunktion.datum_von<=now()) AND (tbl_benutzerfunktion.datum_bis IS NULL OR tbl_benutzerfunktion.datum_bis>=now()) -- Funktion Mitarbeiter UNION - SELECT + SELECT benutzerberechtigung_id, vw_mitarbeiter.uid, 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,tbl_benutzerrolle.kostenstelle_id,tbl_benutzerrolle.anmerkung - FROM + FROM system.tbl_benutzerrolle, campus.vw_mitarbeiter - WHERE + WHERE tbl_benutzerrolle.funktion_kurzbz='Mitarbeiter' and vw_mitarbeiter.aktiv - + -- Funktion Student UNION - SELECT + SELECT benutzerberechtigung_id, vw_student.uid, 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,tbl_benutzerrolle.kostenstelle_id,tbl_benutzerrolle.anmerkung - FROM + FROM system.tbl_benutzerrolle, campus.vw_student - WHERE + WHERE tbl_benutzerrolle.funktion_kurzbz='Student' and vw_student.aktiv - ) as a - WHERE + ) as a + WHERE -- Datumsgrenzen beruecksichtigen - (a.start<=now() OR a.start is null) + (a.start<=now() OR a.start is null) AND (a.ende>=now() OR a.ende is null) -- Neagtiv Rechte entfernen AND not negativ - AND NOT EXISTS(SELECT + AND NOT EXISTS(SELECT 1 - FROM + FROM system.tbl_benutzerrolle JOIN system.tbl_berechtigung USING(berechtigung_kurzbz) WHERE uid=a.uid AND berechtigung_kurzbz=a.berechtigung_kurzbz AND negativ); - + CREATE OR REPLACE VIEW system.vw_berechtigung AS - WITH RECURSIVE oes(oe_kurzbz, pfad) as + WITH RECURSIVE oes(oe_kurzbz, pfad) as ( - SELECT - oe_kurzbz, '/' || oe_kurzbz::text as pfad FROM public.tbl_organisationseinheit - WHERE - oe_parent_kurzbz is null AND aktiv = true + SELECT + oe_kurzbz, '/' || oe_kurzbz::text as pfad FROM public.tbl_organisationseinheit + WHERE + oe_parent_kurzbz is null AND aktiv = true UNION ALL - SELECT - o.oe_kurzbz, COALESCE(oes.pfad,'') || '/' || COALESCE(o.oe_kurzbz,'') as pfad - FROM - public.tbl_organisationseinheit o, oes - WHERE + SELECT + o.oe_kurzbz, COALESCE(oes.pfad,'') || '/' || COALESCE(o.oe_kurzbz,'') as pfad + FROM + public.tbl_organisationseinheit o, oes + WHERE o.oe_parent_kurzbz=oes.oe_kurzbz and aktiv = true ) - SELECT + SELECT uid, berechtigung_kurzbz, art, oes.oe_kurzbz, kostenstelle_id - FROM - system.vw_berechtigung_nichtrekursiv, oes - WHERE + FROM + system.vw_berechtigung_nichtrekursiv, oes + WHERE (oes.pfad || '/' like '%/' || vw_berechtigung_nichtrekursiv.oe_kurzbz || '/%' OR (vw_berechtigung_nichtrekursiv.oe_kurzbz is null AND kostenstelle_id is null)) UNION - SELECT + SELECT uid, berechtigung_kurzbz, art, null::varchar(32), kostenstelle_id - FROM - system.vw_berechtigung_nichtrekursiv + FROM + system.vw_berechtigung_nichtrekursiv WHERE kostenstelle_id is not null; @@ -3740,7 +3740,7 @@ if($result = @$db->db_query("SELECT * FROM information_schema.tables WHERE table } } -// Eigene Berechtigung ob Unoconv-Dokumente aus dem FAS als Nicht-PDF exportiert werden dürfen +// Eigene Berechtigung ob Unoconv-Dokumente aus dem FAS als Nicht-PDF exportiert werden dürfen if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berechtigung_kurzbz='system/change_outputformat' LIMIT 1")) { if($db->db_num_rows($result)==0) @@ -4099,5 +4099,5 @@ if (!$result=@$db->db_query($sql_query)) if($error==false) echo '
Gegenpruefung fehlerfrei'; - + ?> diff --git a/system/dbupdate_3.2.php b/system/dbupdate_3.2.php index d46316491..46049b78e 100644 --- a/system/dbupdate_3.2.php +++ b/system/dbupdate_3.2.php @@ -21,6 +21,18 @@ * Dieses Skript prueft die Datenbank auf aktualitaet, dabei werden fehlende Attribute angelegt. */ +//Spalte studiensemester_kurzbz für Reihungstest +if(!$result = @$db->db_query("SELECT studiensemester_kurzbz FROM public.tbl_reihungstest LIMIT 1")) +{ + $qry = "ALTER TABLE public.tbl_reihungstest ADD COLUMN studiensemester_kurzbz varchar(16); + ALTER TABLE public.tbl_reihungstest ADD CONSTRAINT fk_reihungsteset_studiensemester FOREIGN KEY (studiensemester_kurzbz) REFERENCES public.tbl_studiensemester (studiensemester_kurzbz) ON DELETE RESTRICT ON UPDATE CASCADE;"; + + if(!$db->db_query($qry)) + echo 'public.tbl_reihungstest: '.$db->db_last_error().'
'; + else + echo 'public.tbl_reihungstest: Spalte studiensemester_kurzbz hinzugefuegt'; +} + // Neue Spalte beschreibung_mehrsprachig bei tbl_dokument if(!@$db->db_query("SELECT dokumentbeschreibung_mehrsprachig FROM public.tbl_dokument LIMIT 1")) { @@ -96,30 +108,77 @@ if(!@$db->db_query("SELECT bewerbung_abgeschicktamum FROM public.tbl_prestudents if (!$result = @$db->db_query("SELECT benotung FROM lehre.tbl_lehrveranstaltung LIMIT 1;")) { $qry = "ALTER TABLE lehre.tbl_lehrveranstaltung ADD COLUMN benotung boolean NOT NULL DEFAULT FALSE;"; - + if (!$db->db_query($qry)) echo 'lehre.tbl_lehrveranstaltung: ' . $db->db_last_error() . '
'; else - echo ' lehre.tbl_lehrveranstaltung: Spalte benotung hinzugefügt.
'; + echo ' lehre.tbl_lehrveranstaltung: Spalte benotung hinzugefügt.
'; } //Spalte lvinfo in lehre.tbl_lehrveranstaltung if (!$result = @$db->db_query("SELECT lvinfo FROM lehre.tbl_lehrveranstaltung LIMIT 1;")) { $qry = "ALTER TABLE lehre.tbl_lehrveranstaltung ADD COLUMN lvinfo boolean NOT NULL DEFAULT FALSE;"; - + if (!$db->db_query($qry)) echo 'lehre.tbl_lehrveranstaltung: ' . $db->db_last_error() . '
'; else - echo ' lehre.tbl_lehrveranstaltung: Spalte lvinfo hinzugefügt.
'; + echo ' lehre.tbl_lehrveranstaltung: Spalte lvinfo hinzugefügt.
'; } + + + +// tbl_bisorgform hinzufuegen +if(!$result = @$db->db_query("SELECT 1 FROM bis.tbl_bisorgform LIMIT 1;")) +{ + $qry = " + + CREATE TABLE bis.tbl_bisorgform + ( + bisorgform_kurzbz varchar(3) NOT NULL, + code smallint, + bezeichnung varchar(64) + ); + + COMMENT ON TABLE bis.tbl_bisorgform IS 'Offizielle OrgFormen fuer die BIS-Meldung'; + + ALTER TABLE bis.tbl_bisorgform ADD CONSTRAINT pk_bisorgform_kurzbz PRIMARY KEY (bisorgform_kurzbz); + + GRANT SELECT ON bis.tbl_bisorgform TO vilesci; + GRANT SELECT ON bis.tbl_bisorgform TO web; + "; + + if(!$db->db_query($qry)) + echo 'Dokumentenupload fuer Notizen: '.$db->db_last_error().'
'; + else + echo ' Tabelle bis.tbl_orgform hinzugefuegt!
'; +} + +//Spalte bisorgform_kurzbz für tbl_orgform +if(!$result = @$db->db_query("SELECT bisorgform_kurzbz FROM bis.tbl_orgform LIMIT 1")) +{ + $qry = "ALTER TABLE bis.tbl_orgform ADD COLUMN bisorgform_kurzbz varchar(3); + ALTER TABLE bis.tbl_orgform ADD CONSTRAINT fk_orgform_bisorgform FOREIGN KEY (bisorgform_kurzbz) REFERENCES bis.tbl_bisorgform (bisorgform_kurzbz) ON DELETE RESTRICT ON UPDATE CASCADE;"; + + if(!$db->db_query($qry)) + echo 'bis.tbl_orgform: '.$db->db_last_error().'
'; + else + echo 'bis.tbl_orgform: Spalte bisorgform_kurzbz hinzugefuegt'; +} + + + + + + // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen echo '

Pruefe Tabellen und Attribute!

'; echo '


'; $tabellen=array( + "bis.tbl_bisorgform" => array("bisorgform_kurzbz","code","bezeichnung"), "bis.tbl_archiv" => array("archiv_id","studiensemester_kurzbz","meldung","html","studiengang_kz","insertamum","insertvon","typ"), "bis.tbl_ausbildung" => array("ausbildungcode","ausbildungbez","ausbildungbeschreibung"), "bis.tbl_berufstaetigkeit" => array("berufstaetigkeit_code","berufstaetigkeit_bez","berufstaetigkeit_kurzbz"), @@ -137,7 +196,7 @@ $tabellen=array( "bis.tbl_lgartcode" => array("lgartcode","kurzbz","bezeichnung","beantragung","lgart_biscode"), "bis.tbl_mobilitaetsprogramm" => array("mobilitaetsprogramm_code","kurzbz","beschreibung","sichtbar","sichtbar_outgoing"), "bis.tbl_nation" => array("nation_code","entwicklungsstand","eu","ewr","kontinent","kurztext","langtext","engltext","sperre"), - "bis.tbl_orgform" => array("orgform_kurzbz","code","bezeichnung","rolle"), + "bis.tbl_orgform" => array("orgform_kurzbz","code","bezeichnung","rolle","bisorgform_kurzbz"), "bis.tbl_verwendung" => array("verwendung_code","verwendungbez"), "bis.tbl_zgv" => array("zgv_code","zgv_bez","zgv_kurzbz","bezeichnung"), "bis.tbl_zgvmaster" => array("zgvmas_code","zgvmas_bez","zgvmas_kurzbz","bezeichnung"), @@ -214,8 +273,8 @@ $tabellen=array( "lehre.tbl_abschlussbeurteilung" => array("abschlussbeurteilung_kurzbz","bezeichnung","bezeichnung_english"), "lehre.tbl_abschlusspruefung" => array("abschlusspruefung_id","student_uid","vorsitz","pruefer1","pruefer2","pruefer3","abschlussbeurteilung_kurzbz","akadgrad_id","pruefungstyp_kurzbz","datum","sponsion","anmerkung","updateamum","updatevon","insertamum","insertvon","ext_id","note"), "lehre.tbl_akadgrad" => array("akadgrad_id","akadgrad_kurzbz","studiengang_kz","titel","geschlecht"), - "lehre.tbl_anrechnung" => array("anrechnung_id","prestudent_id","lehrveranstaltung_id","begruendung_id","lehrveranstaltung_id_kompatibel","genehmigt_von","insertamum","insertvon","updateamum","updatevon","ext_id"), - "lehre.tbl_anrechnung_begruendung" => array("begruendung_id","bezeichnung"), + "lehre.tbl_anrechnung" => array("anrechnung_id","prestudent_id","lehrveranstaltung_id","begruendung_id","lehrveranstaltung_id_kompatibel","genehmigt_von","insertamum","insertvon","updateamum","updatevon","ext_id"), + "lehre.tbl_anrechnung_begruendung" => array("begruendung_id","bezeichnung"), "lehre.tbl_betreuerart" => array("betreuerart_kurzbz","beschreibung"), "lehre.tbl_ferien" => array("bezeichnung","studiengang_kz","vondatum","bisdatum"), "lehre.tbl_lehreinheit" => array("lehreinheit_id","lehrveranstaltung_id","studiensemester_kurzbz","lehrfach_id","lehrform_kurzbz","stundenblockung","wochenrythmus","start_kw","raumtyp","raumtypalternativ","sprache","lehre","anmerkung","unr","lvnr","updateamum","updatevon","insertamum","insertvon","ext_id","lehrfach_id_old","gewicht"), @@ -226,7 +285,7 @@ $tabellen=array( "lehre.tbl_lehrfunktion" => array("lehrfunktion_kurzbz","beschreibung","standardfaktor","sort"), "lehre.tbl_lehrmittel" => array("lehrmittel_kurzbz","beschreibung","ort_kurzbz"), "lehre.tbl_lehrtyp" => array("lehrtyp_kurzbz","bezeichnung"), - "lehre.tbl_lehrveranstaltung" => array("lehrveranstaltung_id","kurzbz","bezeichnung","lehrform_kurzbz","studiengang_kz","semester","sprache","ects","semesterstunden","anmerkung","lehre","lehreverzeichnis","aktiv","planfaktor","planlektoren","planpersonalkosten","plankostenprolektor","koordinator","sort","zeugnis","projektarbeit","updateamum","updatevon","insertamum","insertvon","ext_id","bezeichnung_english","orgform_kurzbz","incoming","lehrtyp_kurzbz","oe_kurzbz","raumtyp_kurzbz","anzahlsemester","semesterwochen","lvnr","farbe","semester_alternativ","old_lehrfach_id","sws","lvs","alvs","lvps","las"), + "lehre.tbl_lehrveranstaltung" => array("lehrveranstaltung_id","kurzbz","bezeichnung","lehrform_kurzbz","studiengang_kz","semester","sprache","ects","semesterstunden","anmerkung","lehre","lehreverzeichnis","aktiv","planfaktor","planlektoren","planpersonalkosten","plankostenprolektor","koordinator","sort","zeugnis","projektarbeit","updateamum","updatevon","insertamum","insertvon","ext_id","bezeichnung_english","orgform_kurzbz","incoming","lehrtyp_kurzbz","oe_kurzbz","raumtyp_kurzbz","anzahlsemester","semesterwochen","lvnr","farbe","semester_alternativ","old_lehrfach_id","sws","lvs","alvs","lvps","las","benotung","lvinfo"), "lehre.tbl_lehrveranstaltung_kompatibel" => array("lehrveranstaltung_id","lehrveranstaltung_id_kompatibel"), "lehre.tbl_lvangebot" => array("lvangebot_id","lehrveranstaltung_id","studiensemester_kurzbz","gruppe_kurzbz","incomingplaetze","gesamtplaetze","anmeldefenster_start","anmeldefenster_ende","insertamum","insertvon","updateamum","updatevon"), "lehre.tbl_lvregel" => array("lvregel_id","lvregeltyp_kurzbz","operator","parameter","lvregel_id_parent","lehrveranstaltung_id","studienplan_lehrveranstaltung_id","insertamum","insertvon","updateamum","updatevon"), @@ -296,7 +355,7 @@ $tabellen=array( "public.tbl_notiz" => array("notiz_id","titel","text","verfasser_uid","bearbeiter_uid","start","ende","erledigt","insertamum","insertvon","updateamum","updatevon","ext_id"), "public.tbl_notizzuordnung" => array("notizzuordnung_id","notiz_id","projekt_kurzbz","projektphase_id","projekttask_id","uid","person_id","prestudent_id","bestellung_id","lehreinheit_id","ext_id","anrechnung_id"), "public.tbl_notiz_dokument" => array("notiz_id","dms_id"), - "public.tbl_ort" => array("ort_kurzbz","bezeichnung","planbezeichnung","max_person","lehre","reservieren","aktiv","lageplan","dislozierung","kosten","ausstattung","updateamum","updatevon","insertamum","insertvon","ext_id","stockwerk","standort_id","telefonklappe","content_id","m2","gebteil","oe_kurzbz"), + "public.tbl_ort" => array("ort_kurzbz","bezeichnung","planbezeichnung","max_person","lehre","reservieren","aktiv","lageplan","dislozierung","kosten","ausstattung","updateamum","updatevon","insertamum","insertvon","ext_id","stockwerk","standort_id","telefonklappe","content_id","m2","gebteil","oe_kurzbz"), "public.tbl_ortraumtyp" => array("ort_kurzbz","hierarchie","raumtyp_kurzbz"), "public.tbl_organisationseinheit" => array("oe_kurzbz", "oe_parent_kurzbz", "bezeichnung","organisationseinheittyp_kurzbz", "aktiv","mailverteiler","freigabegrenze","kurzzeichen","lehre","standort","warn_semesterstunden_frei","warn_semesterstunden_fix","standort_id"), "public.tbl_organisationseinheittyp" => array("organisationseinheittyp_kurzbz", "bezeichnung", "beschreibung"), @@ -399,7 +458,7 @@ foreach ($tabellen AS $attribute) echo '

Gegenpruefung!

'; $error=false; -$sql_query="SELECT schemaname,tablename FROM pg_catalog.pg_tables WHERE schemaname != 'pg_catalog' AND schemaname != 'information_schema' AND schemaname != 'sync' AND schemaname != 'addon';"; +$sql_query="SELECT schemaname,tablename FROM pg_catalog.pg_tables WHERE schemaname != 'pg_catalog' AND schemaname != 'information_schema' AND schemaname != 'sync' AND schemaname != 'addon' AND schemaname != 'reports';"; if (!$result=@$db->db_query($sql_query)) echo '
'.$db->db_last_error().'
'; else