diff --git a/CHANGELOG.md b/CHANGELOG.md index 62e6cfc71..6f9567085 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Change Log +## [Unreleased] + +### Added +- **[FAS]** Verwaltung von Rechnungsadressen +- **[CIS]** Mitarbeiter und Studierende können nach dem Login im CIS zur Passwortänderung umgeleitet werden wenn dieses seit über einem Jahr nicht geändert wurde +- **[FAS]** Bei Statuswechsel von Studierenden können Gründe für den Statuswechsel angegeben werden + ## [3.2] ### Added @@ -26,7 +33,7 @@ - **[FAS]** Es ist möglich bei Statusänderungen im FAS automatisierte Nachrichten an die Studierenden zu senden - **[FAS]** Bewerberakt - Erstellung eines Akts mit allen hochgeladenen Dokumenten einer Person - **[FAS]** Bewerbungsfristen für einzelen Studienpläne -- **[FAS]** Beim Statuswechsel kann ein Statusgrund hinterlegt werden. +- **[FAS]** Beim Statuswechsel kann ein Statusgrund hinterlegt werden. - **[FAS]** Es kann pro Studiengang hinterlegt werden ob ein Dokument nachreichbar ist oder nicht - **[FAS]** Arbeitsplätze bei Räumen (zB für EDV Säle mit 50 Plätzen aber nur 25 PCs) - **[FAS]** Zuteilung von Prestudenten zu Aufnahmegruppen @@ -56,7 +63,7 @@ - **[FAS]** Mehrsprachigkeitsspalte tbl_status.bezeichnung_mehrsprachig wird durch das Updatescript automatisch in den ersten beiden Sprachen mit der status_kurzbz vorbefüllt. Übersetzungen sind anzupassen. - **[MOODLE]** Neue Webservicefunktion core_user_update_users wird benötigt - **[CORE]** Kommune wurde aus Core entfernt -- **[DEPRECATED]]** WaWi wurde in ein Addon (FHC-ADDON-WAWI) ausgelagert. Die Funktionalität im Core wird demnächst entfernt. +- **[DEPRECATED]]** WaWi wurde in ein Addon (FHC-ADDON-WAWI) ausgelagert. Die Funktionalität im Core wird demnächst entfernt. - **[DEPRECATED]]** LV-Informationen (FHC-ADDON-LVINFO) wurde in ein Addon ausgelagert. Die Funktionalität im Core wird demnächst entfernt - **[DEPRECATED]]** Punkte1, Punkte2 und Punkte3 in tbl_prestudent werden nicht mehr verwendet und in zukünftigen Versionen entfernt. Diese werden jetzt in tbl_rt_person gespeichert - **[DEPRECATED]]** anmeldungreihungstest in tbl_prestudent wird nicht mehr verwendet und in zukünftigen Versionen entfernt diff --git a/application/core/DB_Model.php b/application/core/DB_Model.php index 4a7e561d8..db6e11408 100644 --- a/application/core/DB_Model.php +++ b/application/core/DB_Model.php @@ -429,6 +429,29 @@ class DB_Model extends FHC_Model return success(true); } + /** --------------------------------------------------------------- + * Add a table in the from clause + * + * @return void + */ + public function addFrom($table, $alias = null) + { + $tmpTable = trim($table); + + // Check parameters + if (empty($tmpTable)) + return error(FHC_MODEL_ERROR, FHC_MODEL_ERROR); + + if (!empty($alias)) + { + $tmpTable .= ' AS ' . $alias; + } + + $this->db->from($tmpTable); + + return success(true); + } + /** --------------------------------------------------------------- * Reset the query builder state * diff --git a/application/models/organisation/Studiengang_model.php b/application/models/organisation/Studiengang_model.php index acd571df3..c37f1a892 100644 --- a/application/models/organisation/Studiengang_model.php +++ b/application/models/organisation/Studiengang_model.php @@ -244,14 +244,15 @@ class Studiengang_model extends DB_Model if (($isEntitled = $this->isEntitled('public.tbl_prestudent', PermissionLib::SELECT_RIGHT, FHC_NORIGHT, FHC_MODEL_ERROR)) !== true) return $isEntitled; + $this->addFrom( + '(SELECT * FROM public.tbl_reihungstest LEFT JOIN public.tbl_rt_studienplan USING(reihungstest_id))', + 'tbl_reihungstest' + ); + $this->addJoin('lehre.tbl_studienordnung', 'studiengang_kz'); $this->addJoin('lehre.tbl_studienplan', 'studienordnung_id'); - $this->addJoin('public.tbl_rt_studienplan', 'studienplan_id'); - - $this->addJoin('public.tbl_reihungstest', 'reihungstest_id'); - $this->addJoin('public.tbl_prestudentstatus', 'studienplan_id'); $this->addJoin('public.tbl_prestudent', 'prestudent_id'); @@ -263,6 +264,8 @@ class Studiengang_model extends DB_Model array('tbl_reihungstest'), 'tbl_prestudentstatus.status_kurzbz = \'Interessent\' AND (tbl_prestudentstatus.rt_stufe = tbl_reihungstest.stufe OR tbl_reihungstest.stufe IS NULL) + AND (tbl_prestudent.aufnahmegruppe_kurzbz = tbl_reihungstest.aufnahmegruppe_kurzbz OR tbl_reihungstest.aufnahmegruppe_kurzbz IS NULL) + AND (tbl_prestudentstatus.studienplan_id = tbl_reihungstest.studienplan_id OR tbl_reihungstest.studienplan_id IS NULL) AND tbl_reihungstest.oeffentlich = TRUE AND tbl_reihungstest.datum > NOW() AND tbl_reihungstest.anmeldefrist >= NOW() diff --git a/cis/index.php b/cis/index.php index 4d6453788..8fa3d3cc5 100644 --- a/cis/index.php +++ b/cis/index.php @@ -22,12 +22,48 @@ * */ require_once('../config/cis.config.inc.php'); +require_once('../config/global.config.inc.php'); require_once('../include/functions.inc.php'); require_once('../include/sprache.class.php'); require_once('../include/phrasen.class.php'); require_once('../include/mail.class.php'); require_once('../include/student.class.php'); +$redirectPasswordChange=false; +if(defined('CIS_CHECK_PASSWORD_CHANGE') && CIS_CHECK_PASSWORD_CHANGE==true) +{ + require_once('../addons/ldap/vilesci/ldap.class.php'); + $user = get_uid(); + $password = $_SERVER['PHP_AUTH_PW']; + $ldap = new ldap(); + $ldap->connect(); + $userdn = $ldap->GetUserDN($user); + $ldap = new ldap(); + if($ldap->connect(LDAP_SERVER, LDAP_PORT, $userdn, $password)) + { + $lastchange = $ldap->getEntry($user,'shadowLastChange'); + if(isset($lastchange[0]) + && isset($lastchange[0]['shadowlastchange']) + && isset($lastchange[0]['shadowlastchange'][0])) + { + $shadowlastchange = $lastchange[0]['shadowlastchange'][0]; + } + else + $shadowlastchange = 0; + + // get unix timestamp 1 year ago + $dt = new DateTime(); + $dt1year = $dt->sub(new DateInterval('P12M')); + $ux1year = $dt1year->format('U'); + + if($shadowlastchange <= $ux1year) + $redirectPasswordChange = true; + else + $redirectPasswordChange = false; + } + else + die('Bind Failed'.$ldap->errormsg); +} /** * Prueft die URL damit keine boesen URLS uebergeben werden koennen * @param $param @@ -46,9 +82,9 @@ function validURLCheck($param) $text.="\nFolgende URL wurde versucht aufzurufen: \n".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']; $text.="\n\nIP des Aufrufers: ".$_SERVER['REMOTE_ADDR']; $text.="\n\nUserAgent: ".$_SERVER['HTTP_USER_AGENT']; - + $text.="\n\nAuffälliger Value: $param"; - + $mail = new mail(MAIL_ADMIN, 'no-reply@'.DOMAIN, 'Versuchte XSS Attacke', $text); $mail->send(); die('Invalid URL detected'); @@ -74,7 +110,7 @@ if(isset($_GET['content_id'])) } else $id = ''; - + if(isset($_GET['menu'])) { $menu = $_GET['menu']; @@ -82,7 +118,7 @@ if(isset($_GET['menu'])) } else $menu = 'menu.php?content_id='.$id; - + $user = get_uid(); $student = new student(); if($student->load($user)) @@ -113,14 +149,17 @@ else else $content = '../cms/news.php?studiengang_kz='.$studiengang_kz.'&semester='.$semester.''; } - + +if($redirectPasswordChange) + $content = '../cis/private/profile/change_password.php?requiredtochange=true'; + $sprache = getSprache(); $p = new phrasen($sprache); $db = new basis_db(); ?>
- +
-
+
| - |
|
