mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-03 20:09:29 +00:00
Merge branch 'master' into cis40_2026-05_ma_rc
This commit is contained in:
@@ -36,6 +36,7 @@ require_once('../../../include/notenschluessel.class.php');
|
||||
require_once('../../../include/Excel/excel.php');
|
||||
require_once('../../../include/phrasen.class.php');
|
||||
require_once('../../../include/pruefung.class.php');
|
||||
require_once('../../../include/benutzerberechtigung.class.php');
|
||||
|
||||
$uid = get_uid();
|
||||
|
||||
@@ -44,7 +45,7 @@ $uid = get_uid();
|
||||
$sprache = getSprache();
|
||||
$p = new phrasen($sprache);
|
||||
|
||||
if(!check_lektor($uid))
|
||||
if (!check_lektor($uid))
|
||||
die('Sie haben keine Berechtigung fuer diese Seite');
|
||||
|
||||
if (!$db = new basis_db())
|
||||
@@ -90,6 +91,21 @@ if(isset($_GET['lehreinheit_id']))
|
||||
else
|
||||
$lehreinheit_id = '';
|
||||
|
||||
// Permissions
|
||||
$berechtigung = new benutzerberechtigung();
|
||||
$berechtigung->getBerechtigungen($uid);
|
||||
|
||||
// LV load
|
||||
$lvobj = new lehrveranstaltung($lvid);
|
||||
|
||||
// Check permissions
|
||||
if (!$berechtigung->isBerechtigt('admin')
|
||||
&& !$berechtigung->isBerechtigt('assistenz')
|
||||
&& !$berechtigung->isBerechtigt('lehre', $lvobj->oe_kurzbz, 's')
|
||||
&& !check_lektor_lehrveranstaltung($uid, $lvid, $stsem)
|
||||
)
|
||||
die('Sie haben keine Berechtigung fuer diese Seite');
|
||||
|
||||
/*
|
||||
* Create Excel File
|
||||
*/
|
||||
@@ -143,8 +159,6 @@ else
|
||||
// let's merge
|
||||
$format_title->setAlign('merge');
|
||||
|
||||
$lvobj = new lehrveranstaltung($lvid);
|
||||
|
||||
$worksheet->write(0,0,$p->t('anwesenheitsliste/notenliste')." ".($sprache=='English'?$lvobj->bezeichnung_english:$lvobj->bezeichnung),$format_bold);
|
||||
|
||||
$stg_obj = new studiengang($stg);
|
||||
|
||||
@@ -373,4 +373,8 @@ define('TESTTOOL_EXTERNE_UEBERWACHUNG_ALLOWED', false);
|
||||
|
||||
//enable tags in StudVW
|
||||
define('STV_TAGS_ENABLED', false);
|
||||
|
||||
//student accounts grace period
|
||||
define('STUDENTS_KEEP_PERMISSIONS_AFTER_USER_INACTIVE_PERIOD', '0 days');
|
||||
define('STUDENTS_KEEP_PERMISSIONS_AFTER_USER_INACTIVE_ROLES', serialize(array('NO_DEFINED_ROLE')));
|
||||
?>
|
||||
|
||||
@@ -340,6 +340,40 @@ class benutzerberechtigung extends basis_db
|
||||
return true;
|
||||
}
|
||||
|
||||
protected function hasPreStudentStatusInGracePeriod($uid)
|
||||
{
|
||||
$period = defined('STUDENTS_KEEP_PERMISSIONS_AFTER_USER_INACTIVE_PERIOD')
|
||||
? STUDENTS_KEEP_PERMISSIONS_AFTER_USER_INACTIVE_PERIOD
|
||||
: '0 days';
|
||||
$mapfunc = function($val) {
|
||||
return $this->db_add_param($val);
|
||||
};
|
||||
$roles = defined('STUDENTS_KEEP_PERMISSIONS_AFTER_USER_INACTIVE_ROLES')
|
||||
? implode(', ', array_map($mapfunc, unserialize(STUDENTS_KEEP_PERMISSIONS_AFTER_USER_INACTIVE_ROLES)))
|
||||
: 'NO_DEFINED_ROLE';
|
||||
|
||||
$sql = <<<EOSQL
|
||||
SELECT
|
||||
1
|
||||
FROM
|
||||
campus.vw_student vs
|
||||
WHERE
|
||||
vs.uid = {$this->db_add_param($uid)}
|
||||
AND
|
||||
vs.aktiv = false
|
||||
AND
|
||||
public.get_rolle_prestudent(vs.prestudent_id, null) IN ({$roles})
|
||||
AND
|
||||
(vs.updateaktivam + INTERVAL {$this->db_add_param($period)})::date >= CURRENT_DATE
|
||||
EOSQL;
|
||||
$result = $this->db_query($sql);
|
||||
if($result && $this->db_num_rows($result) > 0)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt die Berechtigungen eines Users
|
||||
* @param $uid
|
||||
@@ -355,7 +389,8 @@ class benutzerberechtigung extends basis_db
|
||||
if($row = $this->db_fetch_object($result))
|
||||
{
|
||||
// Wenn die Person nicht aktiv ist dann hat diese auch keine Rechte
|
||||
if($this->db_parse_bool($row->aktiv) == false)
|
||||
if($this->db_parse_bool($row->aktiv) == false
|
||||
&& $this->hasPreStudentStatusInGracePeriod($uid) === false)
|
||||
return false;
|
||||
}
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user