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