List<DistributionList> lists = account.getDistributionLists(false, via);
List<DistributionList> lists = prov.getDistributionLists(account, false, via);
    public Element handle(Element request, Map<String, Object> context) throws ServiceException {        ZimbraSoapContext lc = getZimbraSoapContext(context);        Provisioning prov = Provisioning.getInstance();//        boolean applyCos = request.getAttributeBool(AdminService.A_APPLY_COS, true);                Element a = request.getElement(AdminService.E_ACCOUNT);        String key = a.getAttribute(AdminService.A_BY);        String value = a.getText();        Account account = null;        if (key.equals(BY_NAME)) {            account = prov.getAccountByName(value);        } else if (key.equals(BY_ID)) {            account = prov.getAccountById(value);        } else if (key.equals(BY_ADMIN_NAME)) {            account = prov.getAdminAccountByName(value);        } else if (key.equals(BY_FOREIGN_PRINCIPAL)) {            account = prov.getAccountByForeignPrincipal(value);        } else {            throw ServiceException.INVALID_REQUEST("unknown value for by: "+key, null);        }        if (account == null)            throw AccountServiceException.NO_SUCH_ACCOUNT(value);        if (!canAccessAccount(lc, account))            throw ServiceException.PERM_DENIED("can not access account");        HashMap<String,String> via = new HashMap<String, String>();        List<DistributionList> lists = account.getDistributionLists(false, via);                Element response = lc.createElement(AdminService.GET_ACCOUNT_MEMBERSHIP_RESPONSE);        for (DistributionList dl: lists) {            Element distributionList = response.addElement(AdminService.E_DL);            distributionList.addAttribute(AdminService.A_NAME, dl.getName());            distributionList.addAttribute(AdminService.A_ID,dl.getId());            String viaDl = via.get(dl.getName());            if (viaDl != null) distributionList.addAttribute(AdminService.A_VIA, viaDl);        }        return response;    }