@Override public void setEntry(AclEntry entry) { if (isEmpty() && mAccessAcl != null) { mMode = mAccessAcl.mMode; } super.setEntry(entry); setEmpty(false); }
/** * Sets ACL entries into the internal ACL. * The entries will overwrite any existing correspondent entries in the internal ACL. * * @param entries the ACL entries * @return the updated object */ public T setAcl(List<AclEntry> entries) { if (entries == null || entries.isEmpty()) { return getThis(); } for (AclEntry entry : entries) { if (entry.isDefault()) { getDefaultACL().setEntry(entry); } else { mAcl.setEntry(entry); } } updateMask(entries); return getThis(); }
acl.setEntry(aclEntry);
private void setPermissions(AccessControlList acl) { // owning user: rwx // owning group: r-x // other: --x // named user: r-x // named group: r-- // named group 2: -wx acl.setOwningUser(OWNING_USER); acl.setOwningGroup(OWNING_GROUP); acl.setEntry(new AclEntry.Builder().setType(AclEntryType.OWNING_USER).setSubject(OWNING_USER) .addAction(AclAction.READ).addAction(AclAction.WRITE).addAction(AclAction.EXECUTE).build()); acl.setEntry(new AclEntry.Builder().setType(AclEntryType.OWNING_GROUP).setSubject(OWNING_GROUP) .addAction(AclAction.READ).addAction(AclAction.EXECUTE).build()); acl.setEntry(new AclEntry.Builder().setType(AclEntryType.OTHER) .addAction(AclAction.EXECUTE).build()); acl.setEntry(new AclEntry.Builder().setType(AclEntryType.NAMED_USER).setSubject(NAMED_USER) .addAction(AclAction.READ).addAction(AclAction.EXECUTE).build()); acl.setEntry(new AclEntry.Builder().setType(AclEntryType.NAMED_GROUP).setSubject(NAMED_GROUP) .addAction(AclAction.READ).build()); acl.setEntry(new AclEntry.Builder().setType(AclEntryType.NAMED_GROUP).setSubject(NAMED_GROUP2) .addAction(AclAction.WRITE).addAction(AclAction.EXECUTE).build()); acl.updateMask(); }
/** * Tests {@link AccessControlList#getMode()}. */ @Test public void getMode() { AccessControlList acl = new AccessControlList(); Assert.assertEquals(0, acl.getMode()); acl.setEntry(new AclEntry.Builder().setType(AclEntryType.OWNING_USER).setSubject(OWNING_USER) .addAction(AclAction.READ).build()); acl.setEntry(new AclEntry.Builder().setType(AclEntryType.OWNING_GROUP).setSubject(OWNING_GROUP) .addAction(AclAction.WRITE).build()); acl.setEntry(new AclEntry.Builder().setType(AclEntryType.OTHER) .addAction(AclAction.EXECUTE).build()); Assert.assertEquals(new Mode(Mode.Bits.READ, Mode.Bits.WRITE, Mode.Bits.EXECUTE).toShort(), acl.getMode()); }
/** * @param pAcl the proto representation * @return the {@link AccessControlList} instance created from the proto representation */ public static AccessControlList fromProto(PAcl pAcl) { AccessControlList acl; if (pAcl.getIsDefault()) { acl = new DefaultAccessControlList(); ((DefaultAccessControlList) acl).setEmpty(pAcl.getIsDefaultEmpty()); } else { acl = new AccessControlList(); } acl.setOwningUser(pAcl.getOwner()); acl.setOwningGroup(pAcl.getOwningGroup()); acl.setMode((short) pAcl.getMode()); if (pAcl.getEntriesCount() > 0) { for (PAclEntry tEntry : pAcl.getEntriesList()) { acl.setEntry(fromProto(tEntry)); } } return acl; }
.setSubject(name).setActions(actions).build(); ret.setEntry(entry); .setSubject(name).setActions(actions).build(); ret.setEntry(entry); AclEntry entry = new AclEntry.Builder().setType(AclEntryType.MASK) .setActions(actions).build(); ret.setEntry(entry); AclEntry entry = new AclEntry.Builder().setType(AclEntryType.OTHER) .setActions(actions).build(); ret.setEntry(entry);
acl.setEntry(new AclEntry.Builder().setType(AclEntryType.OWNING_USER).setSubject(OWNING_USER) .addAction(AclAction.READ).addAction(AclAction.WRITE).addAction(AclAction.EXECUTE).build()); acl.setEntry(new AclEntry.Builder().setType(AclEntryType.OWNING_GROUP).setSubject(OWNING_GROUP) .addAction(AclAction.READ).addAction(AclAction.EXECUTE).build()); acl.setEntry(new AclEntry.Builder().setType(AclEntryType.OTHER).build()); acl.setEntry(new AclEntry.Builder().setType(AclEntryType.NAMED_USER).setSubject(NAMED_USER) .addAction(AclAction.READ).addAction(AclAction.WRITE).addAction(AclAction.EXECUTE).build()); acl.setEntry(new AclEntry.Builder().setType(AclEntryType.NAMED_GROUP).setSubject(NAMED_GROUP) .addAction(AclAction.WRITE).addAction(AclAction.EXECUTE).build()); acl.updateMask();