@@ -84,7 +87,7 @@ echo $p->t('passwort/InfotextPolicy').'
if(isset($_POST['change']))
{
- if(!isset($_POST['passwort_alt'])
+ if(!isset($_POST['passwort_alt'])
|| !isset($_POST['passwort_neu'])
|| !isset($_POST['passwort_neu_check']))
{
@@ -99,7 +102,7 @@ if(isset($_POST['change']))
if($passwort_neu==$passwort_neu_check)
{
// Passwort Policy pruefen
- if(($errormsg = check_policy($passwort_neu, $p))===true)
+ if(($errormsg = check_policy($passwort_neu, $p, $passwort_alt))===true)
{
// Passwort aendern
if(($msg = change_password($passwort_alt, $passwort_neu, $uid))===true)
diff --git a/config/global.config-default.inc.php b/config/global.config-default.inc.php
index 34b1d6751..ba24752e3 100644
--- a/config/global.config-default.inc.php
+++ b/config/global.config-default.inc.php
@@ -47,6 +47,10 @@ define('CIS_LVALISTE_NOTENEINGABE_ANZEIGEN',true);
// Anzeige des LV-Plan Links bei globaler Suche
define('CIS_SUCHE_LVPLAN_ANZEIGEN',true);
+// Soll geprueft werden ob das Passwort innerhalb des letzten Jahres geaendert wurde true|false
+// Wenn dies nicht geaendert wurde wird nach dem Login auf die Passwort aendern Seite umgeleitet
+define('CIS_CHECK_PASSWORD_CHANGE',false);
+
// Link zu den Excel Notenlisten im CIS Anzeigen
define('CIS_ANWESENHEITSLISTE_NOTENLISTE_ANZEIGEN',true);
diff --git a/include/tw/passwort.inc.php b/include/tw/passwort.inc.php
index 2c02d396b..c5b170cbf 100644
--- a/include/tw/passwort.inc.php
+++ b/include/tw/passwort.inc.php
@@ -31,7 +31,7 @@ $passwort_addons = new addon();
foreach($passwort_addons->aktive_addons as $addon)
{
$passwort_addon_filename = dirname(__FILE__).'/../../addons/'.$addon.'/vilesci/passwort.inc.php';
-
+
if(file_exists($passwort_addon_filename))
{
include($passwort_addon_filename);
@@ -42,7 +42,7 @@ foreach($passwort_addons->aktive_addons as $addon)
if(!$passwort_addon_found)
{
-
+
/**
* Prueft die Passwort Policy
* Das Passwort muss zumindest 8 Zeichen enthalten, davon mindestens 1 Großbuchstabe,
@@ -52,9 +52,10 @@ if(!$passwort_addon_found)
*
* @param $passwort_neu das neue Passwort
* @param $p Phrasen Objekt - Wenn nicht uebergeben werden die Fehler in der Default Langauge angezeigt
+ * @param $passwort_alt Altes Passwort bei Passwortaenderung
* @return errormsg wenn Policy nicht erfuellt ist oder true wenn ok
*/
- function check_policy($passwort_neu, $p=null)
+ function check_policy($passwort_neu, $p=null, $passwort_alt=null)
{
if(is_null($p))
$p = new phrase(DEFAULT_LANGUAGE);
@@ -69,6 +70,15 @@ if(!$passwort_addon_found)
$errormsg .= $p->t('passwort/MinLaenge');
}
+ // Altes Passwort darf nicht gleich dem neuen sein
+ if(!is_null($passwort_alt) && $passwort_alt!='')
+ {
+ if($passwort_neu == $passwort_alt)
+ {
+ $error=true;
+ $errormsg .= $p->t('passwort/nichtGleich');
+ }
+ }
// Mindestens 1 Großbuchstabe
if(!preg_match('/[A-Z]/', $passwort_neu))
{
@@ -115,7 +125,7 @@ if(!$passwort_addon_found)
else
return true;
}
-
+
/**
* Aendert das Passwort im LDAP
* @param $passwort_alt Altes (aktuelles) Passwort
@@ -145,7 +155,7 @@ if(!$passwort_addon_found)
$encrypted = base64_encode(pack('H*',hash('sha1',$passwort_neu.$salt)).$salt);
$ssha_password = '{SSHA}'.$encrypted;
- // LM und NT
+ // LM und NT
//$hash = new Crypt_CHAP_MSv2();
//$hash->password = $passwort_neu;
// $lm_password = strtoupper(bin2hex($hash->lmPasswordHash()));
diff --git a/locale/de-AT/passwort.php b/locale/de-AT/passwort.php
index e6822af8c..1654b8345 100755
--- a/locale/de-AT/passwort.php
+++ b/locale/de-AT/passwort.php
@@ -30,4 +30,7 @@ $this->phrasen['passwort/CodeOderUsernameFalsch']='Code oder Username falsch';
$this->phrasen['passwort/CaptchaCodeFalsch']='Captcha Code falsch';
$this->phrasen['passwort/AccountErfolgreichAktiviert']='Ihr Account wurde erfolgreich aktiviert';
$this->phrasen['passwort/WeiterZumLogin']='Weiter zum Login';
+$this->phrasen['passwort/RequiredToChangeInfo']='Sie haben Ihr Passwort seit über einem Jahr nicht mehr geändert.
+Bitte ändern Sie umgehend Ihr Passwort';
+$this->phrasen['passwort/nichtGleich']='Das neue Passwort muss sich vom alten Passwort unterscheiden.';
?>
diff --git a/locale/en-US/passwort.php b/locale/en-US/passwort.php
index ba010c2f0..f0fe46eb7 100755
--- a/locale/en-US/passwort.php
+++ b/locale/en-US/passwort.php
@@ -30,5 +30,7 @@ $this->phrasen['passwort/CodeOderUsernameFalsch']='Code or Username wrong';
$this->phrasen['passwort/CaptchaCodeFalsch']='Captcha Code wrong';
$this->phrasen['passwort/AccountErfolgreichAktiviert']='Account has been activated successfully';
$this->phrasen['passwort/WeiterZumLogin']='Proceed to Login';
-
+$this->phrasen['passwort/RequiredToChangeInfo']='You have not changed your password for over a year.
+Please change your password immediately';
+$this->phrasen['passwort/nichtGleich']='The new password must be different from the old password.';
?>