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

jiangtian pushed a commit to branch watermark-demp
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git

commit 0fbb42572fbd4d61a522b53dcde6323f8504ca02
Author: 江天 <[email protected]>
AuthorDate: Thu May 30 15:20:56 2019 +0800

    add watermark interfaces in Authorization
---
 .../iotdb/db/auth/authorizer/BasicAuthorizer.java       | 10 ++++++++++
 .../apache/iotdb/db/auth/authorizer/IAuthorizer.java    | 16 ++++++++++++++++
 .../main/java/org/apache/iotdb/db/auth/entity/User.java | 10 ++++++++++
 .../org/apache/iotdb/db/auth/user/BasicUserManager.java | 17 +++++++++++++++++
 .../org/apache/iotdb/db/auth/user/IUserManager.java     | 16 ++++++++++++++++
 5 files changed, 69 insertions(+)

diff --git 
a/iotdb/src/main/java/org/apache/iotdb/db/auth/authorizer/BasicAuthorizer.java 
b/iotdb/src/main/java/org/apache/iotdb/db/auth/authorizer/BasicAuthorizer.java
index 439b3d2..336a355 100644
--- 
a/iotdb/src/main/java/org/apache/iotdb/db/auth/authorizer/BasicAuthorizer.java
+++ 
b/iotdb/src/main/java/org/apache/iotdb/db/auth/authorizer/BasicAuthorizer.java
@@ -276,4 +276,14 @@ public abstract class BasicAuthorizer implements 
IAuthorizer, IService {
   public User getUser(String username) throws AuthException {
     return userManager.getUser(username);
   }
+
+  @Override
+  public boolean isUserUseWaterMark(String userName) throws AuthException {
+    return userManager.isUserUseWaterMark(userName);
+  }
+
+  @Override
+  public void setUserUseWaterMark(String userName, boolean useWaterMark) 
throws AuthException {
+    userManager.setUserUseWaterMark(userName, useWaterMark);
+  }
 }
diff --git 
a/iotdb/src/main/java/org/apache/iotdb/db/auth/authorizer/IAuthorizer.java 
b/iotdb/src/main/java/org/apache/iotdb/db/auth/authorizer/IAuthorizer.java
index 27d123d..be82de0 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/auth/authorizer/IAuthorizer.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/auth/authorizer/IAuthorizer.java
@@ -250,4 +250,20 @@ public interface IAuthorizer {
    * @return A user whose name is username or null if such user does not exist.
    */
   User getUser(String username) throws AuthException;
+
+  /**
+   * Whether data water-mark is enabled for user 'userName'.
+   * @param userName
+   * @return
+   * @throws AuthException if the user does not exist
+   */
+  boolean isUserUseWaterMark(String userName) throws AuthException;
+
+  /**
+   * Enable or disable data water-mark for user 'userName'.
+   * @param userName
+   * @param useWaterMark
+   * @throws AuthException if the user does not exist.
+   */
+  void setUserUseWaterMark(String userName, boolean useWaterMark) throws 
AuthException;
 }
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/auth/entity/User.java 
b/iotdb/src/main/java/org/apache/iotdb/db/auth/entity/User.java
index 6109180..ec19413 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/auth/entity/User.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/auth/entity/User.java
@@ -34,6 +34,8 @@ public class User {
   private List<PathPrivilege> privilegeList;
   private List<String> roleList;
 
+  private boolean useWaterMark = false;
+
   /**
    * The latest time when the user is referenced. Reserved to provide session 
control or LRU
    * mechanism in the future.
@@ -160,4 +162,12 @@ public class User {
   public int hashCode() {
     return Objects.hash(name, password, privilegeList, roleList, 
lastActiveTime);
   }
+
+  public boolean isUseWaterMark() {
+    return useWaterMark;
+  }
+
+  public void setUseWaterMark(boolean useWaterMark) {
+    this.useWaterMark = useWaterMark;
+  }
 }
diff --git 
a/iotdb/src/main/java/org/apache/iotdb/db/auth/user/BasicUserManager.java 
b/iotdb/src/main/java/org/apache/iotdb/db/auth/user/BasicUserManager.java
index e79b634..a97ffed 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/auth/user/BasicUserManager.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/auth/user/BasicUserManager.java
@@ -282,4 +282,21 @@ public abstract class BasicUserManager implements 
IUserManager {
     return rtlist;
   }
 
+  @Override
+  public boolean isUserUseWaterMark(String username) throws AuthException {
+    User user = getUser(username);
+    if (user == null) {
+      throw new AuthException(String.format("No such user %s", username));
+    }
+    return user.isUseWaterMark();
+  }
+
+  @Override
+  public void setUserUseWaterMark(String username, boolean useWaterMark) 
throws AuthException {
+    User user = getUser(username);
+    if (user == null) {
+      throw new AuthException(String.format("No such user %s", username));
+    }
+    user.setUseWaterMark(useWaterMark);
+  }
 }
diff --git 
a/iotdb/src/main/java/org/apache/iotdb/db/auth/user/IUserManager.java 
b/iotdb/src/main/java/org/apache/iotdb/db/auth/user/IUserManager.java
index f254c47..ff4e53a 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/auth/user/IUserManager.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/auth/user/IUserManager.java
@@ -144,4 +144,20 @@ public interface IUserManager {
    * @return A list that contains all users'name.
    */
   List<String> listAllUsers();
+
+  /**
+   * Whether data water-mark is enabled for user 'userName'.
+   * @param userName
+   * @return
+   * @throws AuthException if the user does not exist
+   */
+  boolean isUserUseWaterMark(String userName) throws AuthException;
+
+  /**
+   * Enable or disable data water-mark for user 'userName'.
+   * @param userName
+   * @param useWaterMark
+   * @throws AuthException if the user does not exist.
+   */
+  void setUserUseWaterMark(String userName, boolean useWaterMark) throws 
AuthException;
 }

Reply via email to