mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-10-12 15:04:04 +00:00
Compare commits
4
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3c95907213 | ||
|
|
f30c16aede | ||
|
|
ab0a0aa5c3 | ||
|
|
2ed80b59b0 |
@@ -198,7 +198,7 @@ class Grades extends FHCAPI_Controller
|
|||||||
$now = date('c');
|
$now = date('c');
|
||||||
|
|
||||||
// NOTE(chris): Stg Permissions
|
// NOTE(chris): Stg Permissions
|
||||||
if (!$this->hasPermissionUpdate($lehrveranstaltung_id, $student_uid))
|
if (!$this->hasPermissionGradeUID($lehrveranstaltung_id, $student_uid))
|
||||||
return $this->_outputAuthError([$this->router->method => ['admin', 'assistenz']]);
|
return $this->_outputAuthError([$this->router->method => ['admin', 'assistenz']]);
|
||||||
|
|
||||||
$this->load->model('education/Zeugnisnote_model', 'ZeugnisnoteModel');
|
$this->load->model('education/Zeugnisnote_model', 'ZeugnisnoteModel');
|
||||||
@@ -260,7 +260,7 @@ class Grades extends FHCAPI_Controller
|
|||||||
$lehrveranstaltung_id = $this->input->post('lehrveranstaltung_id');
|
$lehrveranstaltung_id = $this->input->post('lehrveranstaltung_id');
|
||||||
|
|
||||||
// NOTE(chris): Stg Permissions
|
// NOTE(chris): Stg Permissions
|
||||||
if (!$this->hasPermissionDelete($lehrveranstaltung_id, $student_uid))
|
if (!$this->hasPermissionGradeUID($lehrveranstaltung_id, $student_uid))
|
||||||
return $this->_outputAuthError([$this->router->method => ['admin', 'assistenz']]);
|
return $this->_outputAuthError([$this->router->method => ['admin', 'assistenz']]);
|
||||||
|
|
||||||
$this->load->model('education/Zeugnisnote_model', 'ZeugnisnoteModel');
|
$this->load->model('education/Zeugnisnote_model', 'ZeugnisnoteModel');
|
||||||
@@ -298,7 +298,7 @@ class Grades extends FHCAPI_Controller
|
|||||||
$authUID = getAuthUID();
|
$authUID = getAuthUID();
|
||||||
|
|
||||||
// NOTE(chris): Stg Permissions
|
// NOTE(chris): Stg Permissions
|
||||||
if (!$this->hasPermissionCopy($lehrveranstaltung_id, $student_uid))
|
if (!$this->hasPermissionGradeUID($lehrveranstaltung_id, $student_uid))
|
||||||
return $this->_outputAuthError([$this->router->method => 'student/noten']);
|
return $this->_outputAuthError([$this->router->method => 'student/noten']);
|
||||||
|
|
||||||
$this->load->model('education/Lvgesamtnote_model', 'LvgesamtnoteModel');
|
$this->load->model('education/Lvgesamtnote_model', 'LvgesamtnoteModel');
|
||||||
@@ -410,7 +410,7 @@ class Grades extends FHCAPI_Controller
|
|||||||
$repeaterGrade = current($repeaterGrade);
|
$repeaterGrade = current($repeaterGrade);
|
||||||
|
|
||||||
// NOTE(chris): Stg Permissions
|
// NOTE(chris): Stg Permissions
|
||||||
if (!$this->hasPermissionCopy($repeaterGrade->lehrveranstaltung_id, $repeaterGrade->student_uid))
|
if (!$this->hasPermissionGradeUID($repeaterGrade->lehrveranstaltung_id, $repeaterGrade->student_uid))
|
||||||
return $this->_outputAuthError([$this->router->method => 'student/noten']);
|
return $this->_outputAuthError([$this->router->method => 'student/noten']);
|
||||||
|
|
||||||
$data = [
|
$data = [
|
||||||
@@ -565,136 +565,57 @@ class Grades extends FHCAPI_Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Helper function to check permissions for updateCertificate()
|
* Combined helper function to check permissions for
|
||||||
|
* certificate-modifying functions
|
||||||
*
|
*
|
||||||
* @param integer $lehrveranstaltung_id
|
* @param integer $lehrveranstaltung_id
|
||||||
* @param string $student_uid
|
* @param string $student_uid
|
||||||
*
|
*
|
||||||
* @return boolean
|
* @return boolean
|
||||||
*/
|
*/
|
||||||
protected function hasPermissionUpdate($lehrveranstaltung_id, $student_uid)
|
protected function hasPermissionGradeUID($lehrveranstaltung_id, $student_uid)
|
||||||
{
|
{
|
||||||
if ($lehrveranstaltung_id === null || $student_uid === null)
|
if ($lehrveranstaltung_id === null || $student_uid === null)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
|
||||||
$this->load->model('crm/Student_model', 'StudentModel');
|
$this->load->model('crm/Student_model', 'StudentModel');
|
||||||
|
|
||||||
$result = $this->StudentModel->load([$student_uid]);
|
$studentResult = $this->StudentModel->load([$student_uid]);
|
||||||
if (isError($result) || !hasData($result))
|
if (isError($studentResult) || !hasData($studentResult))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
$student = current(getData($result));
|
$student = current(getData($studentResult));
|
||||||
|
|
||||||
if ($this->permissionlib->isBerechtigt('admin', 'suid', $student->studiengang_kz))
|
|
||||||
return true;
|
|
||||||
if ($this->permissionlib->isBerechtigt('assistenz', 'suid', $student->studiengang_kz))
|
|
||||||
return true;
|
|
||||||
|
|
||||||
$this->load->model('organisation/Studienplan_model', 'StudienplanModel');
|
$this->load->model('organisation/Studienplan_model', 'StudienplanModel');
|
||||||
|
|
||||||
$result = $this->StudienplanModel->getAllOesForLv($lehrveranstaltung_id);
|
$oesResult = $this->StudienplanModel->getAllOesForLv($lehrveranstaltung_id);
|
||||||
if (isError($result))
|
if (isError($oesResult))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
$oes = getData($result) ?: [];
|
$oes = hasData($oesResult) ? getData($oesResult) : [];
|
||||||
|
|
||||||
$this->load->model('education/Lehrveranstaltung_model', 'LehrveranstaltungModel');
|
$this->load->model('education/Lehrveranstaltung_model', 'LehrveranstaltungModel');
|
||||||
|
|
||||||
$result = $this->LehrveranstaltungModel->getStg($lehrveranstaltung_id);
|
$lvResult = $this->LehrveranstaltungModel->load($lehrveranstaltung_id);
|
||||||
if (isError($result))
|
if (isError($lvResult))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (hasData($result))
|
if (hasData($lvResult))
|
||||||
$oes[] = current(getData($result));
|
$oes[] = current(getData($lvResult));
|
||||||
|
|
||||||
|
|
||||||
|
if ($this->permissionlib->isBerechtigt('student/noten', 'suid', $student->studiengang_kz))
|
||||||
|
return true;
|
||||||
|
|
||||||
foreach ($oes as $oe) {
|
foreach ($oes as $oe) {
|
||||||
if ($this->permissionlib->isBerechtigt('admin', 'suid', $oe->oe_kurzbz))
|
if ($this->permissionlib->isBerechtigt('student/noten', 'suid', $oe->oe_kurzbz))
|
||||||
return true;
|
return true;
|
||||||
if ($this->permissionlib->isBerechtigt('assistenz', 'suid', $oe->oe_kurzbz))
|
if ($this->permissionlib->isBerechtigt('student/noten', 'suid', $oe->studiengang_kz))
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Helper function to check permissions for deleteCertificate()
|
|
||||||
*
|
|
||||||
* @param integer $lehrveranstaltung_id
|
|
||||||
* @param string $student_uid
|
|
||||||
*
|
|
||||||
* @return boolean
|
|
||||||
*/
|
|
||||||
protected function hasPermissionDelete($lehrveranstaltung_id, $student_uid)
|
|
||||||
{
|
|
||||||
if ($lehrveranstaltung_id === null || $student_uid === null)
|
|
||||||
return true;
|
|
||||||
|
|
||||||
$this->load->model('crm/Student_model', 'StudentModel');
|
|
||||||
|
|
||||||
$result = $this->StudentModel->load([$student_uid]);
|
|
||||||
if (isError($result) || !hasData($result))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
$student = current(getData($result));
|
|
||||||
|
|
||||||
if ($this->permissionlib->isBerechtigt('admin', 'suid', $student->studiengang_kz))
|
|
||||||
return true;
|
|
||||||
if ($this->permissionlib->isBerechtigt('assistenz', 'suid', $student->studiengang_kz))
|
|
||||||
return true;
|
|
||||||
|
|
||||||
$this->load->model('education/Lehrveranstaltung_model', 'LehrveranstaltungModel');
|
|
||||||
|
|
||||||
$result = $this->LehrveranstaltungModel->load($lehrveranstaltung_id);
|
|
||||||
if (isError($result) || !hasData($result))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
$oe = current(getData($result));
|
|
||||||
|
|
||||||
if ($this->permissionlib->isBerechtigt('admin', 'suid', $oe->oe_kurzbz))
|
|
||||||
return true;
|
|
||||||
if ($this->permissionlib->isBerechtigt('assistenz', 'suid', $oe->oe_kurzbz))
|
|
||||||
return true;
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Helper function to check permissions for
|
|
||||||
* copyTeacherProposalToCertificate() and copyRepeaterGradeToCertificate()
|
|
||||||
*
|
|
||||||
* @param integer $lehrveranstaltung_id
|
|
||||||
* @param string $student_uid
|
|
||||||
*
|
|
||||||
* @return boolean
|
|
||||||
*/
|
|
||||||
protected function hasPermissionCopy($lehrveranstaltung_id, $student_uid)
|
|
||||||
{
|
|
||||||
if ($lehrveranstaltung_id === null || $student_uid === null)
|
|
||||||
return true;
|
|
||||||
|
|
||||||
$this->load->model('crm/Student_model', 'StudentModel');
|
|
||||||
|
|
||||||
$result = $this->StudentModel->load([$student_uid]);
|
|
||||||
if (isError($result) || !hasData($result))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
$student = current(getData($result));
|
|
||||||
|
|
||||||
if ($this->permissionlib->isBerechtigt('student/noten', 'suid', $student->studiengang_kz))
|
|
||||||
return true;
|
|
||||||
|
|
||||||
$this->load->model('education/Lehrveranstaltung_model', 'LehrveranstaltungModel');
|
|
||||||
|
|
||||||
$result = $this->LehrveranstaltungModel->load($lehrveranstaltung_id);
|
|
||||||
if (isError($result) || !hasData($result))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
$oe = current(getData($result));
|
|
||||||
|
|
||||||
if ($this->permissionlib->isBerechtigt('student/noten', 'suid', $oe->oe_kurzbz))
|
|
||||||
return true;
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user