azkaban-uncached
Changes
src/java/azkaban/user/User.java 75(+64 -11)
src/java/azkaban/user/XmlUserManager.java 11(+11 -0)
Details
src/java/azkaban/user/User.java 75(+64 -11)
diff --git a/src/java/azkaban/user/User.java b/src/java/azkaban/user/User.java
index d538e72..4f69d02 100644
--- a/src/java/azkaban/user/User.java
+++ b/src/java/azkaban/user/User.java
@@ -23,17 +23,42 @@ import java.util.Set;
public class User {
private final String userid;
+ private String email = "";
private Set<String> roles = new HashSet<String>();
private Set<String> groups = new HashSet<String>();
-
+ private UserPermissions userPermissions;
+
public User(String userid) {
this.userid = userid;
}
-
+
public String getUserId() {
return userid;
}
+ public void setEmail(String email) {
+ this.email = email;
+ }
+
+ public String getEmail() {
+ return email;
+ }
+
+ public void setPermissions(UserPermissions checker) {
+ this.userPermissions = checker;
+ }
+
+ public UserPermissions getPermissions() {
+ return userPermissions;
+ }
+
+ public boolean hasPermission(String permission) {
+ if (userPermissions == null) {
+ return false;
+ }
+ return this.userPermissions.hasPermission(permission);
+ }
+
public List<String> getGroups() {
return new ArrayList<String>(groups);
}
@@ -41,27 +66,27 @@ public class User {
public void clearGroup() {
groups.clear();
}
-
+
public void addGroup(String name) {
groups.add(name);
}
-
+
public boolean isInGroup(String group) {
return this.groups.contains(group);
}
-
+
public List<String> getRoles() {
return new ArrayList<String>(roles);
}
-
+
public void addRole(String role) {
this.roles.add(role);
}
-
+
public boolean hasRole(String role) {
return roles.contains(role);
}
-
+
public String toString() {
String groupStr = "[";
for (String group: groups) {
@@ -70,7 +95,7 @@ public class User {
groupStr += "]";
return userid + ": " + groupStr;
}
-
+
@Override
public int hashCode() {
final int prime = 31;
@@ -87,12 +112,40 @@ public class User {
return false;
if (getClass() != obj.getClass())
return false;
- User other = (User) obj;
+ User other = (User)obj;
if (userid == null) {
if (other.userid != null)
return false;
- } else if (!userid.equals(other.userid))
+ }
+ else if (!userid.equals(other.userid))
return false;
return true;
}
+
+ public static interface UserPermissions {
+ public boolean hasPermission(String permission);
+ public void addPermission(String permission);
+ }
+
+ public static class DefaultUserPermission implements UserPermissions {
+ Set<String> permissions;
+
+ public DefaultUserPermission() {
+ this(new HashSet<String>());
+ }
+
+ public DefaultUserPermission(Set<String> permissions) {
+ this.permissions = permissions;
+ }
+
+ @Override
+ public boolean hasPermission(String permission) {
+ return permissions.contains(permission);
+ }
+
+ @Override
+ public void addPermission(String permission) {
+ permissions.add(permission);
+ }
+ }
}
src/java/azkaban/user/XmlUserManager.java 11(+11 -0)
diff --git a/src/java/azkaban/user/XmlUserManager.java b/src/java/azkaban/user/XmlUserManager.java
index 55ee224..5686f4c 100644
--- a/src/java/azkaban/user/XmlUserManager.java
+++ b/src/java/azkaban/user/XmlUserManager.java
@@ -33,6 +33,7 @@ import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
+import azkaban.user.User.UserPermissions;
import azkaban.utils.Props;
/**
@@ -262,6 +263,16 @@ public class XmlUserManager implements UserManager {
// Add all the roles the group has to the user
resolveGroupRoles(user);
+ user.setPermissions(new UserPermissions() {
+ @Override
+ public boolean hasPermission(String permission) {
+ return true;
+ }
+
+ @Override
+ public void addPermission(String permission) {
+ }
+ });
return user;
}