code: public void rmacc(String resourceName, String principalType, String principalName) throws CmsException {
  
          CmsResource res = readResource(resourceName, CmsResourceFilter.ALL);
  
          if (CmsUUID.isValidUUID(principalName)) {
              // principal name is in fact a UUID, probably the user was already deleted
              m_securityManager.removeAccessControlEntry(m_context, res, new CmsUUID(principalName));
          } else if (CmsAccessControlEntry.PRINCIPAL_ALL_OTHERS_NAME.equals(principalName)) {
              m_securityManager.removeAccessControlEntry(m_context, res, CmsAccessControlEntry.PRINCIPAL_ALL_OTHERS_ID);
          } else if (CmsAccessControlEntry.PRINCIPAL_OVERWRITE_ALL_NAME.equals(principalName)) {
              m_securityManager.removeAccessControlEntry(
                  m_context,
                  res,
                  CmsAccessControlEntry.PRINCIPAL_OVERWRITE_ALL_ID);
          } else {
              try {
                  // principal name not a UUID, assume this is a normal group or user name
                  I_CmsPrincipal principal = CmsPrincipal.readPrincipal(this, principalType, principalName);
                  m_securityManager.removeAccessControlEntry(m_context, res, principal.getId());
              } catch (CmsDbEntryNotFoundException e) {
                  // role case
                  CmsRole role = CmsRole.valueOfRoleName(principalName);
                  if (role == null) {
                      throw e;
                  }
                  m_securityManager.removeAccessControlEntry(m_context, res, role.getId());
              }
          }
      }
docs: Removes an access control entry of a given principal from a given resource.<p>
  
  @param resourceName name of the resource
  @param principalType the type of the principal (currently group or user)
  @param principalName the name of the principal
  
  @throws CmsException if something goes wrong