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

nixon pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/atlas.git


The following commit(s) were added to refs/heads/master by this push:
     new 12e35d2  ATLAS-3976 : On creating a type with a type_name that already 
exists as a read-only user 409 is thrown instead on 403
12e35d2 is described below

commit 12e35d2f15578619b6375c37dc2087cc3e1e6cce
Author: chaitali borole <[email protected]>
AuthorDate: Tue Mar 2 18:30:46 2021 +0530

    ATLAS-3976 : On creating a type with a type_name that already exists as a 
read-only user 409 is thrown instead on 403
---
 .../atlas/repository/store/graph/v2/AtlasEntityDefStoreV2.java      | 6 ++----
 .../apache/atlas/repository/store/graph/v2/AtlasEnumDefStoreV2.java | 3 ++-
 .../repository/store/graph/v2/AtlasRelationshipDefStoreV2.java      | 3 ++-
 .../atlas/repository/store/graph/v2/AtlasStructDefStoreV2.java      | 3 ++-
 4 files changed, 8 insertions(+), 7 deletions(-)

diff --git 
a/repository/src/main/java/org/apache/atlas/repository/store/graph/v2/AtlasEntityDefStoreV2.java
 
b/repository/src/main/java/org/apache/atlas/repository/store/graph/v2/AtlasEntityDefStoreV2.java
index b86cd91..6676b8c 100644
--- 
a/repository/src/main/java/org/apache/atlas/repository/store/graph/v2/AtlasEntityDefStoreV2.java
+++ 
b/repository/src/main/java/org/apache/atlas/repository/store/graph/v2/AtlasEntityDefStoreV2.java
@@ -63,7 +63,9 @@ public class AtlasEntityDefStoreV2 extends 
AtlasAbstractDefStoreV2<AtlasEntityDe
             throw new AtlasBaseException(AtlasErrorCode.TYPE_MATCH_FAILED, 
entityDef.getName(), TypeCategory.CLASS.name());
         }
 
+        verifyAttributeTypeReadAccess(entityDef.getAttributeDefs());
 
+        AtlasAuthorizationUtils.verifyAccess(new 
AtlasTypeAccessRequest(AtlasPrivilege.TYPE_CREATE, entityDef), "create 
entity-def ", entityDef.getName());
 
         AtlasVertex ret = 
typeDefStore.findTypeVertexByName(entityDef.getName());
 
@@ -88,10 +90,6 @@ public class AtlasEntityDefStoreV2 extends 
AtlasAbstractDefStoreV2<AtlasEntityDe
             LOG.debug("==> AtlasEntityDefStoreV1.create({}, {})", entityDef, 
preCreateResult);
         }
 
