This commit is contained in:
Christian Paminger
2007-07-03 15:17:55 +00:00
parent c702fef7b1
commit 855bcda5a1
5 changed files with 98 additions and 50 deletions
+61 -29
View File
@@ -15,7 +15,7 @@
* 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 <christian.paminger@technikum-wien.at>,
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
@@ -26,7 +26,7 @@ class benutzerberechtigung
var $errormsg; // string
var $new; // boolean
var $berechtigungen = array(); // benutzerberechtigung Objekt
//Tabellenspalten
var $benutzerberechtigung_id; // int
var $art; // varchar(16)
@@ -39,33 +39,37 @@ class benutzerberechtigung
var $ende; // date
var $starttimestamp;
var $endetimestamp;
//Attribute des Mitarbeiters
var $fix;
var $lektor;
// *************************************************************************
// * Konstruktor - Uebergibt die Connection und laedt optional eine Lehrform
// * @param $conn Datenbank-Connection
// * $benutzerberechtigung_id
// * $unicode Gibt an ob die Daten mit UNICODE Codierung
// * $benutzerberechtigung_id
// * $unicode Gibt an ob die Daten mit UNICODE Codierung
// * oder LATIN9 Codierung verarbeitet werden sollen
// *************************************************************************
function benutzerberechtigung($conn, $benutzerberechtigung_id=null, $unicode=false)
{
$this->conn = $conn;
if($unicode)
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
else
else
$qry = "SET CLIENT_ENCODING TO 'LATIN9';";
if(!pg_query($conn,$qry))
{
$this->errormsg = 'Encoding konnte nicht gesetzt werden';
return false;
}
if($benutzerberechtigung_id!=null)
$this->load($benutzerberechtigung_id);
}
// *********************************************************
// * Laedt eine Benutzerberechtigung
// * @param benutzerberechtigung_id
@@ -74,9 +78,9 @@ class benutzerberechtigung
{
return true;
}
// *******************************************
// * Prueft die Variablen vor dem Speichern
// * Prueft die Variablen vor dem Speichern
// * auf Gueltigkeit.
// * @return true wenn ok, false im Fehlerfall
// *******************************************
@@ -87,7 +91,7 @@ class benutzerberechtigung
$this->errormsg = 'Art darf nicht laenger als 16 Zeichen sein';
return false;
}
if(strlen($this->fachbereich_kurzbz)>16)
{
$this->errormsg = 'fachbereich_kurzbz darf nicht laenger als 16 Zeichen sein';
@@ -118,13 +122,13 @@ class benutzerberechtigung
$this->errormsg = 'UID muss angegeben werden';
return false;
}
return true;
}
// ************************************************
// * wenn $var '' ist wird NULL zurueckgegeben
// * wenn $var !='' ist werden Datenbankkritische
// * wenn $var !='' ist werden Datenbankkritische
// * Zeichen mit Backslash versehen und das Ergbnis
// * unter Hochkomma gesetzt.
// ************************************************
@@ -146,8 +150,8 @@ class benutzerberechtigung
return false;
if($this->new)
{
$qry = 'INSERT INTO public.tbl_benutzerberechtigung (art, fachbereich_kurzbz, studiengang_kz, berechtigung_kurzbz,
{
$qry = 'INSERT INTO public.tbl_benutzerberechtigung (art, fachbereich_kurzbz, studiengang_kz, berechtigung_kurzbz,
uid, studiensemester_kurzbz, start, ende)
VALUES('.$this->addslashes($this->art).','.
$this->addslashes($this->fachbereich_kurzbz).','.
@@ -183,7 +187,7 @@ class benutzerberechtigung
return false;
}
}
// ************************************************************
// * Speichert Benutzerberechtigung in die Datenbank
// * Wenn $new auf true gesetzt ist wird ein neuer Datensatz
@@ -202,7 +206,7 @@ class benutzerberechtigung
}
return true;
}
//****************************************************************************
// * Rueckgabewert ist ein Array mit den Ergebnissen. Bei Fehler false und die
// * Fehlermeldung liegt in errormsg.
@@ -223,11 +227,11 @@ class benutzerberechtigung
$this->errormsg='Fehler beim laden der Berechtigungen';
return false;
}
while($row=pg_fetch_object($erg))
{
$b=new benutzerberechtigung($this->conn);
$b->benutzerberechtigung_id = $row->benutzerberechtigung_id;
$b->art=$row->art;
$b->fachbereich_kurzbz=$row->fachbereich_kurzbz;
@@ -244,9 +248,29 @@ class benutzerberechtigung
if ($row->ende!=null)
$b->endetimestamp=mktime(23,59,59,substr($row->ende,5,2),substr($row->ende,8),substr($row->ende,0,4));
$this->berechtigungen[]=$b;
}
// Attribute des Mitarbeiters holen
$sql_query="SELECT * FROM public.tbl_mitarbeiter WHERE mitarbeiter_uid='$uid'";
if(!$erg=pg_query($this->conn, $sql_query))
{
$this->errormsg='Fehler beim laden der Berechtigungen';
return false;
}
while($row=pg_fetch_object($erg))
{
if ($row->fixangestellt=='t')
$this->fix=true;
else
$this->fix=false;
if ($row->lektor=='t')
$this->lektor=true;
else
$this->lektor=false;
}
return true;
}
@@ -270,7 +294,7 @@ class benutzerberechtigung
return true;
}
}
//Wenn Berechtigung fuer Bestimmte Klasse vorhanden ist
if($berechtigung == $b->berechtigung_kurzbz && $studiengang_kz==null && $art==null && $fachbereich_kurzbz==null)
if ($b->starttimestamp!=null && $b->endetimestamp!=null)
@@ -281,7 +305,7 @@ class benutzerberechtigung
else
return true;
//Wenn Berechtigung fuer Bestimmten Studiengang vorhanden ist
if ($berechtigung==$b->berechtigung_kurzbz
if ($berechtigung==$b->berechtigung_kurzbz
&& ($studiengang_kz==$b->studiengang_kz || $b->studiengang_kz==0) && $art==null && $b->fachbereich_kurzbz==null)
if ($b->starttimestamp!=null && $b->endetimestamp!=null)
{
@@ -290,9 +314,9 @@ class benutzerberechtigung
}
else
return true;
//Wenn Berechtigung mit Studiengang und der richtigen BerechtigungsArt (suid) vorhanden ist
if ($berechtigung==$b->berechtigung_kurzbz
&& ($studiengang_kz==$b->studiengang_kz || $b->studiengang_kz==0)
//Wenn Berechtigung mit Studiengang und der richtigen BerechtigungsArt (suid) vorhanden ist
if ($berechtigung==$b->berechtigung_kurzbz
&& ($studiengang_kz==$b->studiengang_kz || $b->studiengang_kz==0)
&& strstr($b->art,$art))
if ($b->starttimestamp!=null && $b->endetimestamp!=null)
{
@@ -305,6 +329,14 @@ class benutzerberechtigung
return false;
}
function isFix()
{
if ($this->fix)
return true;
else
return false;
}
// ********************************************************************
// * Gibt Array mit Kennzahlen der Studiengaenge sortiert zurueck.
// * Optional wird auf Berechtigung eingeschraenkt.
@@ -314,7 +346,7 @@ class benutzerberechtigung
{
$studiengang_kz=array();
$timestamp=time();
foreach ($this->berechtigungen as $b)
if ($berechtigung==$b->berechtigung_kurzbz || $berechtigung==null)
if($b->fachbereich_kurzbz==null)
@@ -323,7 +355,7 @@ class benutzerberechtigung
sort($studiengang_kz);
return $studiengang_kz;
}
function getFbKz($berechtigung=null)
{
$fachbereichs_kz=array();
+15 -1
View File
@@ -111,7 +111,21 @@ class datum
$datum+=3600;
return $datum;
}
/**
* Springt von einen UNIX Timestamp ($datum) $days nach vor bzw. hinten
*/
function jump_day($datum, $days)
{
$stunde_vor=date("G",$datum);
// Ein Tag sind 86400 Sekunden
$datum+=86400*$days;
$stunde_nach=date("G",$datum);
if ($stunde_nach!=$stunde_vor)
$datum+=3600;
return $datum;
}
/**
* Konvertiert das ISO Datumsformat (YYYY-MM-DD)
* nach (DD.MM.YYYY)