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;
+ }
}
?>