This commit is contained in:
Andreas Österreicher
2009-07-14 12:32:31 +00:00
parent 5b2eced74b
commit bdf7b1333c
8 changed files with 644 additions and 366 deletions
+162 -50
View File
@@ -73,7 +73,47 @@ class benutzerberechtigung extends basis_db
*/
public function load($benutzerberechtigung_id)
{
return false;
if(!is_numeric($benutzerberechtigung_id) || $benutzerberechtigung_id=='')
{
$this->errormsg = 'benutzerberechtigung_id ist ungueltig';
return false;
}
$qry = "SELECT * FROM system.tbl_benutzerrolle WHERE benutzerberechtigung_id='$benutzerberechtigung_id'";
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
{
$this->benutzerberechtigung_id = $benutzerberechtigung_id;
$this->rolle_kurzbz = $row->rolle_kurzbz;
$this->berechtigung_kurzbz = $row->berechtigung_kurzbz;
$this->uid = $row->uid;
$this->funktion_kurzbz = $row->funktion_kurzbz;
$this->oe_kurzbz = $row->oe_kurzbz;
$this->art = $row->art;
$this->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$this->start = $row->start;
$this->ende = $row->ende;
$this->negativ = ($row->negativ=='t'?true:false);
$this->updateamum = $row->updateamum;
$this->updatevon = $row->updatevon;
$this->insertamum = $row->insertamum;
$this->insertvon = $row->insertvon;
return true;
}
else
{
$this->errormsg = 'Es wurde kein Eintrag mit dieser ID gefunden';
return false;
}
}
else
{
$this->errormsg = 'Fehler beim Laden der Berechtigung';
return false;
}
}
/**
@@ -89,24 +129,9 @@ class benutzerberechtigung extends basis_db
return false;
}
if(mb_strlen($this->fachbereich_kurzbz)>16)
if(mb_strlen($this->berechtigung_kurzbz)>32)
{
$this->errormsg = 'fachbereich_kurzbz darf nicht laenger als 16 Zeichen sein';
return false;
}
if($this->studiengang_kz!='' && !is_numeric($this->studiengang_kz))
{
$this->errormsg = 'Studiengangskennzahl muss eine gueltige Zahl sein';
return false;
}
if(mb_strlen($this->berechtigung_kurzbz)>16)
{
$this->errormsg = 'Berechtigung_kurzbz darf nicht laenger als 16 Zeichen sein';
return false;
}
if($this->berechtigung_kurzbz=='')
{
$this->errormsg = 'Berechtigung_kurzbz muss angegeben werden';
$this->errormsg = 'Berechtigung_kurzbz darf nicht laenger als 32 Zeichen sein';
return false;
}
if(mb_strlen($this->uid)>32)
@@ -114,12 +139,42 @@ class benutzerberechtigung extends basis_db
$this->errormsg = 'UID darf nicht laenger als 32 Zeichen sein';
return false;
}
if($this->uid=='')
if($this->rolle_kurzbz=='' && $this->berechtigung_kurzbz=='')
{
$this->errormsg = 'UID muss angegeben werden';
$this->errormsg = 'Es muss entweder eine Rolle oder eine Berechtigung angegeben werden';
return false;
}
if($this->rolle_kurzbz!='' && $this->berechtigung_kurzbz!='')
{
$this->errormsg = 'Rolle und Berechtigung kann nicht gleichzeitig angegeben werden';
return false;
}
if($this->uid=='' && $this->funktion_kurzbz=='')
{
$this->errormsg = 'Ess muss entweder eine UID oder eine Funktion_kurzbz angegeben werden';
return false;
}
if($this->uid!='' && $this->funktion_kurzbz!='')
{
$this->errormsg = 'UID und Funktion_kurzbz kann nicht gleichzeitig angegeben werden';
return false;
}
if($this->funktion_kurzbz!='' && $this->oe_kurzbz!='')
{
$this->errormsg = 'Wenn eine Funktion_kurzbz angegeben wird, darf keine Organisationseinheit eingetragen sein';
return false;
}
if($this->art=='')
{
$this->errormsg = 'Art darf nicht leer sein';
return false;
}
return true;
}
@@ -135,68 +190,125 @@ class benutzerberechtigung extends basis_db
if(!$this->validate())
return false;
/*
if($this->new)
{
$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).','.
$this->addslashes($this->studiengang_kz).','.
$qry = 'INSERT INTO system.tbl_benutzerrolle (rolle_kurzbz, berechtigung_kurzbz, uid, funktion_kurzbz,
oe_kurzbz, art, studiensemester_kurzbz, start, ende, negativ, updateamum, updatevon, insertamum, insertvon)
VALUES('.$this->addslashes($this->rolle_kurzbz).','.
$this->addslashes($this->berechtigung_kurzbz).','.
$this->addslashes($this->uid).','.
$this->addslashes($this->funktion_kurzbz).','.
$this->addslashes($this->oe_kurzbz).','.
$this->addslashes($this->art).','.
$this->addslashes($this->studiensemester_kurzbz).','.
$this->addslashes($this->start).','.
$this->addslashes($this->ende).');';
$this->addslashes($this->ende).','.
($this->negativ?'true':'false').','.
$this->addslashes($this->updateamum).','.
$this->addslashes($this->updatevon).','.
$this->addslashes($this->insertamum).','.
$this->addslashes($this->insertvon).');';
}
else
{
$qry = 'UPDATE public.tbl_benutzerberechtigung SET'.
$qry = 'UPDATE system.tbl_benutzerrolle SET'.
' rolle_kurzbz='.$this->addslashes($this->rolle_kurzbz).','.
' berechtigung_kurzbz='.$this->addslashes($this->berechtigung_kurzbz).','.
' uid='.$this->addslashes($this->uid).','.
' funktion_kurzbz='.$this->addslashes($this->funktion_kurzbz).','.
' oe_kurzbz='.$this->addslashes($this->oe_kurzbz).','.
' art='.$this->addslashes($this->art).','.
' fachbereich_kurzbz='.$this->addslashes($this->fachbereich_kurzbz).','.
' studiengang_kz='.$this->addslashes($this->studiengang_kz).','.
' berechtigung_kurzbz='.$this->addslashes($this->berechtigung_kurzbz).','.
' uid='.$this->addslashes($this->uid).','.
' studiensemester_kurzbz='.$this->addslashes($this->studiensemester_kurzbz).','.
' start='.$this->addslashes($this->start).','.
' ende='.$this->addslashes($this->ende).
' ende='.$this->addslashes($this->ende).','.
' negativ='.($this->negativ?'true':'false').','.
' updateamum='.$this->addslashes($this->updateamum).','.
' updatevon='.$this->addslashes($this->updatevon).
" WHERE benutzerberechtigung_id='".addslashes($this->benutzerberechtigung_id)."'";
}
if(p g_query($this->conn,$qry))
if($this->db_query($qry))
{
//Log schreiben
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern der Benutzerberechtigung:'.$qry;
$this->errormsg = 'Fehler beim Speichern der Benutzerberechtigung:'.$qry.$this->db_last_error();
return false;
}
*/
return false;
}
/**
* Speichert Benutzerberechtigung in die Datenbank
* Wenn $new auf true gesetzt ist wird ein neuer Datensatz
* angelegt, ansonsten der Datensatz upgedated
* Loescht einen Eintrag aus der Tabelle benutzerrolle
* @param benutzerberechtigung_id
* @return true wenn erfolgreich, false im Fehlerfall
*/
function delete($benutzerberechtigung_id)
public function delete($benutzerberechtigung_id)
{
/*
// Berechtigungen holen
$sql_query="DELETE from tbl_benutzerberechtigung where benutzerberechtigung_id = '".$benutzerberechtigung_id."'";
if(!p g_query($this->conn, $sql_query))
if(!is_numeric($benutzerberechtigung_id) || $benutzerberechtigung_id=='')
{
$this->errormsg='Fehler beim löschen';
$this->errormsg = 'benutzerberechtigung_id ist ungültig';
return false;
}*/
return false;
}
// Berechtigungen loeschen
$sql_query="DELETE FROM system.tbl_benutzerrolle where benutzerberechtigung_id = '$benutzerberechtigung_id'";
if(!$this->db_query($sql_query))
{
$this->errormsg='Fehler beim Löschen';
return false;
}
return true;
}
/**
* Laedt die Benutzerrollen zu einer UID
*
* @param unknown_type $uid
*/
public function loadBenutzerRollen($uid=null, $funktion_kurzbz=null)
{
$qry = 'SELECT * FROM system.tbl_benutzerrolle WHERE ';
if(!is_null($uid))
$qry.= " uid='".addslashes($uid)."'";
elseif(!is_null($funktion_kurzbz))
$qry.= " funktion_kurzbz='".addslashes($funktion_kurzbz)."'";
else
{
$this->errormsg = 'Entweder UID oder funktion_kurzbz muss uebergeben werden';
return false;
}
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
{
$obj = new benutzerberechtigung();
$obj->benutzerberechtigung_id = $row->benutzerberechtigung_id;
$obj->rolle_kurzbz = $row->rolle_kurzbz;
$obj->berechtigung_kurzbz = $row->berechtigung_kurzbz;
$obj->uid = $row->uid;
$obj->funktion_kurzbz = $row->funktion_kurzbz;
$obj->oe_kurzbz = $row->oe_kurzbz;
$obj->art = $row->art;
$obj->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$obj->start = $row->start;
$obj->ende = $row->ende;
$obj->negativ = ($row->negativ=='t'?true:false);
$obj->udpateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$obj->insertamum = $row->insertamum;
$obj->insertvon = $row->insertvon;
$this->berechtigungen[] = $obj;
}
}
}
/**
* Laedt die Berechtigungen eines Users
* @param $uid
+96 -1
View File
@@ -23,7 +23,7 @@ require_once(dirname(__FILE__).'/basis_db.class.php');
class berechtigung extends basis_db
{
public $berechtigungen=array();
public $result=array();
public $new;
public $rolle_kurzbz;
@@ -85,6 +85,7 @@ class berechtigung extends basis_db
$obj->berechtigung_kurzbz = $row->berechtigung_kurzbz;
$obj->rolle_kurzbz = $row->rolle_kurzbz;
$obj->art = $row->art;
$obj->beschreibung = $row->beschreibung;
$this->result[] = $obj;
@@ -97,5 +98,99 @@ class berechtigung extends basis_db
return false;
}
}
/**
* Laedt die Berechtigungen
*
* @return boolean
*/
public function getBerechtigungen()
{
$this->result=array();
$qry = 'SELECT * FROM system.tbl_berechtigung ORDER BY berechtigung_kurzbz';
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
{
$obj = new berechtigung();
$obj->berechtigung_kurzbz = $row->berechtigung_kurzbz;
$obj->beschreibung = $row->beschreibung;
$this->result[] = $obj;
}
return true;
}
else
{
$this->errormsg = 'Fehler beim Laden der Berechtigungen';
return false;
}
}
/**
* Loescht eine rolleberechtigung zuordnung
*
* @param $rolle_kurzbz
* @param $berechtigung_kurzbz
*/
public function deleteRolleBerechtigung($rolle_kurzbz, $berechtigung_kurzbz)
{
$qry = "DELETE FROM system.tbl_rolleberechtigung WHERE rolle_kurzbz='".addslashes($rolle_kurzbz)."' AND berechtigung_kurzbz='".addslashes($berechtigung_kurzbz)."';";
if($this->db_query($qry))
{
return true;
}
else
{
$this->errormsg = 'Fehler beim Löschen der Zuordnung:'.$this->db_last_error();
return false;
}
}
/**
* Speichert eine RolleBerechtigung Zuordnung
*
*/
public function saveRolleBerechtigung()
{
$qry = "SELECT 1 FROM system.tbl_rolleberechtigung
WHERE rolle_kurzbz='".addslashes($this->rolle_kurzbz)."'
AND berechtigung_kurzbz='".addslashes($this->berechtigung_kurzbz)."'";
if($this->db_query($qry))
{
if($this->db_num_rows()>0)
{
//Update
$qry = "UPDATE system.tbl_rolleberechtigung SET art='".addslashes($this->art)."' WHERE rolle_kurzbz='".addslashes($this->rolle_kurzbz)."' AND berechtigung_kurzbz='".addslashes($this->berechtigung_kurzbz)."';";
}
else
{
//Insert
$qry = "INSERT INTO system.tbl_rolleberechtigung (rolle_kurzbz, berechtigung_kurzbz, art) VALUES('".
addslashes($this->rolle_kurzbz)."','".
addslashes($this->berechtigung_kurzbz)."','".
addslashes($this->art)."');";
}
if($this->db_query($qry))
{
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern: '.$this->db_last_error();
return false;
}
}
else
{
$this->errormsg = 'Fehler beim Speichern der Zuteilung:'.$this->db_last_error();
return false;
}
}
}
?>