فهرست منبع

fixed sync user first and last name

Piotr Labudda 9 سال پیش
والد
کامیت
2ac6053d37
5فایلهای تغییر یافته به همراه36 افزوده شده و 22 حذف شده
  1. 4 0
      SE/se-lib/ObjectUser.php
  2. 4 20
      SE/se-lib/Route/Users.php
  3. 6 2
      SE/se-lib/SyncUsers.php
  4. 4 0
      SE/se-lib/UserStorageDB.php
  5. 18 0
      SE/se-lib/UserStorageMacOSX.php

+ 4 - 0
SE/se-lib/ObjectUser.php

@@ -13,6 +13,8 @@ class ObjectUser {
 	public $homePhone;
 	public $employeeType;// 'Pracownik','Kandydat','Partner','Anonymous'
 	public $isDisabled;// 1, 0 or null if not set
+	public $firstName;
+	public $lastName;
 
 	protected $_storage;
 
@@ -33,6 +35,8 @@ class ObjectUser {
 		$data->homePhone = $this->homePhone;
 		$data->employeeType = $this->employeeType;
 		$data->isDisabled = $this->isDisabled;
+		$data->firstName = $this->firstName;
+		$data->lastName = $this->lastName;
 		return $data;
 	}
 

+ 4 - 20
SE/se-lib/Route/Users.php

@@ -881,11 +881,7 @@ class Route_Users extends RouteBase {
 		if ('1' == V::get('_runSync', '', $_POST)) {
 			$synced = $synUsers->syncUser($userName);
 			if (!$synced) {
-				?>
-				<div class="alert alert-danger">
-					Nie udało się zsynchronizować uprawnień użytkownika <?php echo $userName; ?>.
-				</div>
-				<?php
+				UI::alert('danger', "Nie udało się zsynchronizować uprawnień użytkownika {$userName}.");
 				$errorsList = $synUsers->getErrorsMsgListWithDbg();
 				if (!empty($errorsList)) {
 					echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">';
@@ -894,21 +890,13 @@ class Route_Users extends RouteBase {
 				}
 			}
 			else {
-				?>
-				<div class="alert alert-success">
-					Synchronizacja uprawnień użytkownika <?php echo $userName; ?> zakończona powodzeniem.
-				</div>
-				<?php
+				UI::alert('success', "Synchronizacja uprawnień użytkownika {$userName} zakończona powodzeniem.");
 			}
 		}
 		if ('1' == V::get('_forceSyncAliasList', '', $_POST)) {
 			$synced = $synUsers->forceSyncUserAliasList($userName);
 			if (!$synced) {
-				?>
-				<div class="alert alert-danger">
-					Nie udało się poprawić aliasów <?php echo $userName; ?>.
-				</div>
-				<?php
+				UI::alert('danger', "Nie udało się poprawić aliasów {$userName}.");
 				$errorsList = $synUsers->getErrorsMsgListWithDbg();
 				if (!empty($errorsList)) {
 					echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">';
@@ -917,11 +905,7 @@ class Route_Users extends RouteBase {
 				}
 			}
 			else {
-				?>
-				<div class="alert alert-success">
-					Synchronizacja listy aliasów pocztowych użytkownika <?php echo $userName; ?> zakończona powodzeniem.
-				</div>
-				<?php
+				UI::alert('success', "Synchronizacja listy aliasów pocztowych użytkownika {$userName} zakończona powodzeniem.");
 			}
 		}
 

+ 6 - 2
SE/se-lib/SyncUsers.php

@@ -13,7 +13,7 @@ class SyncUsers {
 
 	/**
 	 * Sync user.
-	 * 
+	 *
 	 * @return bool or -int if error @see getSyncUserErrorMsg($errCode);
 	 */
 	public function syncUser($usrLogin) {
@@ -122,6 +122,8 @@ class SyncUsers {
 
 		$updateData = array();
 		if ($usrFrom->name != $usrTo->name) $updateData['name'] = $usrFrom->name;
+		if ($usrFrom->firstName != $usrTo->firstName) $updateData['firstName'] = $usrFrom->firstName;
+		if ($usrFrom->lastName != $usrTo->lastName) $updateData['lastName'] = $usrFrom->lastName;
 		{// check aliasesList
 			$diffFromTo = array_diff($usrFrom->aliasesList, $usrTo->aliasesList);
 			$diffToFrom = array_diff($usrTo->aliasesList, $usrFrom->aliasesList);
@@ -175,6 +177,8 @@ class SyncUsers {
 			//throw new Exception("Użytkownik '{$usrLogin}' jest zablokowany bazie danych, więc nie ma potrzeby aktualizacji jego danych w bazie LDAP.");
 			$updateData = array();
 			if ($usrFrom->name != $usrTo->name) $updateData['name'] = $usrFrom->name;
+			if ($usrFrom->firstName != $usrTo->firstName) $updateData['firstName'] = $usrFrom->firstName;
+			if ($usrFrom->lastName != $usrTo->lastName) $updateData['lastName'] = $usrFrom->lastName;
 			//if ($usrFrom->email != $usrTo->email) $updateData['email'] = $usrFrom->email;
 			{// check aliasesList
 				$diffFromTo = array_diff($usrFrom->aliasesList, $usrTo->aliasesList);
@@ -399,7 +403,7 @@ class SyncUsers {
 
 	/**
 	 * Sync user.
-	 * 
+	 *
 	 * @return bool or -int if error @see getSyncUserErrorMsg($errCode);
 	 */
 	public function syncGroup($idGroup, $syncNestedGroups = false) {

+ 4 - 0
SE/se-lib/UserStorageDB.php

@@ -80,6 +80,10 @@ class UserStorageDB extends UserStorageBase {
 		$user->homePhone = trim($r->homePhone);
 		$user->employeeType = $r->employeeType;
 		$user->isDisabled = ((int)$r->isDisabled)? true : false;
+
+		$exName = explode(' ', trim($r->name));
+		$user->lastName = array_pop($exName);
+		$user->firstName = (empty($exName)) ? $user->lastName : implode(' ', $exName);
 		return $user;
 	}
 

+ 18 - 0
SE/se-lib/UserStorageMacOSX.php

@@ -88,6 +88,8 @@ class UserStorageMacOSX extends UserStorageBase {
 		$user->homeEmail = V::get('carLicense', '', $usrLdap);
 		$user->homePhone = V::get('homePhone', '', $usrLdap);
 		$user->employeeType = V::get('employeeType', '', $usrLdap);
+		$user->firstName = V::get('givenName', '', $usrLdap);
+		$user->lastName = V::get('sn', '', $usrLdap);
 		return $user;
 	}
 
@@ -260,6 +262,22 @@ class UserStorageMacOSX extends UserStorageBase {
 						$ldap->mod_replace($userName, $attr);
 					}
 					break;
+				case 'firstName':
+					$ldap = $this->_getAdminLdap();
+					if ($ldap) {
+						$attr = array();
+						$attr['givenName'] = $val;
+						$ldap->mod_replace($userName, $attr);
+					}
+					break;
+				case 'lastName':
+					$ldap = $this->_getAdminLdap();
+					if ($ldap) {
+						$attr = array();
+						$attr['sn'] = $val;
+						$ldap->mod_replace($userName, $attr);
+					}
+					break;
 				case 'phone':
 					$ldap = $this->_getAdminLdap();
 					if ($ldap) {