📄 ldapuserprofile.java
字号:
homeMobile = ""; homeFax = ""; homePager = ""; businessStreet = "{postalAddress}"; businessCity = "{l}"; businessState = "{st}"; businessZip = "{postalCode}"; businessCountry = ""; businessJobTitle = "{title}"; businessDepartment = "{departmentNumber}"; businessPhone = "{telephoneNumber}"; businessMobile = "{mobile}"; businessFax = ""; businessPager = "{pager}"; } /** * Saves current configuration as XML properties. */ public void saveProperties() { Element vCard = DocumentHelper.createElement(QName.get("vCard", "vcard-temp")); Element subelement; // Add name if (name != null && name.trim().length() > 0) { subelement = vCard.addElement("N"); subelement.addElement("GIVEN").setText(name.trim()); } // Add email if (email != null && email.trim().length() > 0) { subelement = vCard.addElement("EMAIL"); subelement.addElement("INTERNET"); subelement.addElement("USERID").setText(email.trim()); } // Add Full Name vCard.addElement("FN").setText(fullName.trim()); // Add nickname if (nickname != null && nickname.trim().length() > 0) { vCard.addElement("NICKNAME").setText(nickname.trim()); } // Add birthday if (birthday != null && birthday.trim().length() > 0) { vCard.addElement("BDAY").setText(birthday.trim()); } // Add home address subelement = vCard.addElement("ADR"); subelement.addElement("HOME"); if (homeStreet != null && homeStreet.trim().length() > 0) { subelement.addElement("STREET").setText(homeStreet.trim()); } if (homeCity != null && homeCity.trim().length() > 0) { subelement.addElement("LOCALITY").setText(homeCity.trim()); } if (homeState != null && homeState.trim().length() > 0) { subelement.addElement("REGION").setText(homeState.trim()); } if (homeZip != null && homeZip.trim().length() > 0) { subelement.addElement("PCODE").setText(homeZip.trim()); } if (homeCountry != null && homeCountry.trim().length() > 0) { subelement.addElement("CTRY").setText(homeCountry.trim()); } // Add business address subelement = vCard.addElement("ADR"); subelement.addElement("WORK"); if (businessStreet != null && businessStreet.trim().length() > 0) { subelement.addElement("STREET").setText(businessStreet.trim()); } if (businessCity != null && businessCity.trim().length() > 0) { subelement.addElement("LOCALITY").setText(businessCity.trim()); } if (businessState != null && businessState.trim().length() > 0) { subelement.addElement("REGION").setText(businessState.trim()); } if (businessZip != null && businessZip.trim().length() > 0) { subelement.addElement("PCODE").setText(businessZip.trim()); } if (businessCountry != null && businessCountry.trim().length() > 0) { subelement.addElement("CTRY").setText(businessCountry.trim()); } // Add home phone if (homePhone != null && homePhone.trim().length() > 0) { subelement = vCard.addElement("TEL"); subelement.addElement("HOME"); subelement.addElement("VOICE"); subelement.addElement("NUMBER").setText(homePhone.trim()); } // Add home mobile if (homeMobile != null && homeMobile.trim().length() > 0) { subelement = vCard.addElement("TEL"); subelement.addElement("HOME"); subelement.addElement("CELL"); subelement.addElement("NUMBER").setText(homeMobile.trim()); } // Add home fax if (homeFax != null && homeFax.trim().length() > 0) { subelement = vCard.addElement("TEL"); subelement.addElement("HOME"); subelement.addElement("FAX"); subelement.addElement("NUMBER").setText(homeFax.trim()); } // Add home pager if (homePager != null && homePager.trim().length() > 0) { subelement = vCard.addElement("TEL"); subelement.addElement("HOME"); subelement.addElement("PAGER"); subelement.addElement("NUMBER").setText(homePager.trim()); } // Add business phone if (businessPhone != null && businessPhone.trim().length() > 0) { subelement = vCard.addElement("TEL"); subelement.addElement("WORK"); subelement.addElement("VOICE"); subelement.addElement("NUMBER").setText(businessPhone.trim()); } // Add business mobile if (businessMobile != null && businessMobile.trim().length() > 0) { subelement = vCard.addElement("TEL"); subelement.addElement("WORK"); subelement.addElement("CELL"); subelement.addElement("NUMBER").setText(businessMobile.trim()); } // Add business fax if (businessFax != null && businessFax.trim().length() > 0) { subelement = vCard.addElement("TEL"); subelement.addElement("WORK"); subelement.addElement("FAX"); subelement.addElement("NUMBER").setText(businessFax.trim()); } // Add business pager if (businessPager != null && businessPager.trim().length() > 0) { subelement = vCard.addElement("TEL"); subelement.addElement("WORK"); subelement.addElement("PAGER"); subelement.addElement("NUMBER").setText(businessPager.trim()); } // Add job title if (businessJobTitle != null && businessJobTitle.trim().length() > 0) { vCard.addElement("TITLE").setText(businessJobTitle.trim()); } // Add job department if (businessDepartment != null && businessDepartment.trim().length() > 0) { vCard.addElement("ORG").addElement("ORGUNIT").setText(businessDepartment.trim()); } // Generate content to store in property String vcardXML; StringWriter writer = new StringWriter(); OutputFormat prettyPrinter = OutputFormat.createPrettyPrint(); XMLWriter xmlWriter = new XMLWriter(writer, prettyPrinter); try { xmlWriter.write(vCard); vcardXML = writer.toString(); } catch (IOException e) { Log.error("Error pretty formating XML", e); vcardXML = vCard.asXML(); } StringBuilder sb = new StringBuilder(vcardXML.length()); sb.append("<![CDATA[").append(vcardXML).append("]]>"); // Save mapping as an XML property JiveGlobals.setXMLProperty("ldap.vcard-mapping", sb.toString()); // Set that the vcard provider is LdapVCardProvider JiveGlobals.setXMLProperty("provider.vcard.className", LdapVCardProvider.class.getName()); // Save duplicated fields in LdapManager (should be removed in the future) LdapManager.getInstance().setNameField(name.replaceAll("(\\{)([\\d\\D]+)(})", "$2")); LdapManager.getInstance().setEmailField(email.replaceAll("(\\{)([\\d\\D]+)(})", "$2")); } /** * Returns true if the vCard mappings where successfully loaded from the XML * property. * * @return true if mappings where loaded from saved property. */ public boolean loadFromProperties() { String xmlProperty = JiveGlobals.getXMLProperty("ldap.vcard-mapping"); if (xmlProperty == null || xmlProperty.trim().length() == 0) { return false; } try { // Remove CDATA wrapping element if (xmlProperty.startsWith("<![CDATA[")) { xmlProperty = xmlProperty.substring(9, xmlProperty.length()-3); } // Parse XML Document document = DocumentHelper.parseText(xmlProperty); Element vCard = document.getRootElement(); Element element = vCard.element("N"); if (element != null) { name = element.elementTextTrim("GIVEN"); } element = vCard.element("EMAIL"); if (element != null) { email = element.elementTextTrim("USERID"); } element = vCard.element("FN"); if (element != null) { fullName = element.getTextTrim(); } element = vCard.element("NICKNAME"); if (element != null) { nickname = element.getTextTrim(); } element = vCard.element("BDAY"); if (element != null) { birthday = element.getTextTrim(); } // Parse addresses Iterator addresses = vCard.elementIterator("ADR"); while (addresses.hasNext()) { element = (Element) addresses.next(); if (element.element("HOME") != null) { if (element.element("STREET") != null) { homeStreet = element.elementTextTrim("STREET"); } if (element.element("LOCALITY") != null) { homeCity = element.elementTextTrim("LOCALITY"); } if (element.element("REGION") != null) { homeState = element.elementTextTrim("REGION"); } if (element.element("PCODE") != null) { homeZip = element.elementTextTrim("PCODE"); } if (element.element("CTRY") != null) { homeCountry = element.elementTextTrim("CTRY"); } } else if (element.element("WORK") != null) { if (element.element("STREET") != null) { businessStreet = element.elementTextTrim("STREET"); } if (element.element("LOCALITY") != null) { businessCity = element.elementTextTrim("LOCALITY"); } if (element.element("REGION") != null) { businessState = element.elementTextTrim("REGION"); } if (element.element("PCODE") != null) { businessZip = element.elementTextTrim("PCODE"); } if (element.element("CTRY") != null) { businessCountry = element.elementTextTrim("CTRY"); } } } // Parse telephones Iterator telephones = vCard.elementIterator("TEL"); while (telephones.hasNext()) { element = (Element) telephones.next(); if (element.element("HOME") != null) { if (element.element("VOICE") != null) { homePhone = element.elementTextTrim("NUMBER"); } else if (element.element("CELL") != null) { homeMobile = element.elementTextTrim("NUMBER"); } else if (element.element("FAX") != null) { homeFax = element.elementTextTrim("NUMBER"); } else if (element.element("PAGER") != null) { homePager = element.elementTextTrim("NUMBER"); } } else if (element.element("WORK") != null) { if (element.element("VOICE") != null) { businessPhone = element.elementTextTrim("NUMBER"); } else if (element.element("CELL") != null) { businessMobile = element.elementTextTrim("NUMBER"); } else if (element.element("FAX") != null) { businessFax = element.elementTextTrim("NUMBER"); } else if (element.element("PAGER") != null) { businessPager = element.elementTextTrim("NUMBER"); } } } element = vCard.element("TITLE"); if (element != null) { businessJobTitle = element.getTextTrim(); } element = vCard.element("ORG"); if (element != null) { if (element.element("ORGUNIT") != null) { businessDepartment = element.elementTextTrim("ORGUNIT"); } } } catch (DocumentException e) { Log.error("Error loading vcard mappings from property", e); return false; } return true; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -