You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ji...@apache.org on 2019/05/30 07:22:48 UTC

[incubator-iotdb] branch watermark-demp created (now 0fbb425)

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

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


      at 0fbb425  add watermark interfaces in Authorization

This branch includes the following new commits:

     new 0fbb425  add watermark interfaces in Authorization

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[incubator-iotdb] 01/01: add watermark interfaces in Authorization

Posted by ji...@apache.org.
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: 江天 <jt...@163.com>
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;
 }