Parcourir la source

Fix add user group - update old record by uniq key

Piotr Labudda il y a 11 ans
Parent
commit
1d59ace878
1 fichiers modifiés avec 24 ajouts et 3 suppressions
  1. 24 3
      SE/se-lib/UserStorageDB.php

+ 24 - 3
SE/se-lib/UserStorageDB.php

@@ -480,9 +480,30 @@ class UserStorageDB extends UserStorageBase {
 		$sqlObj->REMOTE_TABLE = 'ADMIN_USERS';
 		$sqlObj->REMOTE_ID = $usrDB->primaryKey;
 		$sqlObj->T_TELBOX_NEIGHBOUR_IN_ID = $telboxID;
-		$rowID = $this->_db->ADD_NEW_OBJ('CRM_AUTH_PROFILE', $sqlObj);
-		if ($rowID > 0) {
-			return true;
+		$sqlObj->A_STATUS = 'NORMAL';
+
+		// uniq key: (ID_ZASOB, REMOTE_ID, REMOTE_TABLE, T_TELBOX_NEIGHBOUR_IN_ID)
+		$sql = "select `ID`
+			from `CRM_AUTH_PROFILE`
+			where `ID_ZASOB`='{$sqlObj->ID_ZASOB}'
+				and `REMOTE_TABLE`='{$sqlObj->REMOTE_TABLE}'
+				and `REMOTE_ID`='{$sqlObj->REMOTE_ID}'
+				and `T_TELBOX_NEIGHBOUR_IN_ID`='{$sqlObj->T_TELBOX_NEIGHBOUR_IN_ID}'
+		";
+		$db = DB::getDB();
+		$res = $db->query($sql);
+		if ($r = $db->fetch($res)) {
+			$sqlObj->ID = $r->ID;
+			$affexted = $this->_db->UPDATE_OBJ('CRM_AUTH_PROFILE', $sqlObj);
+			if ($affexted > 0) {
+				return true;
+			}
+		}
+		else {
+			$rowID = $this->_db->ADD_NEW_OBJ('CRM_AUTH_PROFILE', $sqlObj);
+			if ($rowID > 0) {
+				return true;
+			}
 		}
 		return false;
 	}