Merge branch 'master' of https://code.google.com/p/plexi.fs
diff --git a/src/com/google/enterprise/adaptor/fs/AclBuilder.java b/src/com/google/enterprise/adaptor/fs/AclBuilder.java
index e8db799..28fa5a4 100644
--- a/src/com/google/enterprise/adaptor/fs/AclBuilder.java
+++ b/src/com/google/enterprise/adaptor/fs/AclBuilder.java
@@ -157,7 +157,6 @@
private boolean hasReadPermission(Set<AclEntryPermission> p) {
return p.contains(AclEntryPermission.READ_DATA)
&& p.contains(AclEntryPermission.READ_ACL)
- && p.contains(AclEntryPermission.READ_ATTRIBUTES)
&& p.contains(AclEntryPermission.READ_NAMED_ATTRS);
}
diff --git a/test/com/google/enterprise/adaptor/fs/AclBuilderTest.java b/test/com/google/enterprise/adaptor/fs/AclBuilderTest.java
index b6ea1e2..d789456 100644
--- a/test/com/google/enterprise/adaptor/fs/AclBuilderTest.java
+++ b/test/com/google/enterprise/adaptor/fs/AclBuilderTest.java
@@ -283,6 +283,26 @@
}
@Test
+ public void testReadAttributesPermNotNeeded() throws Exception {
+ AclFileAttributeView aclView = new AclView(
+ user("joe").type(ALLOW).perms(GENERIC_READ)
+ .flags(FILE_INHERIT, DIRECTORY_INHERIT),
+ user("mike").type(ALLOW)
+ .perms(READ_DATA, READ_ACL, READ_NAMED_ATTRS)
+ .flags(FILE_INHERIT, DIRECTORY_INHERIT));
+ AclBuilder aclBuilder = newBuilder(aclView);
+
+ // This node's ACLs should include both joe and mike.
+ Acl expected = emptyExpectedBuilder()
+ .setPermitUsers(users("joe", "mike")).build();
+ assertEquals(expected, aclBuilder.getAcl().build());
+ assertEquals(expected,
+ aclBuilder.getInheritableByAllDescendentFoldersAcl().build());
+ assertEquals(expected,
+ aclBuilder.getInheritableByAllDescendentFilesAcl().build());
+ }
+
+ @Test
public void testWindowsBuiltinUsers() throws Exception {
ArrayList<AclEntry> entries = Lists.newArrayList();
// Add all the permitted builtin users.