diff --git a/cis/private/lehre/projektbeurteilungDocumentExport.php b/cis/private/lehre/projektbeurteilungDocumentExport.php index 195650a24..08f7127ee 100644 --- a/cis/private/lehre/projektbeurteilungDocumentExport.php +++ b/cis/private/lehre/projektbeurteilungDocumentExport.php @@ -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("

Sie haben keine Berechtigung für diese Aktion.

"); - -$projektarbeitVorlage = new projektarbeit(); - // passende Vorlage holen +$projektarbeitVorlage = new projektarbeit(); $vorlage = $projektarbeitVorlage->getVorlage($_GET['projektarbeit_id'], $_GET['betreuerart_kurzbz']); - if ($vorlage == null) die("

".$projektarbeitVorlage->errormsg."

"); // 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(); diff --git a/cis/private/pdfExport.php b/cis/private/pdfExport.php index 7393a084c..d4638d1bd 100644 --- a/cis/private/pdfExport.php +++ b/cis/private/pdfExport.php @@ -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("

Fehler beim Holen der Projektarbeit Vorlagen

"); - //~ $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("

Sie haben keine Berechtigung für diese Aktion.

"); + $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("

Sie haben keine Berechtigung für diese Aktion.

"); + $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")) diff --git a/include/projektarbeit.class.php b/include/projektarbeit.class.php index 5f07cf69d..c191550b7 100644 --- a/include/projektarbeit.class.php +++ b/include/projektarbeit.class.php @@ -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; + } } ?>