From a2f2ffb8dbcb7f9cb0fe139f592be0d4772bec20 Mon Sep 17 00:00:00 2001
From: Arthur Schiwon <blizzz@owncloud.com>
Date: Fri, 30 Oct 2015 19:20:42 +0100
Subject: [PATCH] if a user that is flag as deleted shows up again, remove that
 flag. Fixes #20090

---
 apps/user_ldap/lib/access.php           | 5 +++++
 apps/user_ldap/lib/user/offlineuser.php | 7 +++++++
 2 files changed, 12 insertions(+)

diff --git a/apps/user_ldap/lib/access.php b/apps/user_ldap/lib/access.php
index dd8ffe14bc..bb423ecb01 100644
--- a/apps/user_ldap/lib/access.php
+++ b/apps/user_ldap/lib/access.php
@@ -35,6 +35,7 @@
 
 namespace OCA\user_ldap\lib;
 
+use OCA\user_ldap\lib\user\OfflineUser;
 use OCA\User_LDAP\Mapping\AbstractMapping;
 
 /**
@@ -696,6 +697,10 @@ class Access extends LDAPUtility implements user\IUserTools {
 			$ocName  = $this->dn2ocname($userRecord['dn'][0], $userRecord[$displayNameAttribute]);
 			$this->cacheUserExists($ocName);
 			$user = $this->userManager->get($ocName);
+			if($user instanceof OfflineUser) {
+				$user->unmark();
+				$user = $this->userManager->get($ocName);
+			}
 			$user->processAttributes($userRecord);
 		}
 	}
diff --git a/apps/user_ldap/lib/user/offlineuser.php b/apps/user_ldap/lib/user/offlineuser.php
index 72c0242792..3456a27b41 100644
--- a/apps/user_ldap/lib/user/offlineuser.php
+++ b/apps/user_ldap/lib/user/offlineuser.php
@@ -85,6 +85,13 @@ class OfflineUser {
 		$this->fetchDetails();
 	}
 
+	/**
+	 * remove the Delete-flag from the user.
+	 */
+	public function unmark() {
+		$this->config->setUserValue($this->ocName, 'user_ldap', 'isDeleted', '0');
+	}
+
 	/**
 	 * exports the user details in an assoc array
 	 * @return array
-- 
GitLab