-        verifyAttributeTypeReadAccess(entityDef.getAttributeDefs());
-
-        AtlasAuthorizationUtils.verifyAccess(new 
AtlasTypeAccessRequest(AtlasPrivilege.TYPE_CREATE, entityDef), "create 
entity-def ", entityDef.getName());
-
         AtlasVertex vertex = (preCreateResult == null) ? preCreate(entityDef) 
: preCreateResult;
 
         updateVertexAddReferences(entityDef, vertex);
diff --git 
a/repository/src/main/java/org/apache/atlas/repository/store/graph/v2/AtlasEnumDefStoreV2.java
 
b/repository/src/main/java/org/apache/atlas/repository/store/graph/v2/AtlasEnumDefStoreV2.java
index 2abfcf8..5c02105 100644
--- 
a/repository/src/main/java/org/apache/atlas/repository/store/graph/v2/AtlasEnumDefStoreV2.java
+++ 
b/repository/src/main/java/org/apache/atlas/repository/store/graph/v2/AtlasEnumDefStoreV2.java
@@ -54,6 +54,8 @@ class AtlasEnumDefStoreV2 extends 
AtlasAbstractDefStoreV2<AtlasEnumDef> {
 
         validateType(enumDef);
 
+        AtlasAuthorizationUtils.verifyAccess(new 
AtlasTypeAccessRequest(AtlasPrivilege.TYPE_CREATE, enumDef), "create enum-def 
", enumDef.getName());
+
         AtlasVertex vertex = 
typeDefStore.findTypeVertexByName(enumDef.getName());
 
         if (vertex != null) {
@@ -77,7 +79,6 @@ class AtlasEnumDefStoreV2 extends 
AtlasAbstractDefStoreV2<AtlasEnumDef> {
           LOG.debug("==> AtlasEnumDefStoreV2.create({}, {})", enumDef, 
preCreateResult);
         }
 
-        AtlasAuthorizationUtils.verifyAccess(new 
AtlasTypeAccessRequest(AtlasPrivilege.TYPE_CREATE, enumDef), "create enum-def 
", enumDef.getName());
 
         AtlasVertex vertex = (preCreateResult == null) ? preCreate(enumDef) : 
preCreateResult;
 
diff --git 
a/repository/src/main/java/org/apache/atlas/repository/store/graph/v2/AtlasRelationshipDefStoreV2.java
 
b/repository/src/main/java/org/apache/atlas/repository/store/graph/v2/AtlasRelationshipDefStoreV2.java
index cf316ea..b1f8efd 100644
--- 
a/repository/src/main/java/org/apache/atlas/repository/store/graph/v2/AtlasRelationshipDefStoreV2.java
+++ 
b/repository/src/main/java/org/apache/atlas/repository/store/graph/v2/AtlasRelationshipDefStoreV2.java
@@ -71,6 +71,8 @@ public class AtlasRelationshipDefStoreV2 extends 
AtlasAbstractDefStoreV2<AtlasRe
             throw new AtlasBaseException(AtlasErrorCode.TYPE_MATCH_FAILED, 
relationshipDef.getName(), TypeCategory.RELATIONSHIP.name());
         }
 
+        AtlasAuthorizationUtils.verifyAccess(new 
AtlasTypeAccessRequest(AtlasPrivilege.TYPE_CREATE, relationshipDef), "create 
relationship-def ", relationshipDef.getName());
+
         AtlasVertex relationshipDefVertex = 
typeDefStore.findTypeVertexByName(relationshipDef.getName());
 
         if (relationshipDefVertex != null) {
@@ -136,7 +138,6 @@ public class AtlasRelationshipDefStoreV2 extends 
AtlasAbstractDefStoreV2<AtlasRe
         verifyTypeReadAccess(relationshipDef.getEndDef1().getType());
         verifyTypeReadAccess(relationshipDef.getEndDef2().getType());
 
-        AtlasAuthorizationUtils.verifyAccess(new 
AtlasTypeAccessRequest(AtlasPrivilege.TYPE_CREATE, relationshipDef), "create 
relationship-def ", relationshipDef.getName());
 
         AtlasVertex vertex = (preCreateResult == null) ? 
preCreate(relationshipDef) : preCreateResult;
 
diff --git 
a/repository/src/main/java/org/apache/atlas/repository/store/graph/v2/AtlasStructDefStoreV2.java
 
b/repository/src/main/java/org/apache/atlas/repository/store/graph/v2/AtlasStructDefStoreV2.java
index 27dae16..21e3757 100644
--- 
a/repository/src/main/java/org/apache/atlas/repository/store/graph/v2/AtlasStructDefStoreV2.java
+++ 
b/repository/src/main/java/org/apache/atlas/repository/store/graph/v2/AtlasStructDefStoreV2.java
@@ -75,6 +75,8 @@ public class AtlasStructDefStoreV2 extends 
AtlasAbstractDefStoreV2<AtlasStructDe
             throw new AtlasBaseException(AtlasErrorCode.TYPE_MATCH_FAILED, 
structDef.getName(), TypeCategory.STRUCT.name());
         }
 
+        AtlasAuthorizationUtils.verifyAccess(new 
AtlasTypeAccessRequest(AtlasPrivilege.TYPE_CREATE, structDef), "create 
struct-def ", structDef.getName());
+
         AtlasVertex ret = 
typeDefStore.findTypeVertexByName(structDef.getName());
 
         if (ret != null) {
@@ -100,7 +102,6 @@ public class AtlasStructDefStoreV2 extends 
AtlasAbstractDefStoreV2<AtlasStructDe
 
         verifyAttributeTypeReadAccess(structDef.getAttributeDefs());
 
-        AtlasAuthorizationUtils.verifyAccess(new 
AtlasTypeAccessRequest(AtlasPrivilege.TYPE_CREATE, structDef), "create 
struct-def ", structDef.getName());
 
         if (CollectionUtils.isEmpty(structDef.getAttributeDefs())) {
             throw new AtlasBaseException(AtlasErrorCode.BAD_REQUEST, "Missing 
attributes for structdef");

Reply via email to