private void fixACLsForUser(List<AccessControl> acls, String user, int mask) { boolean foundUserACL = false; List<AccessControl> emptyUserACLs = new ArrayList<>(); for (AccessControl control : acls) { if (control.get_type() == AccessControlType.USER) { if (!control.is_set_name()) { emptyUserACLs.add(control); } else if (control.get_name().equals(user)) { int currentAccess = control.get_access(); if ((currentAccess & mask) != mask) { control.set_access(currentAccess | mask); } foundUserACL = true; } } } // if ACLs have two user ACLs for empty user and principal, discard empty user ACL if (!emptyUserACLs.isEmpty() && foundUserACL) { acls.removeAll(emptyUserACLs); } // add default user ACL when only empty user ACL is not present if (emptyUserACLs.isEmpty() && !foundUserACL) { AccessControl userACL = new AccessControl(); userACL.set_type(AccessControlType.USER); userACL.set_name(user); userACL.set_access(mask); acls.add(userACL); } }
public static AccessControl parseAccessControl(String str) { String[] parts = str.split(":"); String type = "other"; String name = ""; String access = "-"; if (parts.length > 3) { throw new IllegalArgumentException("Don't know how to parse " + str + " into an ACL value"); } else if (parts.length == 1) { type = "other"; name = ""; access = parts[0]; } else if (parts.length == 2) { type = "user"; name = parts[0]; access = parts[1]; } else if (parts.length == 3) { type = parts[0]; name = parts[1]; access = parts[2]; } AccessControl ret = new AccessControl(); ret.set_type(parseACLType(type)); ret.set_name(name); ret.set_access(parseAccess(access)); return ret; }
public void setFieldValue(_Fields field, java.lang.Object value) { switch (field) { case TYPE: if (value == null) { unset_type(); } else { set_type((AccessControlType)value); } break; case NAME: if (value == null) { unset_name(); } else { set_name((java.lang.String)value); } break; case ACCESS: if (value == null) { unset_access(); } else { set_access((java.lang.Integer)value); } break; } }
private void fixACLsForUser(List<AccessControl> acls, String user, int mask) { boolean foundUserACL = false; List<AccessControl> emptyUserACLs = new ArrayList<>(); for (AccessControl control : acls) { if (control.get_type() == AccessControlType.USER) { if (!control.is_set_name()) { emptyUserACLs.add(control); } else if (control.get_name().equals(user)) { int currentAccess = control.get_access(); if ((currentAccess & mask) != mask) { control.set_access(currentAccess | mask); } foundUserACL = true; } } } // if ACLs have two user ACLs for empty user and principal, discard empty user ACL if (!emptyUserACLs.isEmpty() && foundUserACL) { acls.removeAll(emptyUserACLs); } // add default user ACL when only empty user ACL is not present if (emptyUserACLs.isEmpty() && !foundUserACL) { AccessControl userACL = new AccessControl(); userACL.set_type(AccessControlType.USER); userACL.set_name(user); userACL.set_access(mask); acls.add(userACL); } }
public static AccessControl parseAccessControl(String str) { String[] parts = str.split(":"); String type = "other"; String name = ""; String access = "-"; if (parts.length > 3) { throw new IllegalArgumentException("Don't know how to parse "+str+" into an ACL value"); } else if (parts.length == 1) { type = "other"; name = ""; access = parts[0]; } else if (parts.length == 2) { type = "user"; name = parts[0]; access = parts[1]; } else if (parts.length == 3) { type = parts[0]; name = parts[1]; access = parts[2]; } AccessControl ret = new AccessControl(); ret.set_type(parseACLType(type)); ret.set_name(name); ret.set_access(parseAccess(access)); return ret; }
public void setFieldValue(_Fields field, Object value) { switch (field) { case TYPE: if (value == null) { unset_type(); } else { set_type((AccessControlType)value); } break; case NAME: if (value == null) { unset_name(); } else { set_name((String)value); } break; case ACCESS: if (value == null) { unset_access(); } else { set_access((Integer)value); } break; } }