Rechte-Fix Mailverteiler

Funktion Hochschulvertretung hinzugefügt
Rechte-Abfrage in open_grp.php
This commit is contained in:
Manfred Kindl
2018-05-23 10:07:51 +02:00
parent 77c8144e40
commit 98f25028eb
3 changed files with 49 additions and 5 deletions
+3 -1
View File
@@ -46,7 +46,9 @@ $std_obj = new student($user);
if(!$is_lector)
{
$fkt = new benutzerfunktion();
if($fkt->benutzerfunktion_exists($user, 'stdv'))
if($fkt->benutzerfunktion_exists($user, 'stdv', true)) // Studienvertretung
$is_stdv=true;
elseif($fkt->benutzerfunktion_exists($user, 'hsv', true)) // Hochschulvertretung
$is_stdv=true;
}
+38 -2
View File
@@ -24,13 +24,31 @@ require_once('../../include/functions.inc.php');
require_once('../../include/phrasen.class.php');
require_once('../../include/basis_db.class.php');
require_once('../../include/gruppe.class.php');
require_once('../../include/student.class.php');
require_once('../../include/benutzerfunktion.class.php');
require_once('../../include/studiengang.class.php');
$sprache = getSprache();
$p = new phrasen($sprache);
$uid = get_uid();
$is_lector=check_lektor($uid);
$is_stdv=false;
$std_obj = new student($uid);
//Studien- und Hochschulvertreter duerfen den Verteiler tw_std oeffnen
if(!$is_lector)
{
$fkt = new benutzerfunktion();
if($fkt->benutzerfunktion_exists($uid, 'stdv', true)) // Studienvertretung
$is_stdv=true;
elseif($fkt->benutzerfunktion_exists($uid, 'hsv', true)) // Hochschulvertretung
$is_stdv=true;
}
$db = new basis_db();
if (!isset($_REQUEST['grp']))
die('Falsche Parameter');
die('Parameter "grp" wurde nicht uebergeben');
if (mb_strlen($_REQUEST['grp'])>32)
die('Grp ungueltig');
@@ -41,12 +59,30 @@ if (!$gruppe->exists($_REQUEST['grp']))
{
//Wenn es keine Gruppe in der DB ist, kann es
//noch ein Studierendenverteiler sein
//bif_std
//zb bif_std oder tw_std
if (!preg_match('/^\D\D\D_std$/', $_REQUEST['grp']))
{
die('Ungueltige Gruppe');
}
else
{
// Kürzel aus Gruppe auslesen
$studiengang_kuerzel = substr($_REQUEST['grp'], 0, strpos($_REQUEST['grp'], '_'));
$studiengang = new studiengang();
$studiengang->getStudiengangFromOe($studiengang_kuerzel);
// Lektoren oder Studierende dieses Studiengangs dürfen
if (!$is_lector && $std_obj->studiengang_kz != $studiengang->studiengang_kz)
die('Sie haben keine Berechtigung zum öffnen dieses Mailverteilers');
}
}
elseif (!$is_lector && $_REQUEST['grp'] == 'tw_std')
{
//Studien- und Hochschulvertreter duerfen den Verteiler tw_std oeffnen
if ($is_stdv === false)
die('!$is_lector Sie haben keine Berechtigung zum öffnen dieses Mailverteilers');
}
function mail_id_generator()
{
mt_srand((double)microtime()*1000000);
+8 -2
View File
@@ -102,12 +102,18 @@ class benutzerfunktion extends basis_db
/**
* Prueft ob der Benutzer $uid die
* Funktion $benutzerfunktion hat
* Funktion $benutzerfunktion hat. Der optionale Parameter $gueltig prüft zusätzlich auf das Gültigkeitsdatum.
* @param string $uid
* @param string $benutzerfunktion
* @param boolean $gueltig. Default=false. Wenn true, wird zusätzlich das Gültigkeitsdatum geprüft
*/
public function benutzerfunktion_exists($uid, $benutzerfunktion)
public function benutzerfunktion_exists($uid, $benutzerfunktion, $gueltig = false)
{
$qry = "SELECT count(*) as anzahl FROM public.tbl_benutzerfunktion
WHERE uid=".$this->db_add_param($uid)." AND funktion_kurzbz=".$this->db_add_param($benutzerfunktion);
if ($gueltig = TRUE)
$qry .= ' AND (datum_von IS NULL OR datum_von <= now()) AND (datum_bis IS NULL OR datum_bis >= now()) ';
if($row = $this->db_fetch_object($this->db_query($qry)))
{