mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-01 12:19:28 +00:00
Projektarbeitsbeurteilung: added authorization (Berechtigungen) check to document export
This commit is contained in:
@@ -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
@@ -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"))
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
Reference in New Issue
Block a user