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

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


The following commit(s) were added to refs/heads/master by this push:
     new a92aac2  [ZEPPELIN-4464] Fix Regression in InterpreterSetting 
isUserAuthorized
a92aac2 is described below

commit a92aac23f7458282bf97b6e7ca2e47dfe24f332c
Author: Philipp Dallig <philipp.dal...@gmail.com>
AuthorDate: Mon Dec 2 11:59:06 2019 +0100

    [ZEPPELIN-4464] Fix Regression in InterpreterSetting isUserAuthorized
    
    ### What is this PR for?
    With ZEPPELIN-3734 we got a regression in InterpreterSettings.class in 
isUserAuthorized method.
    
    ### What type of PR is it?
    Regression Fix
    
    ### Todos
    *
    
    ### What is the Jira issue?
    * https://issues.apache.org/jira/browse/ZEPPELIN-4464
    
    ### How should this be tested?
    * Unit-Tests are added
    
    Author: Philipp Dallig <philipp.dal...@gmail.com>
    
    Closes #3531 from Reamer/correctInterpreterPermissions and squashes the 
following commits:
    
    6c9bd6725 [Philipp Dallig] Fix Regression in InterpreterSetting 
isUserAuthorized
---
 .../zeppelin/interpreter/InterpreterSetting.java   |  2 +-
 .../interpreter/InterpreterSettingTest.java        | 53 ++++++++++++++++++++++
 2 files changed, 54 insertions(+), 1 deletion(-)

diff --git 
a/zeppelin-zengine/src/main/java/org/apache/zeppelin/interpreter/InterpreterSetting.java
 
b/zeppelin-zengine/src/main/java/org/apache/zeppelin/interpreter/InterpreterSetting.java
index 7a6ce3a..4da96dc 100644
--- 
a/zeppelin-zengine/src/main/java/org/apache/zeppelin/interpreter/InterpreterSetting.java
+++ 
b/zeppelin-zengine/src/main/java/org/apache/zeppelin/interpreter/InterpreterSetting.java
@@ -717,7 +717,7 @@ public class InterpreterSetting {
     }
     Set<String> intersection = new HashSet<>(userAndRoles);
     intersection.retainAll(option.getOwners());
-    return intersection.isEmpty();
+    return !intersection.isEmpty();
   }
 
   //////////////////////////// IMPORTANT 
////////////////////////////////////////////////
diff --git 
a/zeppelin-zengine/src/test/java/org/apache/zeppelin/interpreter/InterpreterSettingTest.java
 
b/zeppelin-zengine/src/test/java/org/apache/zeppelin/interpreter/InterpreterSettingTest.java
index eb02609..de01959 100644
--- 
a/zeppelin-zengine/src/test/java/org/apache/zeppelin/interpreter/InterpreterSettingTest.java
+++ 
b/zeppelin-zengine/src/test/java/org/apache/zeppelin/interpreter/InterpreterSettingTest.java
@@ -24,6 +24,7 @@ import java.util.HashMap;
 import java.util.List;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
@@ -465,4 +466,56 @@ public class InterpreterSettingTest {
     assertNotNull(checkIntpSetting.getInterpreterInfo("echo"));
     assertNotNull(checkIntpSetting.getInterpreterInfo("double_echo"));
   }
+
+  @Test
+  public void testIsUserAuthorized() {
+      List<String> userAndRoles = new ArrayList<>();
+      userAndRoles.add("User1");
+      userAndRoles.add("Role1");
+      userAndRoles.add("Role2");
+      List<String> owners;
+      InterpreterSetting interpreterSetting;
+      InterpreterOption interpreterOption;
+
+      // With match
+      owners = new ArrayList<>();
+      owners.add("Role1");
+      interpreterOption = new InterpreterOption();
+      interpreterOption.setUserPermission(true);
+      interpreterOption.owners = owners;
+      interpreterSetting = new InterpreterSetting.Builder()
+          .setId("id")
+          .setName("id")
+          .setGroup("group")
+          .setOption(interpreterOption)
+          .create();
+      assertTrue(interpreterSetting.isUserAuthorized(userAndRoles));
+
+      // Without match
+      owners = new ArrayList<>();
+      owners.add("Role88");
+      interpreterOption = new InterpreterOption();
+      interpreterOption.setUserPermission(true);
+      interpreterOption.owners = owners;
+      interpreterSetting = new InterpreterSetting.Builder()
+          .setId("id")
+          .setName("id")
+          .setGroup("group")
+          .setOption(interpreterOption)
+          .create();
+      assertFalse(interpreterSetting.isUserAuthorized(userAndRoles));
+
+      // Without permissions
+      owners = new ArrayList<>();
+      interpreterOption = new InterpreterOption();
+      interpreterOption.setUserPermission(false);
+      interpreterOption.owners = owners;
+      interpreterSetting = new InterpreterSetting.Builder()
+          .setId("id")
+          .setName("id")
+          .setGroup("group")
+          .setOption(interpreterOption)
+          .create();
+      assertTrue(interpreterSetting.isUserAuthorized(userAndRoles));
+  }
 }

Reply via email to