Преглед на файлове

Sync users - dont create disabled users

Piotr Labudda преди 10 години
родител
ревизия
b57a2893ab
променени са 1 файла, в които са добавени 15 реда и са изтрити 8 реда
  1. 15 8
      SE/se-lib/SyncUsers.php

+ 15 - 8
SE/se-lib/SyncUsers.php

@@ -21,11 +21,18 @@ class SyncUsers {
 		$syncDisabled = true;
 		$syncDisabled = true;
 		$usrFrom = $this->_fromStorage->getUser($usrLogin);
 		$usrFrom = $this->_fromStorage->getUser($usrLogin);
 		$usrTo = $this->_toStorage->getUser($usrLogin);
 		$usrTo = $this->_toStorage->getUser($usrLogin);
+		$usrFromDisabeld = null;
+		$usrToDisabeld = null;
 		if (!$usrFrom) throw new Exception("Użytkownik '{$usrLogin}' nie istnieje w bazie danych");
 		if (!$usrFrom) throw new Exception("Użytkownik '{$usrLogin}' nie istnieje w bazie danych");
 
 
 		DBG::_('DBG_SU', '>0', 'usrFrom', $usrFrom, __CLASS__, __FUNCTION__, __LINE__);
 		DBG::_('DBG_SU', '>0', 'usrFrom', $usrFrom, __CLASS__, __FUNCTION__, __LINE__);
 		DBG::_('DBG_SU', '>0', 'usrTo', $usrTo, __CLASS__, __FUNCTION__, __LINE__);
 		DBG::_('DBG_SU', '>0', 'usrTo', $usrTo, __CLASS__, __FUNCTION__, __LINE__);
 
 
+		$usrFromDisabeld = $this->_fromStorage->isDisabled($usrFrom);
+		if (!$usrTo && true === $usrFromDisabeld) {
+			throw new Exception("Użytkownik '{$usrLogin}' nie istnieje w bazie LDAP. Jest zablokowany bazie danych, więc nie ma potrzeby tworzenia go w bazie LDAP.");
+		}
+
 		if (!$usrTo) {
 		if (!$usrTo) {
 			$this->_toStorage->createUser($usrFrom);
 			$this->_toStorage->createUser($usrFrom);
 			$usrTo = $this->_toStorage->getUser($usrLogin);
 			$usrTo = $this->_toStorage->getUser($usrLogin);
@@ -36,15 +43,10 @@ class SyncUsers {
 			$this->syncExistingUser($usrLogin, $usrFrom, $usrTo);
 			$this->syncExistingUser($usrLogin, $usrFrom, $usrTo);
 		}
 		}
 
 
-		$usrFromDisabeld = null;
-		$usrToDisabeld = null;
 		{// $syncDisabled
 		{// $syncDisabled
-			$usrFrom = $this->_fromStorage->getUser($usrLogin);
 			$usrTo = $this->_toStorage->getUser($usrLogin);
 			$usrTo = $this->_toStorage->getUser($usrLogin);
-			if (!$usrFrom) throw new Exception("Użytkownik '{$usrLogin}' nie istnieje w bazie danych");
 			if (!$usrTo) throw new Exception("Użytkownik '{$usrLogin}' nie istnieje w bazie LDAP");
 			if (!$usrTo) throw new Exception("Użytkownik '{$usrLogin}' nie istnieje w bazie LDAP");
 
 
-			$usrFromDisabeld = $this->_fromStorage->isDisabled($usrFrom);
 			$usrToDisabeld = $this->_toStorage->isDisabled($usrTo);
 			$usrToDisabeld = $this->_toStorage->isDisabled($usrTo);
 			if (null === $usrFromDisabeld) throw new Exception("Nieznany status blokady dla użytkownika '{$usrLogin}' w bazie danych");
 			if (null === $usrFromDisabeld) throw new Exception("Nieznany status blokady dla użytkownika '{$usrLogin}' w bazie danych");
 			if (null === $usrToDisabeld) throw new Exception("Nieznany status blokady dla użytkownika '{$usrLogin}' w bazie LDAP");
 			if (null === $usrToDisabeld) throw new Exception("Nieznany status blokady dla użytkownika '{$usrLogin}' w bazie LDAP");
@@ -119,10 +121,16 @@ class SyncUsers {
 		$usrTo = $this->_toStorage->getUser($usrLogin);
 		$usrTo = $this->_toStorage->getUser($usrLogin);
 
 
 		if (!$usrFrom) {
 		if (!$usrFrom) {
-			$syncTodoList[] = "User {$usrLogin} not exists in fromStorage";
+			$syncTodoList[] = "Użytkownik {$usrLogin} nie istnieje w bazie danych";
 			return $syncTodoList;
 			return $syncTodoList;
 		}
 		}
-		else if (!$usrTo) {
+		$usrFromDisabeld = $this->_fromStorage->isDisabled($usrFrom);
+
+		if (!$usrTo && true === $usrFromDisabeld) {
+			throw new Exception("Użytkownik '{$usrLogin}' nie istnieje w bazie LDAP. Jest zablokowany bazie danych, więc nie ma potrzeby tworzenia go w bazie LDAP.");
+		}
+
+		if (!$usrTo) {
 			$syncDisabled = false;
 			$syncDisabled = false;
 			$syncTodoList[] = "Create user {$usrLogin} in toStorage";
 			$syncTodoList[] = "Create user {$usrLogin} in toStorage";
 		}
 		}
@@ -142,7 +150,6 @@ class SyncUsers {
 			}
 			}
 		}
 		}
 
 
-		$usrFromDisabeld = $this->_fromStorage->isDisabled($usrFrom);
 		$usrToDisabeld = $this->_toStorage->isDisabled($usrTo);
 		$usrToDisabeld = $this->_toStorage->isDisabled($usrTo);
 		if ($syncDisabled) {
 		if ($syncDisabled) {