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