Projektarbeitsbeurteilung: added authorization (Berechtigungen) check to document export

This commit is contained in:
Alexei Karpenko
2025-02-17 19:03:53 +01:00
parent 57eec9b940
commit 9fb2ea4ae3
3 changed files with 41 additions and 51 deletions
@@ -6,40 +6,21 @@
* daraus ein PDF
*/
require_once('../../../config/cis.config.inc.php');
require_once('../../../include/functions.inc.php');
require_once('../../../include/projektarbeit.class.php');
require_once('../../../include/person.class.php');
if (!isset($_GET['betreuerart_kurzbz']) || !isset($_GET['person_id']) || !isset($_GET['projektarbeit_id']))
die('Fehlerhafte Parameteruebergabe');
$user = get_uid();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($user);
$projektarbeit = new projektarbeit();
$projektarbeit->load($_GET['projektarbeit_id']);
$betreuer = new person();
$betreuer->getPersonFromBenutzer($user);
//Überprüft ob es der Betreuer oder der Student ist
if ($betreuer->person_id !== $_GET['person_id'] && $projektarbeit->student_uid !== $user && !$rechte->isBerechtigt('assistenz'))
die("<html><body><h3>Sie haben keine Berechtigung für diese Aktion.</h3></body></html>");
$projektarbeitVorlage = new projektarbeit();
// passende Vorlage holen
$projektarbeitVorlage = new projektarbeit();
$vorlage = $projektarbeitVorlage->getVorlage($_GET['projektarbeit_id'], $_GET['betreuerart_kurzbz']);
if ($vorlage == null)
die("<html><body><h3>".$projektarbeitVorlage->errormsg."</h3></body></html>");
// weiterleiten auf Dokumentexport
header('Location: ' . APP_ROOT . '/cis/private/pdfExport.php?xml=projektarbeitsbeurteilung.xml.php'
.'&xsl='.$vorlage.'&betreuerart_kurzbz=' . $_GET['betreuerart_kurzbz']
. '&projektarbeit_id=' . $_GET['projektarbeit_id'] . '&person_id=' . $_GET['person_id']. '&uid=' . $user
. '&projektarbeit_id=' . $_GET['projektarbeit_id'] . '&person_id=' . $_GET['person_id']
);
die();
+22 -28
View File
@@ -196,41 +196,35 @@ if (isset($_GET['output']) && $_GET['output'] != 'pdf')
else
$output = 'pdf';
//~ if (isset($_GET['xsl']) && ($_GET['xsl'] === 'Projektbeurteilung'))
//~ {
//~ if (!isset($_GET['betreuerart_kurzbz']) || !isset($_GET['person_id']) || !isset($_GET['projektarbeit_id']))
//~ die('Fehlerhafte Parameteruebergabe');
// Berechtigungprüfung Projektarbeit
if (isset($_GET['projektarbeit_id']))
{
$projektarbeitVorlage = new projektarbeit();
$allePaVorlagen = $projektarbeitVorlage->getAllVorlagen();
//~ $projektarbeit = new projektarbeit();
//~ $projektarbeit->load($_GET['projektarbeit_id']);
if (!is_array($allePaVorlagen))
die("<html><body><h3>Fehler beim Holen der Projektarbeit Vorlagen</h3></body></html>");
//~ $betreuer = new person();
//~ $betreuer->getPersonFromBenutzer($user);
if (in_array($xsl, $allePaVorlagen))
{
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($user);
//~ //Überprüft ob es der Betreuer oder der Student ist
//~ if ($betreuer->person_id !== $_GET['person_id'] && $projektarbeit->student_uid !== $user && !$rechte->isBerechtigt('assistenz'))
//~ die("<html><body><h3>Sie haben keine Berechtigung für diese Aktion.</h3></body></html>");
$projektarbeit = new projektarbeit();
$projektarbeit->load($_GET['projektarbeit_id']);
//~ switch ($_GET['betreuerart_kurzbz'])
//~ {
//~ case 'Begutachter' :
//~ case 'Senatsvorsitz' :
//~ $xsl = 'ProjektBeurteilungBA';
//~ break;
//~ case 'Erstbegutachter' :
//~ $xsl = 'ProjektBeurteilungMAErst';
//~ break;
//~ case 'Zweitbegutachter' :
//~ $xsl = 'ProjektBeurteilungMAZweit';
//~ break;
//~ }
//~ $allowed = true;
//~ }
$betreuer = new person();
$betreuer->getPersonFromBenutzer($user);
//Überprüft ob es der Betreuer oder der Student ist
if ($betreuer->person_id !== $_GET['person_id'] && $projektarbeit->student_uid !== $user && !$rechte->isBerechtigt('assistenz'))
die("<html><body><h3>Sie haben keine Berechtigung für diese Aktion.</h3></body></html>");
$paBerechtigt = true;
}
}
$konto = new konto();
if (((isset($_GET["uid"]) && $user == $_GET["uid"])) || $rechte->isBerechtigt('admin'))
if (((isset($_GET["uid"]) && $user == $_GET["uid"])) || $rechte->isBerechtigt('admin') || (isset($paBerechtigt) && $paBerechtigt === true))
{
$buchungstypen = array();
if (defined("CIS_DOKUMENTE_STUDIENBEITRAG_TYPEN"))
+17 -2
View File
@@ -59,7 +59,7 @@ class projektarbeit extends basis_db
public $abgabedatum;
// Welche Version der Projektarbeit wird in welchem Semester verwendet
// Welche Version der Projektarbeit wird ab welchem Semester verwendet
private $_versions = array(
'Diplom' => array(
'SS2025' => 3,
@@ -72,7 +72,7 @@ class projektarbeit extends basis_db
)
);
// welche Vorlagen werden für welche Projekarbeitsversion verwendet (beginnend mit 0)
// welche Vorlagen werden ab welcher Projekarbeitsversion verwendet (0 - erste "default" Vorlage)
private $_projektarbeitVorlageMappings = array(
'Begutachter' => array(
2 => 'ProjektBeurteilungBAProzent',
@@ -626,5 +626,20 @@ class projektarbeit extends basis_db
? $this->_projektarbeitVorlageMappings[$betreuerart_kurzbz][$key]
: '';
}
/**
* Holt alle möglichen, jemals verwendeten Projektarbeits-Vorlagen
* @return array mit Vorlagennamen
*/
public function getAllVorlagen()
{
$vorlagen = array();
foreach ($this->_projektarbeitVorlageMappings as $mappings)
{
$vorlagen = array_unique(array_merge($vorlagen, $mappings));
}
return $vorlagen;
}
}
?>