Mariusz Muszyński пре 8 година
родитељ
комит
4ac10df74c
2 измењених фајлова са 19 додато и 3 уклоњено
  1. 1 1
      SE/se-lib/Route/ChangePassword.php
  2. 18 2
      SE/se-lib/User.php

+ 1 - 1
SE/se-lib/Route/ChangePassword.php

@@ -158,7 +158,7 @@ $("input[type=password]").keyup(function(){
 		if (!($oldPass && $newPass && ($newPass == $newPassConfirm))) throw new Exception("Błąd formularza");
 
 		try {
-			$result = User::changePasswordDB($oldPass, $newPass);
+			$result = User::changePassword($oldPass, $newPass);
 			if ($result) SE_Layout::alert('success', "Pomyślnie zmieniono hasło");
 			else SE_Layout::alert('warning', "Nie zmieniono hasła");
 		} catch (Exception $e) {

+ 18 - 2
SE/se-lib/User.php

@@ -625,16 +625,32 @@ class User {
 		return ($db->affected_rows() > 0);
 	}
 
-	public static function changePasswordDB($oldPass, $newPass) {
+	public static function changePassword($oldPass, $newPass) {
 		if (!is_string($newPass)) throw new Exception("Błąd parametru");
 		if (strlen($newPass) < 8) throw new Exception("Hasło zbyt krótkie (min. 8 znaków)"); // TODO regex 1 mala litera, 1 mala litera, 1 cyfra, min. 8 znakow
 		if (!self::logged()) throw new Exception("Użytkownik niezalogwany");
 
+		Lib::loadClass('LDAP');
+		$ldap = LDAP::getInstance();
+
+		if ($ldap != null && $ldap->isConnected()) {
+			self::changePasswordLDAP($oldPass, $newPass);
+		} else {
+			self::changePasswordDB($oldPass, $newPass);
+		}
+	}
+
+	public static function changePasswordLDAP($oldPass, $newPass) {
+		throw new Exception("changePassword::LDAP not implemented yet"); // TODO
+	}
+
+	public static function changePasswordDB($oldPass, $newPass) {
 		try {
-			if (!($user = self::loginByDB(self::getLogin(), $oldPass))) return false;
+			$user = self::loginByDB(self::getLogin(), $oldPass);
 		} catch (Exception $e) {
 			throw new Exception("Błędne hasło");
 		}
+		if (!$user) throw new Exception("Błąd weryfikacji użytkownika");
 
 		$affected = DB::getPDO()->update('ADMIN_USERS', 'ID', $user->ID, [
 			'ADM_PASSWD' => '',