This commit is contained in:
Andreas Österreicher
2009-07-10 12:51:53 +00:00
parent 7e3caa520b
commit cb969e8b97
31 changed files with 580 additions and 184 deletions
+1 -1
View File
@@ -177,7 +177,7 @@ if($result = $db->db_query($qry))
Grant select on testtool.vw_auswertung_kategorie to group "admin";
Grant select on testtool.vw_auswertung_kategorie to group "web";
Grant select on vw_studiensemester to group "admin";
Grant select on public.vw_benutzerfunktion to group "admin";
--Grant select on public.vw_benutzerfunktion to group "admin";
Grant select on public.vw_prestudent to group "admin";
GRANT SELECT ON public.vw_prestudent to group web;
GRANT SELECT ON lehre.vw_stundenplandev_student_unr TO GROUP web;
+248
View File
@@ -0,0 +1,248 @@
<?php
/* Copyright (C) 2009 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <[email protected]>,
* Andreas Oesterreicher <[email protected]>,
* Rudolf Hangl <[email protected]> and
* Gerald Simane-Sequens <[email protected]>
*
*/
/**
* Dieses Script veraendert die Datenbank, damit die Dokumente (PDFs, Bilder, etc) die in
* der Datenbank gespeichert sind, nicht mehr HEX codiert, sondern base64 Codiert sind
*
* !!! Dieses Script muss von der CommandLine gestartet werden da es sonst zu einem Timeout kommt !!!
*/
require_once('../config/system.config.inc.php');
require_once('../include/basis_db.class.php');
$db = new basis_db();
//Hexcode in String umwandeln
function hexstr($hex)
{
$string="";
for ($i=0;$i<mb_strlen($hex)-1;$i+=2)
$string.=chr(hexdec(mb_substr($hex,$i,1).mb_substr($hex,$i+1,1)));
return $string;
}
function convert($string)
{
return base64_encode(hexstr($string));
}
$db->db_query('BEGIN');
echo 'tbl_akte...<br>';
flush();
//Akte
$qry = "SELECT akte_id, inhalt FROM public.tbl_akte";
$i=0;
if($result = $db->db_query($qry))
{
while($row = $db->db_fetch_object($result))
{
$i++;
$qry = "UPDATE public.tbl_akte SET inhalt='".convert($row->inhalt)."' WHERE akte_id='".$row->akte_id."'";
if($i==10)
{
echo'<br>';
$i=0;
}
echo $row->akte_id,', ';
flush();
$db->db_query($qry);
}
}
echo 'tbl_person...<br>';
flush();
//Person
$qry = "SELECT foto, person_id FROM public.tbl_person WHERE foto is not null";
if($result = $db->db_query($qry))
{
while($row = $db->db_fetch_object($result))
{
$qry = "UPDATE public.tbl_person SET foto='".convert($row->foto)."' WHERE person_id='".$row->person_id."'";
if(!$db->db_query($qry))
{
die('Error:'.$db->db_last_error().$qry);
$db->db_query('ROLLBACK');
}
}
}
echo 'tbl_frage_sprache.bild...<br>';
flush();
//Testtool - tbl_frage_sprache.bild
$qry = "SELECT bild, frage_id, sprache FROM testtool.tbl_frage_sprache WHERE bild is not null";
if($result = $db->db_query($qry))
{
while($row = $db->db_fetch_object($result))
{
$qry = "UPDATE testtool.tbl_frage_sprache SET bild='".convert($row->bild)."' WHERE frage_id='".$row->frage_id."' AND sprache='".$row->sprache."'";
if(!$db->db_query($qry))
{
die('Error:'.$db->db_last_error().$qry);
$db->db_query('ROLLBACK');
}
}
}
echo 'tbl_frage_sprache.audio...<br>';
flush();
//Testtool - tbl_frage_sprache.audio
$qry = "SELECT audio, frage_id, sprache FROM testtool.tbl_frage_sprache WHERE audio is not null";
if($result = $db->db_query($qry))
{
while($row = $db->db_fetch_object($result))
{
$qry = "UPDATE testtool.tbl_frage_sprache SET audio='".convert($row->audio)."' WHERE frage_id='".$row->frage_id."' AND sprache='".$row->sprache."'";
if(!$db->db_query($qry))
{
die('Error:'.$db->db_last_error().$qry);
$db->db_query('ROLLBACK');
}
}
}
echo 'tbl_vorschlag_sprache.bild...<br>';
flush();
//Testtool - tbl_vorschlag_sprache.bild
$qry = "SELECT bild, frage_id, sprache FROM testtool.tbl_vorschlag_sprache WHERE bild is not null";
if($result = $db->db_query($qry))
{
while($row = $db->db_fetch_object($result))
{
$qry = "UPDATE testtool.tbl_vorschlag_sprache SET bild='".convert($row->bild)."' WHERE frage_id='".$row->frage_id."' AND sprache='".$row->sprache."'";
if(!$db->db_query($qry))
{
die('Error:'.$db->db_last_error().$qry);
$db->db_query('ROLLBACK');
}
}
}
echo 'tbl_vorschlag_sprache.audio...<br>';
flush();
//Testtool - tbl_vorschlag_sprache.audio
$qry = "SELECT audio, frage_id, sprache FROM testtool.tbl_vorschlag_sprache WHERE audio is not null";
if($result = $db->db_query($qry))
{
while($row = $db->db_fetch_object($result))
{
$qry = "UPDATE testtool.tbl_vorschlag_sprache SET audio='".convert($row->audio)."' WHERE frage_id='".$row->frage_id."' AND sprache='".$row->sprache."'";
if(!$db->db_query($qry))
{
die('Error:'.$db->db_last_error().$qry);
$db->db_query('ROLLBACK');
}
}
}
echo 'tbl_wettbewerb...<br>';
flush();
//Kommune tbl_wettbewerb
$qry = "SELECT icon, wettbewerb_kurzbz FROM kommune.tbl_wettbewerb WHERE icon is not null";
if($result = $db->db_query($qry))
{
while($row = $db->db_fetch_object($result))
{
$qry = "UPDATE kommune.tbl_wettbewerb SET icon='".convert($row->icon)."' WHERE wettbewerb_kurzbz='".$row->wettbewerb_kurzbz."'";
if(!$db->db_query($qry))
{
die('Error:'.$db->db_last_error().$qry);
$db->db_query('ROLLBACK');
}
}
}
echo 'tbl_team...<br>';
flush();
//Kommune tbl_team
$qry = "SELECT logo, team_kurzbz FROM kommune.tbl_team WHERE logo is not null";
if($result = $db->db_query($qry))
{
while($row = $db->db_fetch_object($result))
{
$qry = "UPDATE kommune.tbl_team SET logo='".convert($row->logo)."' WHERE team_kurzbz='".$row->team_kurzbz."'";
if(!$db->db_query($qry))
{
die('Error:'.$db->db_last_error().$qry);
$db->db_query('ROLLBACK');
}
}
}
echo 'tbl_sprache...<br>';
flush();
//tbl_sprache
$qry = "SELECT flagge, sprache FROM public.tbl_sprache WHERE flagge is not null";
if($result = $db->db_query($qry))
{
while($row = $db->db_fetch_object($result))
{
$qry = "UPDATE public.tbl_sprache SET flagge='".convert($row->flagge)."' WHERE sprache='".$row->sprache."'";
if(!$db->db_query($qry))
{
die('Error:'.$db->db_last_error().$qry);
$db->db_query('ROLLBACK');
}
}
}
echo 'tbl_erhalter...<br>';
flush();
//tbl_erhalter
$qry = "SELECT logo, erhalter_kz FROM public.tbl_erhalter WHERE logo is not null";
if($result = $db->db_query($qry))
{
while($row = $db->db_fetch_object($result))
{
$qry = "UPDATE public.tbl_erhalter SET logo='".convert($row->logo)."' WHERE erhalter_kz='".$row->erhalter_kz."'";
if(!$db->db_query($qry))
{
die('Error:'.$db->db_last_error().$qry);
$db->db_query('ROLLBACK');
}
}
}
if(!$db->db_query('COMMIT'))
echo 'ERROR:'.$db->db_last_error();
else
echo '<b>Aktualisierung abgeschlossen</b>';
?>
+1 -1
View File
@@ -320,7 +320,7 @@ $error_msg='';
}
// Studenten holen die nicht im Verteiler sind
echo '<BR>';
$sql_query="SELECT uid, (SELECT gruppe_kurzbz FROM public.tbl_gruppe WHERE studiengang_kz=tbl_benutzerfunktion.studiengang_kz AND gruppe_kurzbz like '%_STDV') as gruppe_kurzbz FROM public.tbl_benutzerfunktion WHERE funktion_kurzbz='stdv' AND uid NOT in(Select uid from public.tbl_benutzergruppe JOIN public.tbl_gruppe USING(gruppe_kurzbz) WHERE studiengang_kz=tbl_benutzerfunktion.studiengang_kz AND gruppe_kurzbz Like '%_STDV')";
$sql_query="SELECT uid, (SELECT gruppe_kurzbz FROM public.tbl_gruppe WHERE studiengang_kz=(SELECT studiengang_kz FROM public.tbl_studiengang WHERE oe_kurzbz=tbl_benutzerfunktion.studiengang_kz LIMIT 1) AND gruppe_kurzbz like '%_STDV') as gruppe_kurzbz FROM public.tbl_benutzerfunktion WHERE funktion_kurzbz='stdv' AND uid NOT in(Select uid from public.tbl_benutzergruppe JOIN public.tbl_gruppe USING(gruppe_kurzbz) WHERE studiengang_kz=(SELECT studiengang_kz FROM public.tbl_studiengang WHERE oe_kurzbz=tbl_benutzerfunktion.studiengang_kz LIMIT 1) AND gruppe_kurzbz Like '%_STDV')";
if(!($result = $db->db_query($sql_query)))
$error_msg.=$db->db_last_error();
while($row = $db->db_fetch_object($result))
+7 -1
View File
@@ -189,7 +189,7 @@ if(!@$db->db_query('SELECT * FROM public.tbl_organisationseinheit LIMIT 1;'))
INSERT INTO public.tbl_organisationseinheit(oe_kurzbz, oe_parent_kurzbz, bezeichnung, organisationseinheittyp_kurzbz) VALUES('ZentrServices','Infrastruktur','ZentraleServices','Abteilung');
-- Alle noch nicht eingetragenen Institute und Studiengaenge direkt unter etw haengen
INSERT INTO public.tbl_organisationseinheit(oe_kurzbz, oe_parent_kurzbz, bezeichnung, organisationseinheittyp_kurzbz) SELECT lower(typ::varchar(1) || kurzbz), 'etw', lower(typ::varchar(1) || kurzbz), 'Studiengang' FROM public.tbl_studiengang WHERE lower(typ::varchar(1) || kurzbz) not in (SELECT oe_kurzbz FROM public.tbl_organisationseinheit) AND studiengang_kz<>999;
INSERT INTO public.tbl_organisationseinheit(oe_kurzbz, oe_parent_kurzbz, bezeichnung, organisationseinheittyp_kurzbz) SELECT lower(typ::varchar(1) || kurzbz), 'etw', UPPER(typ::varchar(1) || kurzbz), 'Studiengang' FROM public.tbl_studiengang WHERE lower(typ::varchar(1) || kurzbz) not in (SELECT oe_kurzbz FROM public.tbl_organisationseinheit) AND studiengang_kz<>999;
INSERT INTO public.tbl_organisationseinheit(oe_kurzbz, oe_parent_kurzbz, bezeichnung, organisationseinheittyp_kurzbz) SELECT fachbereich_kurzbz, 'etw', bezeichnung, 'Institut' FROM public.tbl_fachbereich WHERE fachbereich_kurzbz not in (SELECT oe_kurzbz FROM public.tbl_organisationseinheit);
-- Eintraege in Tabelle Studiengang und Fachbereich
@@ -208,6 +208,10 @@ if(!@$db->db_query('SELECT * FROM public.tbl_organisationseinheit LIMIT 1;'))
if(!@$db->db_query('SELECT * FROM system.tbl_berechtigung LIMIT 1;'))
{
$qry = "CREATE SCHEMA system;
GRANT USAGE ON SCHEMA system TO GROUP ".DB_CIS_USER_GROUP.";
GRANT USAGE ON SCHEMA system TO GROUP ".DB_FAS_USER_GROUP.";
CREATE TABLE system.tbl_benutzerrolle
(
benutzerberechtigung_id serial NOT NULL,
@@ -314,6 +318,8 @@ if(!@$db->db_query('SELECT * FROM system.tbl_berechtigung LIMIT 1;'))
INSERT INTO system.tbl_rolleberechtigung(berechtigung_kurzbz, rolle_kurzbz, art) VALUES('preinteressent','admin','suid');
INSERT INTO system.tbl_rolleberechtigung(berechtigung_kurzbz, rolle_kurzbz, art) VALUES('veranstaltung','admin','suid');
-- Bei alle ohne oe_kurzbz die Organisaitonseinheit auf etw setzen (admins)
UPDATE system.tbl_benutzerrolle SET oe_kurzbz='etw' WHERE oe_kurzbz is null;
";
if(!$db->db_query($qry))