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 <mad...@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;
+       }
 }

Reply via email to