コード例 #1
0
 /**
  * Execute ACL specific actions.
  *
  * <ul>
  *   <li>Created: Jul 19, 2011 12:41:48 PM
  *   <li>Author: Christopher Harper, account: admin
  * </ul>
  *
  * @param acl the ACL to work with.
  * @since %since%
  */
 protected void typeSpesific(final IDfACL acl) {
   try {
     if (acl.isNew() || acl.isDirty() || reaplySettings()) {
       acl.setDescription(getDescription());
       acl.setACLClass(getAclClass());
       acl.setObjectName(getAclName());
       if (getOwnerName() == null || "dm_dbo".equalsIgnoreCase(getOwnerName())) { // $NON-NLS-1$
         setOwnername(getSession().getDocbaseOwnerName());
       }
       acl.setDomain(getOwnerName());
       for (final Accessor accessor : getAccessors()) {
         IDfPermit permit = new DfPermit();
         permit.setAccessorName(accessor.getName());
         permit.setPermitType(accessor.getPermitType());
         permit.setPermitValue(accessor.getPermit());
         acl.grantPermit(permit);
         if (accessor.getExtendedPermit() != null) {
           permit = new DfPermit();
           permit.setAccessorName(accessor.getName());
           permit.setPermitType(IDfPermit.DF_EXTENDED_PERMIT);
           permit.setPermitValue(accessor.getExtendedPermit());
           acl.grantPermit(permit);
         }
       }
     }
   } catch (final DfException dex) {
     printStack(dex);
     throw new BuildException("Failure modifying acl object.", dex); // $NON-NLS-1$
   }
 }