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; }
