RANGER-4684 Need to update createdBy ,updatedBy field for gds objects in case the creator is deleted

Signed-off-by: Dineshkumar Yadav <dineshkumar.yadav@outlook.com>
diff --git a/security-admin/src/main/java/org/apache/ranger/common/db/BaseDao.java b/security-admin/src/main/java/org/apache/ranger/common/db/BaseDao.java
index a0ff189..61cb983 100644
--- a/security-admin/src/main/java/org/apache/ranger/common/db/BaseDao.java
+++ b/security-admin/src/main/java/org/apache/ranger/common/db/BaseDao.java
@@ -47,6 +47,7 @@
 	private static final String PROP_BATCH_DELETE_BATCH_SIZE    = "ranger.admin.dao.batch.delete.batch.size";
 	private static final int    DEFAULT_BATCH_DELETE_BATCH_SIZE = 1000;
 	private static       int    BATCH_DELETE_BATCH_SIZE;
+	private static final String GDS_TABLES = "x_gds_";
 
 	static {
 		try {
@@ -348,11 +349,12 @@
 		Table table = tClass.getAnnotation(Table.class);
 		if(table != null) {
 			String tableName = table.name();
-			String query = "update " + tableName + " set " + paramName+"=null"
-					+ " where " +paramName+"=" + oldID;
+			String updatedValue = tableName.contains(GDS_TABLES) ? "1" : "null";
+			String query = "update " + tableName + " set " + paramName+"=" + updatedValue + " where " +paramName+"=" + oldID;
+
 			int count=getEntityManager().createNativeQuery(query).executeUpdate();
 			if(count>0){
-				logger.warn(count + " records updated in table '" + tableName + "' with: set " + paramName + "=null where " + paramName + "=" + oldID);
+				logger.warn(count + " records updated in table '" + tableName + "' with: set " + paramName + "="+ updatedValue + " where " + paramName + "=" + oldID);
 			}
 		}else{
 			logger.warn("Required annotation `Table` not found");
diff --git a/security-admin/src/main/java/org/apache/ranger/service/XPortalUserService.java b/security-admin/src/main/java/org/apache/ranger/service/XPortalUserService.java
index 85e457e..0ced556 100644
--- a/security-admin/src/main/java/org/apache/ranger/service/XPortalUserService.java
+++ b/security-admin/src/main/java/org/apache/ranger/service/XPortalUserService.java
@@ -326,5 +326,17 @@
 		daoManager.getXXPolicyRefRole().updateUserIDReference("upd_by_id", xXPortalUserId);
 		daoManager.getXXRole().updateUserIDReference("added_by_id", xXPortalUserId);
 		daoManager.getXXRole().updateUserIDReference("upd_by_id", xXPortalUserId);
+		daoManager.getXXGdsDataset().updateUserIDReference("added_by_id", xXPortalUserId);
+		daoManager.getXXGdsDataset().updateUserIDReference("upd_by_id", xXPortalUserId);
+		daoManager.getXXGdsDataShare().updateUserIDReference("added_by_id", xXPortalUserId);
+		daoManager.getXXGdsDataShare().updateUserIDReference("upd_by_id", xXPortalUserId);
+		daoManager.getXXGdsProject().updateUserIDReference("added_by_id", xXPortalUserId);
+		daoManager.getXXGdsProject().updateUserIDReference("upd_by_id", xXPortalUserId);
+		daoManager.getXXGdsSharedResource().updateUserIDReference("added_by_id", xXPortalUserId);
+		daoManager.getXXGdsSharedResource().updateUserIDReference("upd_by_id", xXPortalUserId);
+		daoManager.getXXGdsDataShareInDataset().updateUserIDReference("added_by_id", xXPortalUserId);
+		daoManager.getXXGdsDataShareInDataset().updateUserIDReference("upd_by_id", xXPortalUserId);
+		daoManager.getXXGdsDatasetInProject().updateUserIDReference("added_by_id", xXPortalUserId);
+		daoManager.getXXGdsDatasetInProject().updateUserIDReference("upd_by_id", xXPortalUserId);
 	}
 }