code: public void removeAccessControlEntry(CmsRequestContext context, CmsResource resource, CmsUUID principal)
      throws CmsException, CmsSecurityException {
  
          CmsDbContext dbc = m_dbContextFactory.getDbContext(context);
          try {
              checkOfflineProject(dbc);
              checkPermissions(dbc, resource, CmsPermissionSet.ACCESS_CONTROL, true, CmsResourceFilter.ALL);
              m_driverManager.removeAccessControlEntry(dbc, resource, principal);
          } catch (Exception e) {
              dbc.report(
                  null,
                  Messages.get().container(
                      Messages.ERR_REMOVE_ACL_ENTRY_2,
                      context.getSitePath(resource),
                      principal.toString()),
                  e);
          } finally {
              dbc.clear();
          }
      }
docs: Removes an access control entry for a given resource and principal.<p>
  
  @param context the current request context
  @param resource the resource
  @param principal the id of the principal to remove the the access control entry for
  
  @throws CmsException if something goes wrong
  @throws CmsSecurityException if the user has insufficient permission for the given resource (control of access control is required).