Commit c9e56b08 authored by Gaston Dombiak's avatar Gaston Dombiak Committed by gato

Added support for testing LDAP group mappings. JM-876

git-svn-id: http://svn.igniterealtime.org/svn/repos/wildfire/trunk@5797 b35dd754-fafc-0310-a699-88a17e54d16e
parent 300e19d0
......@@ -146,9 +146,13 @@
## Added key: 'setup.ldap.user.vcard.personal'
## Added key: 'setup.ldap.user.vcard.test.description'
## Added key: 'setup.ldap.user.vcard.test.random'
## Added key: 'setup.ldap.user.test.error-loading-users'
## Added key: 'setup.ldap.user.test.users-not-found'
## Added key: 'setup.ldap.user.test.internal-server-error'
## Added key: 'setup.ldap.test.error-loading-sample'
## Added key: 'setup.ldap.test.internal-server-error'
## Added key: 'setup.ldap.group.test.description'
## Added key: 'setup.ldap.group.test.label-description'
## Added key: 'setup.ldap.group.test.label-elements'
## Added key: 'setup.ldap.group.test.group-not-found'
## Added key: 'group.read_only'
# Wildfire
......@@ -1514,14 +1518,15 @@ setup.ldap.user.vcard.title=Job Title
setup.ldap.user.vcard.department=Department
setup.ldap.user.vcard.personal=Personal
setup.ldap.user.vcard.test.description=A random profile is selected for you to review. Errors in the profile values \
appear in red. Bold fields with no value mean that an error may have been found. To view another profile click \
'Next ramdom profile'. When you are finished close this window.
setup.ldap.test.error-loading-sample=An error occured while loading sample from LDAP. Check error.log for more information.
setup.ldap.test.internal-server-error=Test page is not able to find required information in HTTP session.
setup.ldap.user.vcard.test.description=A random profile is selected for you to review. Bold fields with no value mean \
that an error may have been found. To view another profile click 'Next ramdom profile'. When you are finished close \
this window.
setup.ldap.user.vcard.test.random=Next random profile
setup.ldap.user.test.error-loading-users=An error occured while loading sample from LDAP. Check error.log for more information.
setup.ldap.user.test.users-not-found=No users were found using the specified configuration. Try changing the base DN,\
user filter or username field.
setup.ldap.user.test.internal-server-error=Test page is not able to find required information in HTTP session.
setup.ldap.group.description=Configure how Wildfire finds and loads groups from your LDAP directory. \
If you need additional information about a field, hover your mouse over the corresponsing help icon.
......@@ -1546,6 +1551,13 @@ setup.ldap.group.filter_description=An optional group filter to append to the de
group filter would be "(cn={0})" where {0} is dynamically replaced with the \
group name being searched for.
setup.ldap.group.test.description=A small list of groups is selected for you to review. When you are finished close \
this window.
setup.ldap.group.test.label-description=Description
setup.ldap.group.test.label-elements=Elements
setup.ldap.group.test.group-not-found=No groups were found using the specified configuration. Try changing the base DN,\
group filter or member field.
# Setup finished Page
setup.finished.title=Setup Complete!
......
......@@ -1266,15 +1266,16 @@ setup.ldap.user.vcard.title=Puesto de trabajo
setup.ldap.user.vcard.department=Departmento
setup.ldap.user.vcard.personal=Personal
setup.ldap.user.vcard.test.description=Un perfil aleatorio fue seleccionado para ser revisado. Errores en los valores del perfil \
aparecen en rojo. Campos en negrita sin valor pueden indicar que un error ha sido encontrado. Para visualizar otro perfil haga clic \
en 'Siguiente perfil aleatorio'. Cuando finalice cierre esta ventana.
setup.ldap.user.vcard.test.random=Siguiente perfil aleatorio
setup.ldap.user.test.error-loading-users=Un error ha occurido mientras se cargaba una muestra desde LDAP. Verifique el error.log \
setup.ldap.test.error-loading-sample=Un error ha occurido mientras se cargaba una muestra desde LDAP. Verifique el error.log \
para m\u00e1s informaci\u00f3n.
setup.ldap.test.internal-server-error=P\u00e1gina de pruebas no ha podido encontrar la informaci\u00f3n requerida en la sesi\u00f3n HTTP.
setup.ldap.user.vcard.test.description=Un perfil aleatorio fue seleccionado para ser revisado. Campos en negrita sin \
valor pueden indicar que un error ha sido encontrado. Para visualizar otro perfil haga clic en 'Siguiente \
perfil aleatorio'. Cuando finalice cierre esta ventana.
setup.ldap.user.vcard.test.random=Siguiente perfil aleatorio
setup.ldap.user.test.users-not-found=No se han encontrado usuarios utilizando la configuraci\u00f3n especificada. Intente cambiar el DN base,\
filtro de usuarios o campo con el nombre del usuario.
setup.ldap.user.test.internal-server-error=P\u00e1gina de pruebas no ha podido encontrar la informaci\u00f3n requerida en la sesi\u00f3n HTTP.
setup.ldap.group.description=Configurar la manera que Wildfire busca y carga grupos de su servidor LDAP. \
Si necesita mayor informaci\u00f3n sobre un campo, lleve el rat\u00f3n al icono de ayuda correspondiente.
......@@ -1299,6 +1300,13 @@ setup.ldap.group.filter_description=Un grupo opcional de grupo que se agrega al
Por ejemplo, si el nombre del grupo es "cn", entonces el filtro por defecto ser\u00e1 \
"(cn={0})" donde {0} ser\u00e1 reemplazado din\u00e1micamente con el nombre del grupo siendo buscado.
setup.ldap.group.test.description=Una peque\u00f1a lista de grupos fue seleccionada para ser revisada. Cuando finalice \
cierre esta ventana.
setup.ldap.group.test.label-description=Descripci\u00f3n
setup.ldap.group.test.label-elements=Elementos
setup.ldap.group.test.group-not-found=No se han encontrado grupos utilizando la configuraci\u00f3n especificada. Intente cambiar el DN base,\
filtro de grupos o campo que define los miembros del grupo.
# Setup finished Page
setup.finished.title=\u00a1Configuraci\u00f3n Completa!
......
......@@ -11,6 +11,7 @@
<pattern>/setup/setup-completed.jsp*</pattern>
<pattern>/setup/setup-ldap-server_test.jsp*</pattern>
<pattern>/setup/setup-ldap-user_test.jsp*</pattern>
<pattern>/setup/setup-ldap-group_test.jsp*</pattern>
<pattern>/setup/setup-admin-settings_test.jsp*</pattern>
<pattern>/login.jsp*</pattern>
<pattern>/plugin-icon.jsp*</pattern>
......
<%@ page import="org.jivesoftware.util.*,
org.jivesoftware.util.JiveGlobals" %>
<%@ page import="org.jivesoftware.util.JiveGlobals,
org.jivesoftware.util.ParamUtils" %>
<%@ page import="org.jivesoftware.wildfire.XMPPServer"%>
<%@ page import="java.util.HashMap" %>
<%@ page import="java.util.Map" %>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jstl/fmt_rt" prefix="fmt" %>
......@@ -46,8 +48,7 @@
if (defaultGroupSearchFilter == null) {
defaultGroupSearchFilter = "(objectClass=group)";
}
}
else {
} else {
if (defaultGroupNameField == null) {
defaultGroupNameField = "cn";
}
......@@ -78,8 +79,7 @@
boolean posixMode;
if (posixModeParam == null) {
posixMode = defaultPosixMode;
}
else {
} else {
posixMode = Boolean.parseBoolean(posixModeParam);
}
String groupSearchFilter = ParamUtils.getParameter(request, "groupSearchFilter");
......@@ -88,28 +88,40 @@
}
boolean save = request.getParameter("save") != null;
if (save) {
if (groupNameField != null) {
JiveGlobals.setXMLProperty("ldap.groupNameField", groupNameField);
}
if (groupMemberField != null) {
JiveGlobals.setXMLProperty("ldap.groupMemberField", groupMemberField);
}
if (groupDescriptionField != null) {
JiveGlobals.setXMLProperty("ldap.groupDescriptionField", groupDescriptionField);
boolean doTest = request.getParameter("test") != null;
if (save || doTest) {
// Save information in the session so we can use it in testing pages during setup
Map<String, String> settings = new HashMap<String, String>();
settings.put("ldap.groupNameField", groupNameField);
settings.put("ldap.groupMemberField", groupMemberField);
settings.put("ldap.groupDescriptionField", groupDescriptionField);
settings.put("ldap.posixMode", Boolean.toString(posixMode));
settings.put("ldap.groupSearchFilter", groupSearchFilter);
session.setAttribute("ldapGroupSettings", settings);
if (save) {
if (groupNameField != null) {
JiveGlobals.setXMLProperty("ldap.groupNameField", groupNameField);
}
if (groupMemberField != null) {
JiveGlobals.setXMLProperty("ldap.groupMemberField", groupMemberField);
}
if (groupDescriptionField != null) {
JiveGlobals.setXMLProperty("ldap.groupDescriptionField", groupDescriptionField);
}
JiveGlobals.setXMLProperty("ldap.posixMode", Boolean.toString(posixMode));
if (groupSearchFilter != null) {
JiveGlobals.setXMLProperty("ldap.groupSearchFilter", groupSearchFilter);
}
// Enable the LDAP auth provider. The LDAP user provider will be enabled on the next step.
JiveGlobals.setXMLProperty("provider.group.className",
"org.jivesoftware.wildfire.ldap.LdapGroupProvider");
// Redirect
response.sendRedirect("setup-admin-settings.jsp?ldap=true");
return;
}
JiveGlobals.setXMLProperty("ldap.posixMode", Boolean.toString(posixMode));
if (groupSearchFilter != null) {
JiveGlobals.setXMLProperty("ldap.groupSearchFilter", groupSearchFilter);
}
// Enable the LDAP auth provider. The LDAP user provider will be enabled on the next step.
JiveGlobals.setXMLProperty("provider.group.className",
"org.jivesoftware.wildfire.ldap.LdapGroupProvider");
// Redirect
response.sendRedirect("setup-admin-settings.jsp?ldap=true");
return;
}
%>
<html>
......@@ -119,6 +131,23 @@
</head>
<body>
<% if (doTest) {
StringBuilder sb = new StringBuilder();
sb.append("serverType=").append(serverType);
/*if (isTesting) {
sb.append("&userIndex=").append(request.getParameter("userIndex"));
}*/
%>
<a href="setup-ldap-group_test.jsp?<%= sb.toString()%>" id="lbmessage" title="<fmt:message key="global.test" />" style="display:none;"></a>
<script type="text/javascript">
function loadMsg() {
var lb = new lightbox(document.getElementById('lbmessage'));
lb.activate();
}
setTimeout('loadMsg()', 250);
</script>
<% } %>
<h1><fmt:message key="setup.ldap.profile" />: <span><fmt:message key="setup.ldap.group_mapping" /></h1>
......@@ -195,10 +224,7 @@
<!-- BEGIN right-aligned buttons -->
<div align="right">
<%--<a href="setup-ldap-group_test.jsp" class="lbOn" id="jive-setup-test2">
<img src="../images/setup_btn_gearplay.gif" alt="" width="14" height="14" border="0">
<fmt:message key="setup.ldap.test" />
</a>--%>
<input type="Submit" name="test" value="<fmt:message key="setup.ldap.test" />" id="jive-setup-test" border="0">
<input type="Submit" name="save" value="<fmt:message key="setup.ldap.continue" />" id="jive-setup-save" border="0">
</div>
......
<%@ page import="org.jivesoftware.admin.LdapGroupTester" %>
<%@ page import="org.jivesoftware.util.LocaleUtils" %>
<%@ page import="org.jivesoftware.util.Log" %>
<%@ page import="org.jivesoftware.wildfire.ldap.LdapManager" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.Collection" %>
<%@ page import="java.util.Map" %>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jstl/fmt_rt" prefix="fmt" %>
<%
String errorDetail = null;
Collection<LdapGroupTester.Group> groups = new ArrayList<LdapGroupTester.Group>();
Map<String, String> settings = (Map<String, String>) session.getAttribute("ldapSettings");
Map<String, String> userSettings = (Map<String, String>) session.getAttribute("ldapUserSettings");
Map<String, String> groupSettings = (Map<String, String>) session.getAttribute("ldapGroupSettings");
if (settings != null && userSettings != null && groupSettings != null) {
LdapManager manager = new LdapManager(settings);
manager.setUsernameField(userSettings.get("ldap.usernameField"));
manager.setSearchFilter(userSettings.get("ldap.searchFilter"));
manager.setGroupNameField(groupSettings.get("ldap.groupNameField"));
manager.setGroupDescriptionField(groupSettings.get("ldap.groupDescriptionField"));
manager.setGroupMemberField(groupSettings.get("ldap.groupMemberField"));
manager.setGroupSearchFilter(groupSettings.get("ldap.groupSearchFilter"));
// Build the tester with the recreated LdapManager and vcard mapping information
LdapGroupTester tester = new LdapGroupTester(manager);
try {
groups = tester.getGroups(10);
}
catch (Exception e) {
// Inform user that an error occurred while trying to get users data
errorDetail = LocaleUtils.getLocalizedString("setup.ldap.test.error-loading-sample");
Log.error("Error occurred while trying to get users data from LDAP", e);
}
if (groups.isEmpty()) {
// Inform user that no users were found
errorDetail = LocaleUtils.getLocalizedString("setup.ldap.group.test.group-not-found");
}
} else {
// Information was not found in the HTTP Session. Internal error?
errorDetail = LocaleUtils.getLocalizedString("setup.ldap.test.internal-server-error");
}
%>
<html>
<head>
<meta name="decorator" content="none"/>
......@@ -14,16 +61,31 @@
</div>
<h2>Test: <span>Group Mapping</span></h2>
<h4 class="jive-testSuccess">Success!</h4>
<!-- <h4 class="jive-testError">Error</h4> -->
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Quisque varius venenatis metus. Fusce porta, ligula non viverra molestie, ante turpis hendrerit augue, ac pretium turpis augue et diam. Nulla volutpat elementum nisi. Proin non nisl id quam condimentum iaculis.</p>
<h2><fmt:message key="setup.ldap.server.test.title" />: <span><fmt:message key="setup.ldap.group_mapping" /></span></h2>
<p><fmt:message key="setup.ldap.group.test.description" /></p>
<% if (errorDetail == null) { %>
</div>
<table border="0" cellpadding="0" cellspacing="1" class="jive-testTable-vcard" style="margin-right: 5px;">
<tr>
<td width="19%" class="jive-testpanel-vcard-header"><fmt:message key="group.summary.page_name" /></td>
<td width="80%" class="jive-testpanel-vcard-header"><fmt:message key="setup.ldap.group.test.label-description" /></td>
<td width="1%" class="jive-testpanel-vcard-header"><fmt:message key="setup.ldap.group.test.label-elements" /></td>
</tr>
<% for (LdapGroupTester.Group group : groups) { %>
<tr>
<td valign="top" class="jive-testpanel-vcard-value"><%= group.getName()%></td>
<td valign="top" class="jive-testpanel-vcard-value"><%= group.getDescription()%></td>
<td valign="top" class="jive-testpanel-vcard-value"><%= group.getElements()%></td>
</tr>
<% } %>
</table>
<% } else { %>
<h4 class="jive-testError"><fmt:message key="setup.ldap.server.test.status-error" /></h4>
<p><%= errorDetail %></p>
<% }%>
</div>
</div>
......
<%@ page import="org.jivesoftware.admin.LdapUserProfile" %>
<%@ page import="org.jivesoftware.admin.plugin.LdapUserTester" %>
<%@ page import="org.jivesoftware.admin.LdapUserTester" %>
<%@ page import="org.jivesoftware.util.LocaleUtils" %>
<%@ page import="org.jivesoftware.util.Log" %>
<%@ page import="org.jivesoftware.util.ParamUtils" %>
......@@ -32,7 +32,7 @@
}
catch (Exception e) {
// Inform user that an error occurred while trying to get users data
errorDetail = LocaleUtils.getLocalizedString("setup.ldap.user.test.error-loading-users");
errorDetail = LocaleUtils.getLocalizedString("setup.ldap.test.error-loading-sample");
Log.error("Error occurred while trying to get users data from LDAP", e);
}
if (usernames.isEmpty()) {
......@@ -100,29 +100,29 @@ html>body .jive-testPanel {
<% String value = attributes.get(LdapUserTester.NAME);
boolean failed = value != null && value.contains("{");
%>
<td class="jive-testpanel-vcard-label" width="20%" onmouseover="domTT_activate(this, event, 'content', '', 'styleClass', 'jiveTooltip', 'trail', true, 'delay', 300, 'lifetime', -1);"><%= value != null ? "<strong>" : ""%><fmt:message key="setup.ldap.user.vcard.name" />:<%= value != null ? "</strong>" : ""%></td>
<td class="jive-testpanel-vcard-value"><%= failed ? "<strong>" : ""%><%= value != null ? value : ""%><%= failed ? "</strong>" : ""%></td>
<td class="jive-testpanel-vcard-label" width="20%"><%= value != null ? "<strong>" : ""%><fmt:message key="setup.ldap.user.vcard.name" />:<%= value != null ? "</strong>" : ""%></td>
<td class="jive-testpanel-vcard-value"><%= failed || value == null? "" : value%></td>
</tr>
<tr>
<% value = attributes.get(LdapUserTester.EMAIL);
failed = value != null && value.contains("{");
%>
<td class="jive-testpanel-vcard-label"><%= value != null ? "<strong>" : ""%><fmt:message key="setup.ldap.user.vcard.email" />:<%= value != null ? "</strong>" : ""%></td>
<td class="jive-testpanel-vcard-value"><%= failed ? "<strong>" : ""%><%= value != null ? value : ""%><%= failed ? "</strong>" : ""%></td>
<td class="jive-testpanel-vcard-value"><%= failed || value == null? "" : value%></td>
</tr>
<tr>
<% value = attributes.get(LdapUserTester.NICKNAME);
failed = value != null && value.contains("{");
%>
<td class="jive-testpanel-vcard-label"><%= value != null ? "<strong>" : ""%><fmt:message key="setup.ldap.user.vcard.nickname" />:<%= value != null ? "</strong>" : ""%></td>
<td class="jive-testpanel-vcard-value"><%= failed ? "<strong>" : ""%><%= value != null ? value : ""%><%= failed ? "</strong>" : ""%></td>
<td class="jive-testpanel-vcard-value"><%= failed || value == null? "" : value%></td>
</tr>
<tr>
<% value = attributes.get(LdapUserTester.BIRTHDAY);
failed = value != null && value.contains("{");
%>
<td class="jive-testpanel-vcard-label"><%= value != null ? "<strong>" : ""%><fmt:message key="setup.ldap.user.vcard.birthday" />:<%= value != null ? "</strong>" : ""%></td>
<td class="jive-testpanel-vcard-value"><%= failed ? "<strong>" : ""%><%= value != null ? value : ""%><%= failed ? "</strong>" : ""%></td>
<td class="jive-testpanel-vcard-value"><%= failed || value == null? "" : value%></td>
</tr>
<tr>
<td colspan="2"></td>
......@@ -135,56 +135,56 @@ html>body .jive-testPanel {
failed = value != null && value.contains("{");
%>
<td class="jive-testpanel-vcard-label"><%= value != null ? "<strong>" : ""%><fmt:message key="setup.ldap.user.vcard.street" />:<%= value != null ? "</strong>" : ""%></td>
<td class="jive-testpanel-vcard-value"><%= failed ? "<strong>" : ""%><%= value != null ? value : ""%><%= failed ? "</strong>" : ""%></td>
<td class="jive-testpanel-vcard-value"><%= failed || value == null? "" : value%></td>
</tr>
<tr>
<% value = attributes.get(LdapUserTester.HOME_CITY);
failed = value != null && value.contains("{");
%>
<td class="jive-testpanel-vcard-label"><%= value != null ? "<strong>" : ""%><fmt:message key="setup.ldap.user.vcard.city" />:<%= value != null ? "</strong>" : ""%></td>
<td class="jive-testpanel-vcard-value"><%= failed ? "<strong>" : ""%><%= value != null ? value : ""%><%= failed ? "</strong>" : ""%></td>
<td class="jive-testpanel-vcard-value"><%= failed || value == null? "" : value%></td>
</tr>
<tr>
<% value = attributes.get(LdapUserTester.HOME_STATE);
failed = value != null && value.contains("{");
%>
<td class="jive-testpanel-vcard-label"><%= value != null ? "<strong>" : ""%><fmt:message key="setup.ldap.user.vcard.state" />:<%= value != null ? "</strong>" : ""%></td>
<td class="jive-testpanel-vcard-value"><%= failed ? "<strong>" : ""%><%= value != null ? value : ""%><%= failed ? "</strong>" : ""%></td>
<td class="jive-testpanel-vcard-value"><%= failed || value == null? "" : value%></td>
</tr>
<tr>
<% value = attributes.get(LdapUserTester.HOME_ZIP);
failed = value != null && value.contains("{");
%>
<td class="jive-testpanel-vcard-label"><%= value != null ? "<strong>" : ""%><fmt:message key="setup.ldap.user.vcard.pcode" />:<%= value != null ? "</strong>" : ""%></td>
<td class="jive-testpanel-vcard-value"><%= failed ? "<strong>" : ""%><%= value != null ? value : ""%><%= failed ? "</strong>" : ""%></td>
<td class="jive-testpanel-vcard-value"><%= failed || value == null? "" : value%></td>
</tr>
<tr>
<% value = attributes.get(LdapUserTester.HOME_COUNTRY);
failed = value != null && value.contains("{");
%>
<td class="jive-testpanel-vcard-label"><%= value != null ? "<strong>" : ""%><fmt:message key="setup.ldap.user.vcard.country" />:<%= value != null ? "</strong>" : ""%></td>
<td class="jive-testpanel-vcard-value"><%= failed ? "<strong>" : ""%><%= value != null ? value : ""%><%= failed ? "</strong>" : ""%></td>
<td class="jive-testpanel-vcard-value"><%= failed || value == null? "" : value%></td>
</tr>
<tr>
<% value = attributes.get(LdapUserTester.HOME_PHONE);
failed = value != null && value.contains("{");
%>
<td class="jive-testpanel-vcard-label"><%= value != null ? "<strong>" : ""%><fmt:message key="setup.ldap.user.vcard.phone" />:<%= value != null ? "</strong>" : ""%></td>
<td class="jive-testpanel-vcard-value"><%= failed ? "<strong>" : ""%><%= value != null ? value : ""%><%= failed ? "</strong>" : ""%></td>
<td class="jive-testpanel-vcard-value"><%= failed || value == null? "" : value%></td>
</tr>
<tr>
<% value = attributes.get(LdapUserTester.HOME_MOBILE);
failed = value != null && value.contains("{");
%>
<td class="jive-testpanel-vcard-label"><%= value != null ? "<strong>" : ""%><fmt:message key="setup.ldap.user.vcard.mobile" />:<%= value != null ? "</strong>" : ""%></td>
<td class="jive-testpanel-vcard-value"><%= failed ? "<strong>" : ""%><%= value != null ? value : ""%><%= failed ? "</strong>" : ""%></td>
<td class="jive-testpanel-vcard-value"><%= failed || value == null? "" : value%></td>
</tr>
<tr>
<% value = attributes.get(LdapUserTester.HOME_FAX);
failed = value != null && value.contains("{");
%>
<td class="jive-testpanel-vcard-label"><%= value != null ? "<strong>" : ""%><fmt:message key="setup.ldap.user.vcard.fax" />:<%= value != null ? "</strong>" : ""%></td>
<td class="jive-testpanel-vcard-value"><%= failed ? "<strong>" : ""%><%= value != null ? value : ""%><%= failed ? "</strong>" : ""%></td>
<td class="jive-testpanel-vcard-value"><%= failed || value == null? "" : value%></td>
</tr>
<tr>
......@@ -192,7 +192,7 @@ html>body .jive-testPanel {
failed = value != null && value.contains("{");
%>
<td class="jive-testpanel-vcard-label"><%= value != null ? "<strong>" : ""%><fmt:message key="setup.ldap.user.vcard.pager" />:<%= value != null ? "</strong>" : ""%></td>
<td class="jive-testpanel-vcard-value"><%= failed ? "<strong>" : ""%><%= value != null ? value : ""%><%= failed ? "</strong>" : ""%></td>
<td class="jive-testpanel-vcard-value"><%= failed || value == null? "" : value%></td>
</tr>
</table>
......@@ -258,7 +258,7 @@ html>body .jive-testPanel {
</tr>
<tr>
<% value = attributes.get(LdapUserTester.BUSINESS_MOBILE);
failed = value != null && value.contains("{");
failed = value != null && value.contains("{");
%>
<td class="jive-testpanel-vcard-label"><%= value != null ? "<strong>" : ""%><fmt:message key="setup.ldap.user.vcard.mobile" />:<%= value != null ? "</strong>" : ""%></td>
<td class="jive-testpanel-vcard-value"><%= failed ? "<strong>" : ""%><%= value != null ? value : ""%><%= failed ? "</strong>" : ""%></td>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment