From d11603f93377373c4197453da3b893c8e6ba0251 Mon Sep 17 00:00:00 2001
From: satish <satish.dvnk@vtiger.com>
Date: Fri, 29 Dec 2017 12:29:10 +0530
Subject: [PATCH] Transfer shared custom filters to new owner when user is
 deleted

---
 include/Webservices/Utils.php | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/include/Webservices/Utils.php b/include/Webservices/Utils.php
index 1cd4b25c1..0ab0c697c 100644
--- a/include/Webservices/Utils.php
+++ b/include/Webservices/Utils.php
@@ -889,6 +889,25 @@ function vtws_transferOwnership($ownerId, $newOwnerId, $delete=true) {
 	
 	vtws_transferOwnershipForWorkflowTasks($ownerModel, $newOwnerModel);
     vtws_updateWebformsRoundrobinUsersLists($ownerId, $newOwnerId);
+
+	//transferring non-private filters (status not 1) of deleted user to new selected user
+	$db->pquery('UPDATE vtiger_customview SET userid = ? WHERE userid = ? AND status != ?', array($newOwnerId, $ownerId, 1));
+	//transferring private shared filters of deleted user to selected user
+	$db->pquery('UPDATE vtiger_customview SET userid = ? WHERE userid = ? AND status = ? AND cvid IN (SELECT cvid FROM vtiger_cv2users UNION SELECT cvid FROM vtiger_cv2group UNION SELECT cvid FROM vtiger_cv2role UNION SELECT cvid FROM vtiger_cv2rs)', array($newOwnerId, $ownerId, 1));
+
+	 if ($delete) {
+		//Delete from vtiger_users to vtiger_role vtiger_table
+		$db->pquery('DELETE FROM vtiger_users2group WHERE userid=?', array($ownerId));
+
+		//Mark user as deleted =1 
+		$db->pquery('UPDATE vtiger_users SET deleted=? WHERE id=?', array(1, $ownerId));
+
+		//Change the owner for report
+		$db->pquery('UPDATE vtiger_report SET owner=? WHERE owner=?', array($newOwnerId, $ownerId));
+
+		//Recalculate user privelege file
+		RecalculateSharingRules();
+	}
 }
 
 function vtws_updateWebformsRoundrobinUsersLists($ownerId, $newOwnerId){
-- 
GitLab