Exemplo n.º 1
0
  private void upgradeZimbraGalLdapAttrMap() throws ServiceException {
    final String attrName = Provisioning.A_zimbraGalLdapAttrMap;

    final String valueToRemove =
        "binary zimbraPrefMailSMIMECertificate,userCertificate,userSMIMECertificate=SMIMECertificate";

    final String[] valuesToAdd =
        new String[] {
          "(certificate) userCertificate=userCertificate",
          "(binary) userSMIMECertificate=userSMIMECertificate"
        };

    Config config = prov.getConfig();

    Map<String, Object> attrs = new HashMap<String, Object>();

    Set<String> curValues = config.getMultiAttrSet(attrName);
    if (curValues.contains(valueToRemove)) {
      StringUtil.addToMultiMap(attrs, "-" + attrName, valueToRemove);
    }

    for (String valueToAdd : valuesToAdd) {
      if (!curValues.contains(valueToAdd)) {
        StringUtil.addToMultiMap(attrs, "+" + attrName, valueToAdd);
      }
    }

    modifyAttrs(config, attrs);
  }