You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by ma...@apache.org on 2023/10/27 17:36:13 UTC

(ranger) 01/03: RANGER-4035: DB schema update to persist XXAccessTypeDef.category - #2

This is an automated email from the ASF dual-hosted git repository.

madhan pushed a commit to branch RANGER-3923
in repository https://gitbox.apache.org/repos/asf/ranger.git

commit 932f96a91f86a2ade28b2a98e9ecd4406e4f4d81
Author: Madhan Neethiraj <ma...@apache.org>
AuthorDate: Wed Oct 25 23:01:00 2023 -0700

    RANGER-4035: DB schema update to persist XXAccessTypeDef.category - #2
---
 .../ranger/plugin/store/AbstractServiceStore.java  |   1 +
 .../optimized/current/ranger_core_db_mysql.sql     |   1 +
 .../optimized/current/ranger_core_db_postgres.sql  |   1 +
 .../org/apache/ranger/entity/XXAccessTypeDef.java  | 102 ++++++---------------
 .../service/RangerServiceDefServiceBase.java       |  24 +++++
 5 files changed, 57 insertions(+), 72 deletions(-)

diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/store/AbstractServiceStore.java b/agents-common/src/main/java/org/apache/ranger/plugin/store/AbstractServiceStore.java
index dc786a457..5c06cd602 100644
--- a/agents-common/src/main/java/org/apache/ranger/plugin/store/AbstractServiceStore.java
+++ b/agents-common/src/main/java/org/apache/ranger/plugin/store/AbstractServiceStore.java
@@ -223,6 +223,7 @@ public abstract class AbstractServiceStore implements ServiceStore {
 				tagAccessType.setName(prefix + svcAccessType.getName());
 				tagAccessType.setLabel(svcAccessType.getLabel());
 				tagAccessType.setRbKeyLabel(svcAccessType.getRbKeyLabel());
+				tagAccessType.setCategory(svcAccessType.getCategory());
 
 				tagAccessType.setImpliedGrants(new HashSet<String>());
 				if (CollectionUtils.isNotEmpty(svcAccessType.getImpliedGrants())) {
diff --git a/security-admin/db/mysql/optimized/current/ranger_core_db_mysql.sql b/security-admin/db/mysql/optimized/current/ranger_core_db_mysql.sql
index 17092d486..1e0fe8745 100644
--- a/security-admin/db/mysql/optimized/current/ranger_core_db_mysql.sql
+++ b/security-admin/db/mysql/optimized/current/ranger_core_db_mysql.sql
@@ -794,6 +794,7 @@ CREATE TABLE `x_access_type_def` (
 `name` varchar(1024) DEFAULT NULL,
 `label` varchar(1024) DEFAULT NULL,
 `rb_key_label` varchar(1024) DEFAULT NULL,
+`category` smallint DEFAULT NULL,
 `sort_order` int DEFAULT 0,
 `datamask_options` varchar(1024) NULL DEFAULT NULL,
 `rowfilter_options` varchar(1024) NULL DEFAULT NULL,
diff --git a/security-admin/db/postgres/optimized/current/ranger_core_db_postgres.sql b/security-admin/db/postgres/optimized/current/ranger_core_db_postgres.sql
index 7371cd6d0..83286a952 100644
--- a/security-admin/db/postgres/optimized/current/ranger_core_db_postgres.sql
+++ b/security-admin/db/postgres/optimized/current/ranger_core_db_postgres.sql
@@ -731,6 +731,7 @@ item_id BIGINT NOT NULL,
 name VARCHAR(1024) DEFAULT NULL NULL,
 label VARCHAR(1024) DEFAULT NULL NULL,
 rb_key_label VARCHAR(1024) DEFAULT NULL NULL,
+category SMALLINT DEFAULT NULL NULL,
 sort_order INT DEFAULT '0' NULL,
 datamask_options VARCHAR(1024) DEFAULT NULL NULL,
 rowfilter_options VARCHAR(1024) DEFAULT NULL NULL,
diff --git a/security-admin/src/main/java/org/apache/ranger/entity/XXAccessTypeDef.java b/security-admin/src/main/java/org/apache/ranger/entity/XXAccessTypeDef.java
index 200a51d33..846479d89 100644
--- a/security-admin/src/main/java/org/apache/ranger/entity/XXAccessTypeDef.java
+++ b/security-admin/src/main/java/org/apache/ranger/entity/XXAccessTypeDef.java
@@ -19,6 +19,7 @@
 package org.apache.ranger.entity;
 
 import javax.persistence.*;
+import java.util.Objects;
 
 @Entity
 @Cacheable
@@ -82,6 +83,12 @@ public class XXAccessTypeDef extends XXDBBase implements java.io.Serializable {
 	@Column(name = "rb_key_label")
 	protected String rbKeyLabel;
 
+	/**
+	 * category of the XXAccessTypeDef
+	 */
+	@Column(name = "category")
+	protected Short category;
+
 	/**
 	 * order of the XXAccessTypeDef
 	 * <ul>
@@ -229,6 +236,14 @@ public class XXAccessTypeDef extends XXDBBase implements java.io.Serializable {
 		return this.rbKeyLabel;
 	}
 
+	public Short getCategory() {
+		return category;
+	}
+
+	public void setCategory(Short category) {
+		this.category = category;
+	}
+
 	/**
 	 * This method sets the value to the member attribute <b> order</b> . You
 	 * cannot set null to the attribute.
@@ -268,83 +283,26 @@ public class XXAccessTypeDef extends XXDBBase implements java.io.Serializable {
 	 */
 	@Override
 	public boolean equals(Object obj) {
-		if (!super.equals(obj)) {
-			return false;
-		}
 		if (this == obj) {
 			return true;
-		}
-		if (!super.equals(obj)) {
+		} else if (getClass() != obj.getClass()) {
 			return false;
-		}
-		if (getClass() != obj.getClass()) {
+		} else if (!super.equals(obj)) {
 			return false;
 		}
+
 		XXAccessTypeDef other = (XXAccessTypeDef) obj;
-		if (defId == null) {
-			if (other.defId != null) {
-				return false;
-			}
-		} else if (!defId.equals(other.defId)) {
-			return false;
-		}
-		if (itemId == null) {
-			if (other.itemId != null) {
-				return false;
-			}
-		} else if (!itemId.equals(other.itemId)) {
-			return false;
-		}
-		if (id == null) {
-			if (other.id != null) {
-				return false;
-			}
-		} else if (!id.equals(other.id)) {
-			return false;
-		}
-		if (label == null) {
-			if (other.label != null) {
-				return false;
-			}
-		} else if (!label.equals(other.label)) {
-			return false;
-		}
-		if (name == null) {
-			if (other.name != null) {
-				return false;
-			}
-		} else if (!name.equals(other.name)) {
-			return false;
-		}
-		if (order == null) {
-			if (other.order != null) {
-				return false;
-			}
-		} else if (!order.equals(other.order)) {
-			return false;
-		}
-		if (rbKeyLabel == null) {
-			if (other.rbKeyLabel != null) {
-				return false;
-			}
-		} else if (!rbKeyLabel.equals(other.rbKeyLabel)) {
-			return false;
-		}
-		if (dataMaskOptions == null) {
-			if (other.dataMaskOptions != null) {
-				return false;
-			}
-		} else if (!dataMaskOptions.equals(other.dataMaskOptions)) {
-			return false;
-		}
-		if (rowFilterOptions == null) {
-			if (other.rowFilterOptions != null) {
-				return false;
-			}
-		} else if (!rowFilterOptions.equals(other.rowFilterOptions)) {
-			return false;
-		}
-		return true;
+
+		return Objects.equals(defId, other.defId) &&
+		       Objects.equals(itemId, other.itemId) &&
+		       Objects.equals(id, other.id) &&
+		       Objects.equals(name, other.name) &&
+		       Objects.equals(label, other.label) &&
+		       Objects.equals(rbKeyLabel, other.rbKeyLabel) &&
+		       Objects.equals(category, other.category) &&
+		       Objects.equals(dataMaskOptions, other.dataMaskOptions) &&
+		       Objects.equals(rowFilterOptions, other.rowFilterOptions) &&
+		       Objects.equals(order, other.order);
 	}
 
 	/*
@@ -356,7 +314,7 @@ public class XXAccessTypeDef extends XXDBBase implements java.io.Serializable {
 	public String toString() {
 		return "XXAccessTypeDef [" + super.toString() + " id=" + id
 				+ ", defId=" + defId + ", itemId=" + itemId + ", name=" + name + ", label=" + label
-				+ ", rbKeyLabel=" + rbKeyLabel + ", dataMaskOptions=" + dataMaskOptions
+				+ ", rbKeyLabel=" + rbKeyLabel + ", category=" + category + ", dataMaskOptions=" + dataMaskOptions
 				+ ", rowFilterOptions=" + rowFilterOptions + ", order=" + order + "]";
 	}
 
diff --git a/security-admin/src/main/java/org/apache/ranger/service/RangerServiceDefServiceBase.java b/security-admin/src/main/java/org/apache/ranger/service/RangerServiceDefServiceBase.java
index 86928193a..a0ba463e4 100644
--- a/security-admin/src/main/java/org/apache/ranger/service/RangerServiceDefServiceBase.java
+++ b/security-admin/src/main/java/org/apache/ranger/service/RangerServiceDefServiceBase.java
@@ -39,6 +39,7 @@ import org.apache.ranger.common.SearchField.SEARCH_TYPE;
 import org.apache.ranger.entity.*;
 import org.apache.ranger.plugin.model.RangerServiceDef;
 import org.apache.ranger.plugin.model.RangerServiceDef.RangerAccessTypeDef;
+import org.apache.ranger.plugin.model.RangerServiceDef.RangerAccessTypeDef.AccessTypeCategory;
 import org.apache.ranger.plugin.model.RangerServiceDef.RangerContextEnricherDef;
 import org.apache.ranger.plugin.model.RangerServiceDef.RangerDataMaskDef;
 import org.apache.ranger.plugin.model.RangerServiceDef.RangerDataMaskTypeDef;
@@ -410,6 +411,11 @@ public abstract class RangerServiceDefServiceBase<T extends XXServiceDefBase, V
 		xObj.setLabel(vObj.getLabel());
 		xObj.setRbkeylabel(vObj.getRbKeyLabel());
 		xObj.setOrder(AppConstants.DEFAULT_SORT_ORDER);
+
+		if (vObj.getCategory() != null) {
+			xObj.setCategory((short) vObj.getCategory().ordinal());
+		}
+
 		return xObj;
 	}
 	
@@ -432,6 +438,10 @@ public abstract class RangerServiceDefServiceBase<T extends XXServiceDefBase, V
 		vObj.setRbKeyLabel(xObj.getRbkeylabel());
 		vObj.setImpliedGrants(impliedGrants);
 
+		if (xObj.getCategory() != null) {
+			vObj.setCategory(toAccessTypeCategory(xObj.getCategory()));
+		}
+
 		return vObj;
 	}
 
@@ -756,4 +766,18 @@ public abstract class RangerServiceDefServiceBase<T extends XXServiceDefBase, V
 
 		return ret;
 	}
+
+	private AccessTypeCategory toAccessTypeCategory(short val) {
+		AccessTypeCategory ret = null;
+
+		for (AccessTypeCategory category : AccessTypeCategory.values()) {
+			if (category.ordinal() == val) {
+				ret = category;
+
+				break;
+			}
+		}
+
+		return ret;
+	}
 }