Commit 9287b9b0 authored by Ryan Graham's avatar Ryan Graham Committed by ryang

* Fixed issue where the username was not being escaped properly on the web sign-up page.

* Added internationalization (i18n) support.
* Updated UI to match later versions of Wildfire.

git-svn-id: http://svn.igniterealtime.org/svn/repos/wildfire/trunk@7495 b35dd754-fafc-0310-a699-88a17e54d16e
parent 908886aa
......@@ -2,7 +2,7 @@
<html>
<head>
<title>Search Plugin Changelog</title>
<title>Search Plugin Changelog</title>
<style type="text/css">
BODY {
font-size : 100%;
......@@ -44,6 +44,13 @@
Registration Plugin Changelog
</h1>
<p><b>1.3.2</b> -- March 12, 2007</p>
<ul>
<li>Fixed issue where the username was not being escaped properly on the web sign-up page.
<li>Added internationalization (i18n) support.</li>
<li>Updated UI to match later versions of Wildfire.</li>
</ul>
<p><b>1.3.1</b> -- October 06, 2006</p>
<ul>
<li>Updated to use compression offered by Wildfire 3.1</li>
......
login.title=Admin Console
registration.props.form.title=User Registration
registration.props.form.details=Use the form below to edit user registration settings.
registration.props.form.registration_settings=Registration Settings
registration.props.form.enable_features=Enable registration features using the checkboxes below.
registration.props.form.save_success=Settings saved successfully.
registration.props.form.invalid_group=Please enter and save a valid group name in the Default Group section at the bottom of this page before enabling automatic group adding.
registration.props.form.enable_im_notification=Enable instant message registration notification.
registration.props.form.enable_email_notification=Enable email registration notification.
registration.props.form.enable_welcome_msg=Enable welcome message.
registration.props.form.enable_add_user_to_group=Enable automatically adding of new users to a group.
registration.props.form.enable_web_registration=Enable users to register via a web page at
registration.props.form.save_settings=Save Settings
registration.props.form.registration_contacts=Registration Notification Contacts
registration.props.form.registration_contacts_details=Add or remove contacts to be alerted when a new user registers.
registration.props.form.registration_contact_removed=Contact successfully removed.
registration.props.form.registration_contact_added=Contact successfully added.
registration.props.form.registration_contact_missing=Contact missing.
registration.props.form.registration_contact_not_found=Contact not found.
registration.props.form.registration_invalid_email=Invalid email address.
registration.props.form.registration_add_im=Add IM Contact
registration.props.form.registration_add=Add
registration.props.form.registration_remove=Remove
registration.props.form.registration_im_contact=IM Contact
registration.props.form.registration_no_contact=No contact specified, use the form above to add one.
registration.props.form.registration_add_email=Add Email Contact
registration.props.form.registration_email_contact=Email Contact
registration.props.form.welcome_message=Welcome Message
registration.props.form.welcome_message_details=Enter the welcome message that will be sent to new users when they register.
registration.props.form.welcome_message_saved=Message saved successfully.
registration.props.form.welcome_message_missing=Please enter a welcome message.
registration.props.form.welcome_message_save=Save Messsage
registration.props.form.default_group=Default Group
registration.props.form.default_group_details=Enter the name of the group that all new users will be automatically added to.
registration.props.form.default_group_saved=Group saved successfully.
registration.props.form.default_group_invalid=Group not found or is invalid.
registration.props.form.default_group_save=Save Group
registration.props.form.sign_up=Sign-Up Page Header Text
registration.props.form.sign_up_details=Enter the text that will be displayed at the top of the sign-up web page.
registration.props.form.sign_up_saved=Header saved successfully.
registration.props.form.sign_up_missing=Please enter a header.
registration.props.form.sign_up_save=Save Header
registration.sign.up.title=Jive Wildfire Web Registration
registration.sign.up.unavailable=This service is currently unavailable.
registration.sign.up.instructions=Use the form below to create a new user account
registration.sign.up.error_creating_account=Error creating the user account. Please contact the administrator.
registration.sign.up.invalid_username=Invalid username.
registration.sign.up.create.user_exist=Username already exists - please choose a different one.
registration.sign.up.invalid_name=Invalid name.
registration.sign.up.invalid_email=Invalid email.
registration.sign.up.invalid_password=Invalid password.
registration.sign.up.invalid_match_password=Passwords don't match.
registration.sign.up.invalid_password_confirm=Invalid password confirmation.
registration.sign.up.success=New account successfully created.
registration.sign.up.create_account=Create Account
registration.sign.up.username=Username
registration.sign.up.name=Name
registration.sign.up.email=Email
registration.sign.up.password=Password
registration.sign.up.confirm_password=Confirm Password
registration.sign.up.required_fields=Required Fields
\ No newline at end of file
<%--
- Copyright (C) 2005 Jive Software. All rights reserved.
-
- This software is published under the terms of the GNU Public License (GPL),
- a copy of which is included in this distribution.
--%>
<%@ page
import="java.util.*,
org.jivesoftware.admin.*,
org.jivesoftware.wildfire.XMPPServer,
org.jivesoftware.wildfire.user.*,
org.jivesoftware.wildfire.plugin.RegistrationPlugin,
org.jivesoftware.wildfire.group.*,
org.jivesoftware.util.*"
errorPage="error.jsp"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jstl/fmt_rt" prefix="fmt"%>
<%
boolean save = request.getParameter("save") != null;
boolean saveWelcome = request.getParameter("savemessage") != null;
boolean saveGroup = request.getParameter("savegroup") != null;
boolean saveHeader = request.getParameter("saveheader") != null;
boolean imEnabled = ParamUtils.getBooleanParameter(request, "imenabled", false);
boolean emailEnabled = ParamUtils.getBooleanParameter(request, "emailenabled", false);
boolean welcomeEnabled = ParamUtils.getBooleanParameter(request, "welcomeenabled", false);
boolean groupEnabled = ParamUtils.getBooleanParameter(request, "groupenabled", false);
boolean webEnabled = ParamUtils.getBooleanParameter(request, "webenabled", false);
String contactIM = ParamUtils.getParameter(request, "contactIM");
boolean addIM = ParamUtils.getBooleanParameter(request, "addIM");
boolean deleteIM = ParamUtils.getBooleanParameter(request, "deleteIM");
String contactEmail = ParamUtils.getParameter(request, "contactEmail");
boolean addEmail = ParamUtils.getBooleanParameter(request, "addEmail");
boolean deleteEmail = ParamUtils.getBooleanParameter(request, "deleteEmail");
String welcomeMessage = ParamUtils.getParameter(request, "welcomemessage");
String group = ParamUtils.getParameter(request, "groupname");
String header = ParamUtils.getParameter(request, "header");
RegistrationPlugin plugin = (RegistrationPlugin) XMPPServer.getInstance().getPluginManager().getPlugin("registration");
Map<String, String> errors = new HashMap<String, String>();
if (addIM) {
if (contactIM == null) {
errors.put("missingContact", "missingContact");
}
else {
contactIM = contactIM.trim().toLowerCase();
try {
XMPPServer.getInstance().getUserManager().getUser(contactIM);
plugin.addIMContact(contactIM);
response.sendRedirect("registration-props-form.jsp?addSuccess=true");
return;
}
catch (UserNotFoundException unfe) {
errors.put("userNotFound", "userNotFound");
}
}
}
if (deleteIM) {
plugin.removeIMContact(contactIM);
response.sendRedirect("registration-props-form.jsp?deleteSuccess=true");
return;
}
if (addEmail) {
if (contactEmail == null) {
errors.put("missingContact", "missingContact");
}
else {
if (plugin.isValidAddress(contactEmail)) {
plugin.addEmailContact(contactEmail);
response.sendRedirect("registration-props-form.jsp?addSuccess=true");
return;
}
else {
errors.put("invalidAddress", "invalidAddress");
}
}
}
if (deleteEmail) {
plugin.removeEmailContact(contactEmail);
response.sendRedirect("registration-props-form.jsp?deleteSuccess=true");
return;
}
if (save) {
plugin.setIMNotificationEnabled(imEnabled);
plugin.setEmailNotificationEnabled(emailEnabled);
plugin.setWelcomeEnabled(welcomeEnabled);
plugin.setWebEnabled(webEnabled);
if (groupEnabled) {
group = plugin.getGroup();
if (group == null || group.trim().length() < 1) {
errors.put("groupNotFound", "groupNotFound");
}
try {
GroupManager.getInstance().getGroup(group);
}
catch (Exception e) {
errors.put("groupNotFound", "groupNotFound");
}
}
if (errors.size() == 0) {
plugin.setGroupEnabled(groupEnabled);
response.sendRedirect("registration-props-form.jsp?settingsSaved=true");
return;
}
}
if (saveWelcome) {
if (welcomeMessage == null || welcomeMessage.trim().length() < 1) {
errors.put("missingWelcomeMessage", "missingWelcomeMessage");
}
else {
plugin.setWelcomeMessage(welcomeMessage);
response.sendRedirect("registration-props-form.jsp?welcomeSaved=true");
return;
}
}
if (saveGroup && plugin.groupEnabled()) {
if (group == null || group.trim().length() < 1) {
errors.put("groupNotFound", "groupNotFound");
}
try {
GroupManager.getInstance().getGroup(group);
}
catch (Exception e) {
errors.put("groupNotFound", "groupNotFound");
}
if (errors.size() == 0) {
plugin.setGroup(group);
response.sendRedirect("registration-props-form.jsp?groupSaved=true");
return;
}
}
if (saveGroup && !plugin.groupEnabled()) {
group = (group == null) ? "" : group;
plugin.setGroup(group);
}
if (saveHeader) {
if (header == null || header.trim().length() < 1) {
errors.put("missingHeader", "missingHeader");
} else {
plugin.setHeader(header);
response.sendRedirect("registration-props-form.jsp?headerSaved=true");
return;
}
}
imEnabled = plugin.imNotificationEnabled();
emailEnabled = plugin.emailNotificationEnabled();
welcomeEnabled = plugin.welcomeEnabled();
groupEnabled = plugin.groupEnabled();
webEnabled = plugin.webEnabled();
welcomeMessage = plugin.getWelcomeMessage();
group = plugin.getGroup();
header = plugin.getHeader();
%>
<html>
<head>
<title>User Registration</title>
<meta name="pageID" content="registration-props-form"/>
</head>
<body>
<script language="JavaScript" type="text/javascript">
function addIMContact() {
document.regform.addIM.value = 'true';
document.regform.submit();
}
function addEmailContact() {
document.regform.addEmail.value = 'true';
document.regform.submit();
}
</script>
<p>Use the form below to edit user registration settings.</p>
<form action="registration-props-form.jsp?save" name="regform" method="post">
<input type="hidden" name="addIM" value="">
<input type="hidden" name="addEmail" value="">
<fieldset>
<legend>Registration Settings</legend>
<div>
<p>Enable registration features using the checkboxes below.</p>
<% if (ParamUtils.getBooleanParameter(request, "settingsSaved")) { %>
<div class="jive-success">
<table cellpadding="0" cellspacing="0" border="0">
<tbody>
<tr>
<td class="jive-icon"><img src="images/success-16x16.gif" width="16" height="16" border="0"></td>
<td class="jive-icon-label">Settings saved successfully.</td>
</tr>
</tbody>
</table>
</div>
<% } %>
<% if (errors.containsKey("groupNotFound")) { %>
<div class="jive-error">
<table cellpadding="0" cellspacing="0" border="0">
<tbody>
<tr>
<td class="jive-icon"><img src="images/error-16x16.gif" width="16" height="16" border="0"></td>
<td class="jive-icon-label">Please enter and save a valid group name in the Default Group section at the bottom of this page before enabling automatic group adding.</td>
</tr>
</tbody>
</table>
</div>
<% } %>
<table cellpadding="3" cellspacing="0" border="0" width="100%">
<tbody>
<tr>
<td width="1%" align="center" nowrap><input type="checkbox" name="imenabled" <%=(imEnabled) ? "checked" : "" %>></td>
<td width="99%" align="left">Enable instant message registration notification.</td>
</tr>
<tr>
<td width="1%" align="center" nowrap><input type="checkbox" name="emailenabled" <%=(emailEnabled) ? "checked" : "" %>></td>
<td width="99%" align="left">Enable email registration notification.</td>
</tr>
<tr>
<td width="1%" align="center" nowrap><input type="checkbox" name="welcomeenabled" <%=(welcomeEnabled) ? "checked" : "" %>></td>
<td width="99%" align="left">Enable welcome message.</td>
</tr>
<tr>
<td width="1%" align="center" nowrap><input type="checkbox" name="groupenabled" <%=(groupEnabled) ? "checked" : "" %>></td>
<td width="99%" align="left">Enable automatically adding of new users to a group.</td>
</tr>
<tr>
<td width="1%" align="center" nowrap><input type="checkbox" name="webenabled" <%=(webEnabled) ? "checked" : "" %>></td>
<td width="99%" align="left">Enable users to register via a web page at <%=plugin.webRegistrationAddress() %>.</td>
</tr>
</tbody>
</table>
</div>
<input type="submit" value="Save Settings"/>
</fieldset>
<br><br>
<fieldset>
<legend>Registration Notification Contacts</legend>
<div>
<p>Add or remove contacts to be alerted when a new user registers.</p>
<% if (ParamUtils.getBooleanParameter(request, "deleteSuccess")) { %>
<div class="jive-success">
<table cellpadding="0" cellspacing="0" border="0">
<tbody>
<tr>
<td class="jive-icon"><img src="images/success-16x16.gif" width="16" height="16" border="0"></td>
<td class="jive-icon-label">Contact successfully removed.</td>
</tr>
</tbody>
</table>
</div>
<% } else if (ParamUtils.getBooleanParameter(request, "addSuccess")) { %>
<div class="jive-success">
<table cellpadding="0" cellspacing="0" border="0">
<tbody>
<tr>
<td class="jive-icon"><img src="images/success-16x16.gif" width="16" height="16" border="0"></td>
<td class="jive-icon-label">Contact successfully added.</td>
</tr>
</tbody>
</table>
</div>
<% } else if (errors.containsKey("missingContact")) { %>
<div class="jive-error">
<table cellpadding="0" cellspacing="0" border="0">
<tbody>
<tr>
<td class="jive-icon"><img src="images/error-16x16.gif" width="16" height="16" border="0"></td>
<td class="jive-icon-label">Missing contact.</td>
</tr>
</tbody>
</table>
</div>
<% } else if (errors.containsKey("userNotFound")) { %>
<div class="jive-error">
<table cellpadding="0" cellspacing="0" border="0">
<tbody>
<tr>
<td class="jive-icon"><img src="images/error-16x16.gif" width="16" height="16" border="0"></td>
<td class="jive-icon-label">Contact not found.</td>
</tr>
</tbody>
</table>
</div>
<% } else if (errors.containsKey("invalidAddress")) { %>
<div class="jive-error">
<table cellpadding="0" cellspacing="0" border="0">
<tbody>
<tr>
<td class="jive-icon"><img src="images/error-16x16.gif" width="16" height="16" border="0"></td>
<td class="jive-icon-label">Invalid email address.</td>
</tr>
</tbody>
</table>
</div>
<% } %>
<div>
<label for="contacttf">Add IM Contact:</label>
<input type="text" name="contactIM" size="30" maxlength="100" value="<%= (contactIM != null ? contactIM : "") %>" id="contacttf"/>
<input type="submit" value="Add" onclick="return addIMContact();"/>
<br><br>
<div class="jive-table" style="width:400px;">
<table cellpadding="0" cellspacing="0" border="0" width="100%">
<thead>
<tr>
<th width="99%">IM Contact</th>
<th width="1%" nowrap>Remove</th>
</tr>
</thead>
<tbody>
<% if (plugin.getIMContacts().size() == 0) { %>
<tr>
<td width="100%" colspan="2" align="center" nowrap>No contacts specified, use the form above to add one.</td>
</tr>
<% } %>
<% for (String imContact : plugin.getIMContacts()) { %>
<tr>
<td width="99%"><%=imContact %></td>
<td width="1%" align="center"><a
href="registration-props-form.jsp?deleteIM=true&contactIM=<%=imContact %>"
title="Delete Contact?"
onclick="return confirm('Are you sure you want to delete this contact?');"><img
src="images/delete-16x16.gif" width="16" height="16"
border="0"></a>
</td>
</tr>
<% } %>
</tbody>
</table>
</div>
</div>
<div>
<label for="emailtf">Add Email Contact:</label>
<input type="text" name="contactEmail" size="30" maxlength="100" value="<%= (contactEmail != null ? contactEmail : "") %>" id="emailtf"/>
<input type="submit" value="Add" onclick="return addEmailContact();"/>
<br><br>
<div class="jive-table" style="width:400px;">
<table cellpadding="0" cellspacing="0" border="0" width="100%">
<thead>
<tr>
<th width="99%">Email Contact</th>
<th width="1%" nowrap>Remove</th>
</tr>
</thead>
<tbody>
<% if (plugin.getEmailContacts().size() == 0) { %>
<tr>
<td width="100%" colspan="2" align="center" nowrap>No contacts specified, use the form above to add one.</td>
</tr>
<% } %>
<% for (String emailContact : plugin.getEmailContacts()) { %>
<tr>
<td width="99%"><%=emailContact %></td>
<td width="1%" align="center"><a
href="registration-props-form.jsp?deleteEmail=true&contactEmail=<%=emailContact %>"
title="Delete Contact?"
onclick="return confirm('Are you sure you want to delete this contact?');"><img
src="images/delete-16x16.gif" width="16" height="16"
border="0"></a>
</td>
</tr>
<% } %>
</tbody>
</table>
</div>
</div>
</fieldset>
</form>
<br><br>
<form action="registration-props-form.jsp?savemessage=true" method="post">
<fieldset>
<legend>Welcome Message</legend>
<div>
<p>Enter the welcome message that will be sent to new users when they register.</p>
<% if (ParamUtils.getBooleanParameter(request, "welcomeSaved")) { %>
<div class="jive-success">
<table cellpadding="0" cellspacing="0" border="0">
<tbody>
<tr>
<td class="jive-icon"><img src="images/success-16x16.gif" width="16" height="16" border="0"></td>
<td class="jive-icon-label">Message saved successfully.</td>
</tr>
</tbody>
</table>
</div>
<% } %>
<table cellpadding="3" cellspacing="0" border="0" width="100%">
<tbody>
<tr>
<td width="5%" valign="top">Message:&nbsp;</td>
<td width="95%"><textarea cols="45" rows="5" wrap="virtual" name="welcomemessage"><%= welcomeMessage %></textarea></td>
<% if (errors.containsKey("missingWelcomeMessage")) { %>
<span class="jive-error-text"><br>Please enter a welcome message.</span>
<% } %>
</tr>
</tbody>
</table>
</div>
<input type="submit" value="Save Message"/>
</fieldset>
</form>
<br><br>
<form action="registration-props-form.jsp?savegroup=true" method="post">
<fieldset>
<legend>Default Group</legend>
<div>
<p>Enter the name of the group that all new users will be automatically added to.</p>
<% if (ParamUtils.getBooleanParameter(request, "groupSaved")) { %>
<div class="jive-success">
<table cellpadding="0" cellspacing="0" border="0">
<tbody>
<tr>
<td class="jive-icon"><img src="images/success-16x16.gif" width="16" height="16" border="0"></td>
<td class="jive-icon-label">Group saved successfully.</td>
</tr>
</tbody>
</table>
</div>
<% } %>
<table cellpadding="3" cellspacing="0" border="0" width="100%">
<tbody>
<tr>
<td>Default Group:&nbsp;<input type="text" name="groupname" size="30" maxlength="100" value="<%= (group != null ? group : "") %>"/>
<% if (errors.containsKey("groupNotFound")) { %>
<span class="jive-error-text"><br>Group not found or is invalid.</span>
<% } %>
</tr>
</tbody>
</table>
</div>
<input type="submit" value="Save Group"/>
</fieldset>
</form>
<br><br>
<form action="registration-props-form.jsp?saveheader=true" method="post">
<fieldset>
<legend>Sign-Up Page Header Text</legend>
<div>
<p>Enter the text that will be displayed at the top of the sign-up web page.</p>
<% if (ParamUtils.getBooleanParameter(request, "headerSaved")) { %>
<div class="jive-success">
<table cellpadding="0" cellspacing="0" border="0">
<tbody>
<tr>
<td class="jive-icon"><img src="images/success-16x16.gif" width="16" height="16" border="0"></td>
<td class="jive-icon-label">Header saved successfully.</td>
</tr>
</tbody>
</table>
</div>
<% } %>
<table cellpadding="3" cellspacing="0" border="0" width="100%">
<tbody>
<tr>
<td>Header Text:&nbsp;<input type="text" name="header" size="30" maxlength="100" value="<%=header %>"/></td>
<% if (errors.containsKey("missingHeader")) { %>
<span class="jive-error-text"><br>Please enter a header.</span>
<% } %>
</tr>
</tbody>
</table>
</div>
<input type="submit" value="Save Message"/>
</fieldset>
</form>
</body>
<%--
- Copyright (C) 2005 Jive Software. All rights reserved.
-
- This software is published under the terms of the GNU Public License (GPL),
- a copy of which is included in this distribution.
--%>
<%@ page
import="java.util.*,
org.jivesoftware.admin.*,
org.jivesoftware.wildfire.XMPPServer,
org.jivesoftware.wildfire.user.*,
org.jivesoftware.wildfire.plugin.RegistrationPlugin,
org.jivesoftware.wildfire.group.*,
org.jivesoftware.util.*"
errorPage="error.jsp"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jstl/fmt_rt" prefix="fmt"%>
<%
boolean save = request.getParameter("save") != null;
boolean saveWelcome = request.getParameter("savemessage") != null;
boolean saveGroup = request.getParameter("savegroup") != null;
boolean saveHeader = request.getParameter("saveheader") != null;
boolean imEnabled = ParamUtils.getBooleanParameter(request, "imenabled", false);
boolean emailEnabled = ParamUtils.getBooleanParameter(request, "emailenabled", false);
boolean welcomeEnabled = ParamUtils.getBooleanParameter(request, "welcomeenabled", false);
boolean groupEnabled = ParamUtils.getBooleanParameter(request, "groupenabled", false);
boolean webEnabled = ParamUtils.getBooleanParameter(request, "webenabled", false);
String contactIM = ParamUtils.getParameter(request, "contactIM");
boolean addIM = ParamUtils.getBooleanParameter(request, "addIM");
boolean deleteIM = ParamUtils.getBooleanParameter(request, "deleteIM");
String contactEmail = ParamUtils.getParameter(request, "contactEmail");
boolean addEmail = ParamUtils.getBooleanParameter(request, "addEmail");
boolean deleteEmail = ParamUtils.getBooleanParameter(request, "deleteEmail");
String welcomeMessage = ParamUtils.getParameter(request, "welcomemessage");
String group = ParamUtils.getParameter(request, "groupname");
String header = ParamUtils.getParameter(request, "header");
RegistrationPlugin plugin = (RegistrationPlugin) XMPPServer.getInstance().getPluginManager().getPlugin("registration");
Map<String, String> errors = new HashMap<String, String>();
if (addIM) {
if (contactIM == null) {
errors.put("missingContact", "missingContact");
}
else {
contactIM = contactIM.trim().toLowerCase();
try {
XMPPServer.getInstance().getUserManager().getUser(contactIM);
plugin.addIMContact(contactIM);
response.sendRedirect("registration-props-form.jsp?addSuccess=true");
return;
}
catch (UserNotFoundException unfe) {
errors.put("userNotFound", "userNotFound");
}
}
}
if (deleteIM) {
plugin.removeIMContact(contactIM);
response.sendRedirect("registration-props-form.jsp?deleteSuccess=true");
return;
}
if (addEmail) {
if (contactEmail == null) {
errors.put("missingContact", "missingContact");
}
else {
if (plugin.isValidAddress(contactEmail)) {
plugin.addEmailContact(contactEmail);
response.sendRedirect("registration-props-form.jsp?addSuccess=true");
return;
}
else {
errors.put("invalidAddress", "invalidAddress");
}
}
}
if (deleteEmail) {
plugin.removeEmailContact(contactEmail);
response.sendRedirect("registration-props-form.jsp?deleteSuccess=true");
return;
}
if (save) {
plugin.setIMNotificationEnabled(imEnabled);
plugin.setEmailNotificationEnabled(emailEnabled);
plugin.setWelcomeEnabled(welcomeEnabled);
plugin.setWebEnabled(webEnabled);
if (groupEnabled) {
group = plugin.getGroup();
if (group == null || group.trim().length() < 1) {
errors.put("groupNotFound", "groupNotFound");
}
try {
GroupManager.getInstance().getGroup(group);
}
catch (Exception e) {
errors.put("groupNotFound", "groupNotFound");
}
}
if (errors.size() == 0) {
plugin.setGroupEnabled(groupEnabled);
response.sendRedirect("registration-props-form.jsp?settingsSaved=true");
return;
}
}
if (saveWelcome) {
if (welcomeMessage == null || welcomeMessage.trim().length() < 1) {
errors.put("missingWelcomeMessage", "missingWelcomeMessage");
}
else {
plugin.setWelcomeMessage(welcomeMessage);
response.sendRedirect("registration-props-form.jsp?welcomeSaved=true");
return;
}
}
if (saveGroup && plugin.groupEnabled()) {
if (group == null || group.trim().length() < 1) {
errors.put("groupNotFound", "groupNotFound");
}
try {
GroupManager.getInstance().getGroup(group);
}
catch (Exception e) {
errors.put("groupNotFound", "groupNotFound");
}
if (errors.size() == 0) {
plugin.setGroup(group);
response.sendRedirect("registration-props-form.jsp?groupSaved=true");
return;
}
}
if (saveGroup && !plugin.groupEnabled()) {
group = (group == null) ? "" : group;
plugin.setGroup(group);
}
if (saveHeader) {
if (header == null || header.trim().length() < 1) {
errors.put("missingHeader", "missingHeader");
} else {
plugin.setHeader(header);
response.sendRedirect("registration-props-form.jsp?headerSaved=true");
return;
}
}
imEnabled = plugin.imNotificationEnabled();
emailEnabled = plugin.emailNotificationEnabled();
welcomeEnabled = plugin.welcomeEnabled();
groupEnabled = plugin.groupEnabled();
webEnabled = plugin.webEnabled();
welcomeMessage = plugin.getWelcomeMessage();
group = plugin.getGroup();
header = plugin.getHeader();
%>
<html>
<head>
<title><fmt:message key="registration.props.form.title" /></title>
<meta name="pageID" content="registration-props-form"/>
</head>
<body>
<script language="JavaScript" type="text/javascript">
function addIMContact() {
document.regform.addIM.value = 'true';
document.regform.submit();
}
function addEmailContact() {
document.regform.addEmail.value = 'true';
document.regform.submit();
}
</script>
<p><fmt:message key="registration.props.form.details" /></p>
<form action="registration-props-form.jsp?save" name="regform" method="post">
<input type="hidden" name="addIM" value="">
<input type="hidden" name="addEmail" value="">
<div class="jive-contentBoxHeader"><fmt:message key="registration.props.form.registration_settings" /></div>
<div class="jive-contentBox">
<p><fmt:message key="registration.props.form.enable_features" /></p>
<% if (ParamUtils.getBooleanParameter(request, "settingsSaved")) { %>
<div class="jive-success">
<table cellpadding="0" cellspacing="0" border="0">
<tbody>
<tr>
<td class="jive-icon"><img src="images/success-16x16.gif" width="16" height="16" border="0"></td>
<td class="jive-icon-label"><fmt:message key="registration.props.form.save_success" /></td>
</tr>
</tbody>
</table>
</div>
<% } %>
<% if (errors.containsKey("groupNotFound")) { %>
<div class="jive-error">
<table cellpadding="0" cellspacing="0" border="0">
<tbody>
<tr>
<td class="jive-icon"><img src="images/error-16x16.gif" width="16" height="16" border="0"></td>
<td class="jive-icon-label"><fmt:message key="registration.props.form.invalid_group" /></td>
</tr>
</tbody>
</table>
</div>
<% } %>
<table cellpadding="3" cellspacing="0" border="0" width="100%">
<tbody>
<tr>
<td width="1%" align="center" nowrap><input type="checkbox" name="imenabled" <%=(imEnabled) ? "checked" : "" %>></td>
<td width="99%" align="left"><fmt:message key="registration.props.form.enable_im_notification" /></td>
</tr>
<tr>
<td width="1%" align="center" nowrap><input type="checkbox" name="emailenabled" <%=(emailEnabled) ? "checked" : "" %>></td>
<td width="99%" align="left"><fmt:message key="registration.props.form.enable_email_notification" /></td>
</tr>
<tr>
<td width="1%" align="center" nowrap><input type="checkbox" name="welcomeenabled" <%=(welcomeEnabled) ? "checked" : "" %>></td>
<td width="99%" align="left"><fmt:message key="registration.props.form.enable_welcome_msg" /></td>
</tr>
<tr>
<td width="1%" align="center" nowrap><input type="checkbox" name="groupenabled" <%=(groupEnabled) ? "checked" : "" %>></td>
<td width="99%" align="left"><fmt:message key="registration.props.form.enable_add_user_to_group" /></td>
</tr>
<tr>
<td width="1%" align="center" nowrap><input type="checkbox" name="webenabled" <%=(webEnabled) ? "checked" : "" %>></td>
<td width="99%" align="left"><fmt:message key="registration.props.form.enable_web_registration" /> <%=plugin.webRegistrationAddress() %></td>
</tr>
</tbody>
</table>
<br>
<input type="submit" value="<fmt:message key="registration.props.form.save_settings" />"/>
</div>
<br>
<div class="jive-contentBoxHeader"><fmt:message key="registration.props.form.registration_contacts" /></div>
<div class="jive-contentBox">
<p><fmt:message key="registration.props.form.registration_contacts_details" /></p>
<% if (ParamUtils.getBooleanParameter(request, "deleteSuccess")) { %>
<div class="jive-success">
<table cellpadding="0" cellspacing="0" border="0">
<tbody>
<tr>
<td class="jive-icon"><img src="images/success-16x16.gif" width="16" height="16" border="0"></td>
<td class="jive-icon-label"><fmt:message key="registration.props.form.registration_contact_removed" /></td>
</tr>
</tbody>
</table>
</div>
<% } else if (ParamUtils.getBooleanParameter(request, "addSuccess")) { %>
<div class="jive-success">
<table cellpadding="0" cellspacing="0" border="0">
<tbody>
<tr>
<td class="jive-icon"><img src="images/success-16x16.gif" width="16" height="16" border="0"></td>
<td class="jive-icon-label"><fmt:message key="registration.props.form.registration_contact_removed" /></td>
</tr>
</tbody>
</table>
</div>
<% } else if (errors.containsKey("missingContact")) { %>
<div class="jive-error">
<table cellpadding="0" cellspacing="0" border="0">
<tbody>
<tr>
<td class="jive-icon"><img src="images/error-16x16.gif" width="16" height="16" border="0"></td>
<td class="jive-icon-label"><fmt:message key="registration.props.form.registration_contact_missing" /></td>
</tr>
</tbody>
</table>
</div>
<% } else if (errors.containsKey("userNotFound")) { %>
<div class="jive-error">
<table cellpadding="0" cellspacing="0" border="0">
<tbody>
<tr>
<td class="jive-icon"><img src="images/error-16x16.gif" width="16" height="16" border="0"></td>
<td class="jive-icon-label"><fmt:message key="registration.props.form.registration_contact_not_found" /></td>
</tr>
</tbody>
</table>
</div>
<% } else if (errors.containsKey("invalidAddress")) { %>
<div class="jive-error">
<table cellpadding="0" cellspacing="0" border="0">
<tbody>
<tr>
<td class="jive-icon"><img src="images/error-16x16.gif" width="16" height="16" border="0"></td>
<td class="jive-icon-label"><fmt:message key="registration.props.form.registration_invalid_email" /></td>
</tr>
</tbody>
</table>
</div>
<% } %>
<div>
<label for="contacttf"><fmt:message key="registration.props.form.registration_add_im" />:</label>
<input type="text" name="contactIM" size="30" maxlength="100" value="<%= (contactIM != null ? contactIM : "") %>" id="contacttf"/>
<input type="submit" value="<fmt:message key="registration.props.form.registration_add" />" onclick="return addIMContact();"/>
<br><br>
<div class="jive-table" style="width:400px;">
<table cellpadding="0" cellspacing="0" border="0" width="100%">
<thead>
<tr>
<th width="99%"><fmt:message key="registration.props.form.registration_im_contact" /></th>
<th width="1%" nowrap><fmt:message key="registration.props.form.registration_remove" /></th>
</tr>
</thead>
<tbody>
<% if (plugin.getIMContacts().size() == 0) { %>
<tr>
<td width="100%" colspan="2" align="center" nowrap><fmt:message key="registration.props.form.registration_no_contact" /></td>
</tr>
<% } %>
<% for (String imContact : plugin.getIMContacts()) { %>
<tr>
<td width="99%"><%=imContact %></td>
<td width="1%" align="center"><a
href="registration-props-form.jsp?deleteIM=true&contactIM=<%=imContact %>"
title="Delete Contact?"
onclick="return confirm('Are you sure you want to delete this contact?');"><img
src="images/delete-16x16.gif" width="16" height="16"
border="0"></a>
</td>
</tr>
<% } %>
</tbody>
</table>
</div>
</div>
<div>
<label for="emailtf"><fmt:message key="registration.props.form.registration_add_email" />:</label>
<input type="text" name="contactEmail" size="30" maxlength="100" value="<%= (contactEmail != null ? contactEmail : "") %>" id="emailtf"/>
<input type="submit" value="<fmt:message key="registration.props.form.registration_add" />" onclick="return addEmailContact();"/>
<br><br>
<div class="jive-table" style="width:400px;">
<table cellpadding="0" cellspacing="0" border="0" width="100%">
<thead>
<tr>
<th width="99%"><fmt:message key="registration.props.form.registration_email_contact" /></th>
<th width="1%" nowrap><fmt:message key="registration.props.form.registration_add" /></th>
</tr>
</thead>
<tbody>
<% if (plugin.getEmailContacts().size() == 0) { %>
<tr>
<td width="100%" colspan="2" align="center" nowrap><fmt:message key="registration.props.form.registration_no_contact" /></td>
</tr>
<% } %>
<% for (String emailContact : plugin.getEmailContacts()) { %>
<tr>
<td width="99%"><%=emailContact %></td>
<td width="1%" align="center"><a
href="registration-props-form.jsp?deleteEmail=true&contactEmail=<%=emailContact %>"
title="Delete Contact?"
onclick="return confirm('Are you sure you want to delete this contact?');"><img
src="images/delete-16x16.gif" width="16" height="16"
border="0"></a>
</td>
</tr>
<% } %>
</tbody>
</table>
</div>
</div>
</div>
</form>
<br>
<form action="registration-props-form.jsp?savemessage=true" method="post">
<div class="jive-contentBoxHeader"><fmt:message key="registration.props.form.welcome_message" /></div>
<div class="jive-contentBox">
<p><fmt:message key="registration.props.form.welcome_message_details" /></p>
<% if (ParamUtils.getBooleanParameter(request, "welcomeSaved")) { %>
<div class="jive-success">
<table cellpadding="0" cellspacing="0" border="0">
<tbody>
<tr>
<td class="jive-icon"><img src="images/success-16x16.gif" width="16" height="16" border="0"></td>
<td class="jive-icon-label"><fmt:message key="registration.props.form.welcome_message_saved" /></td>
</tr>
</tbody>
</table>
</div>
<% } %>
<table cellpadding="3" cellspacing="0" border="0" width="100%">
<tbody>
<tr>
<td width="5%" valign="top">Message:&nbsp;</td>
<td width="95%"><textarea cols="45" rows="5" wrap="virtual" name="welcomemessage"><%= welcomeMessage %></textarea></td>
<% if (errors.containsKey("missingWelcomeMessage")) { %>
<span class="jive-error-text"><br><fmt:message key="registration.props.form.welcome_message_missing" /></span>
<% } %>
</tr>
</tbody>
</table>
<br>
<input type="submit" value="<fmt:message key="registration.props.form.welcome_message_save" />"/>
</div>
</form>
<br>
<form action="registration-props-form.jsp?savegroup=true" method="post">
<div class="jive-contentBoxHeader"><fmt:message key="registration.props.form.default_group" /></div>
<div class="jive-contentBox">
<p><fmt:message key="registration.props.form.default_group_details" /></p>
<% if (ParamUtils.getBooleanParameter(request, "groupSaved")) { %>
<div class="jive-success">
<table cellpadding="0" cellspacing="0" border="0">
<tbody>
<tr>
<td class="jive-icon"><img src="images/success-16x16.gif" width="16" height="16" border="0"></td>
<td class="jive-icon-label"><fmt:message key="registration.props.form.default_group_saved" /></td>
</tr>
</tbody>
</table>
</div>
<% } %>
<table cellpadding="3" cellspacing="0" border="0" width="100%">
<tbody>
<tr>
<td>Default Group:&nbsp;<input type="text" name="groupname" size="30" maxlength="100" value="<%= (group != null ? group : "") %>"/>
<% if (errors.containsKey("groupNotFound")) { %>
<span class="jive-error-text"><br><fmt:message key="registration.props.form.default_group_invalid" /></span>
<% } %>
</tr>
</tbody>
</table>
<br>
<input type="submit" value="<fmt:message key="registration.props.form.default_group_save" />"/>
</div>
</form>
<br>
<form action="registration-props-form.jsp?saveheader=true" method="post">
<div class="jive-contentBoxHeader"><fmt:message key="registration.props.form.sign_up" /></div>
<div class="jive-contentBox">
<p><fmt:message key="registration.props.form.sign_up_details" /></p>
<% if (ParamUtils.getBooleanParameter(request, "headerSaved")) { %>
<div class="jive-success">
<table cellpadding="0" cellspacing="0" border="0">
<tbody>
<tr>
<td class="jive-icon"><img src="images/success-16x16.gif" width="16" height="16" border="0"></td>
<td class="jive-icon-label"><fmt:message key="registration.props.form.sign_up_saved" /></td>
</tr>
</tbody>
</table>
</div>
<% } %>
<table cellpadding="3" cellspacing="0" border="0" width="100%">
<tbody>
<tr>
<td>Header Text:&nbsp;<input type="text" name="header" size="30" maxlength="100" value="<%=header %>"/></td>
<% if (errors.containsKey("missingHeader")) { %>
<span class="jive-error-text"><br><fmt:message key="registration.props.form.sign_up_missing" /></span>
<% } %>
</tr>
</tbody>
</table>
<br>
<input type="submit" value="<fmt:message key="registration.props.form.sign_up_save" />"/>
</div>
</form>
</body>
</html>
\ No newline at end of file
......@@ -9,7 +9,8 @@
org.jivesoftware.wildfire.plugin.RegistrationPlugin,
org.jivesoftware.util.*,
org.jivesoftware.stringprep.Stringprep,
org.jivesoftware.stringprep.StringprepException"
org.jivesoftware.stringprep.StringprepException,
org.xmpp.packet.JID"
%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
......@@ -17,15 +18,15 @@
<html>
<head>
<title>Jive Wildfire Web Registration</title>
<title><fmt:message key="registration.sign.up.title" /></title>
<link rel="stylesheet" type="text/css" href="/style/global.css">
<style type="text/css">
.drop-shadow {
font-weight: bold;
font-size: 14pt;
color: white;
text-shadow: black 0.1em 0.1em 0.2em;
padding-top: 21px;}
font-weight: bold;
font-size: 14pt;
color: white;
text-shadow: black 0.1em 0.1em 0.2em;
padding-top: 21px;}
</style>
<meta name="decorator" content="none"/>
</head>
......@@ -50,6 +51,7 @@
else {
try {
username = username.trim().toLowerCase();
username = JID.escapeNode(username);
username = Stringprep.nodeprep(username);
}
catch (StringprepException se) {
......@@ -101,11 +103,11 @@
<% if (!plugin.webEnabled()) { %>
This service is currently unavailable.
<fmt:message key="registration.sign.up.unavailable" />
<% } else { %>
<p>Use the form below to create a new user account</p>
<p><fmt:message key="registration.sign.up.instructions" /></p>
<c:set var="submit" value="${param.create}"/>
<c:set var="errors" value="${errors}"/>
......@@ -120,21 +122,21 @@ This service is currently unavailable.
<td class="jive-icon-label">
<% if (errors.get("general") != null) { %>
<fmt:message key="user.create.error_creating_account" />
<fmt:message key="registration.sign.up.error_creating_account" />
<% } else if (errors.get("username") != null) { %>
<fmt:message key="user.create.invalid_username" />
<fmt:message key="registration.sign.up.invalid_username" />
<% } else if (errors.get("usernameAlreadyExists") != null) { %>
<fmt:message key="user.create.user_exist" />
<fmt:message key="registration.sign.up.user_exist" />
<% } else if (errors.get("name") != null) { %>
<fmt:message key="user.create.invalid_name" />
<fmt:message key="registration.sign.up.invalid_name" />
<% } else if (errors.get("email") != null) { %>
<fmt:message key="user.create.invalid_email" />
<fmt:message key="registration.sign.up.invalid_email" />
<% } else if (errors.get("password") != null) { %>
<fmt:message key="user.create.invalid_password" />
<fmt:message key="registration.sign.up.invalid_password" />
<% } else if (errors.get("passwordMatch") != null) { %>
<fmt:message key="user.create.invalid_match_password" />
<fmt:message key="registration.sign.up.invalid_match_password" />
<% } else if (errors.get("passwordConfirm") != null) { %>
<fmt:message key="user.create.invalid_password_confirm" />
<fmt:message key="registration.sign.up.invalid_password_confirm" />
<% } %>
</td>
</tr>
......@@ -150,7 +152,7 @@ This service is currently unavailable.
<tbody>
<tr>
<td class="jive-icon"><img src="images/success-16x16.gif" width="16" height="16" border="0"></td>
<td class="jive-icon-label">New account successfully created.</td>
<td class="jive-icon-label"><fmt:message key="registration.sign.up.success" /></td>
</tr>
</tbody>
</table>
......@@ -160,13 +162,13 @@ This service is currently unavailable.
<form name="f" action="sign-up.jsp" method="get">
<fieldset>
<legend>Create Account</legend>
<div class="jive-contentBoxHeader"><fmt:message key="registration.sign.up.create_account" /></div>
<div class="jive-contentBox">
<div>
<table cellpadding="3" cellspacing="0" border="0" width="100%">
<tbody>
<tr>
<td width="1%" nowrap><label for="usernametf">Username:</label> *</td>
<td width="1%" nowrap><label for="usernametf"><fmt:message key="registration.sign.up.username" />:</label> *</td>
<td width="99%">
<input type="text" name="username" size="30" maxlength="75" value="<%= ((username!=null) ? username : "") %>"
id="usernametf" autocomplete="off">
......@@ -174,7 +176,7 @@ This service is currently unavailable.
</tr>
<tr>
<td width="1%" nowrap>
<label for="nametf">Name:</label>
<label for="nametf"><fmt:message key="registration.sign.up.name" />:</label>
</td>
<td width="99%">
<input type="text" name="name" size="30" maxlength="75" value="<%= ((name!=null) ? name : "") %>"
......@@ -183,7 +185,7 @@ This service is currently unavailable.
</tr>
<tr>
<td width="1%" nowrap>
<label for="emailtf">Email:</label></td>
<label for="emailtf"><fmt:message key="registration.sign.up.email" />:</label></td>
<td width="99%">
<input type="text" name="email" size="30" maxlength="75" value="<%= ((email!=null) ? email : "") %>"
id="emailtf">
......@@ -191,7 +193,7 @@ This service is currently unavailable.
</tr>
<tr>
<td nowrap>
<label for="passtf">Password:</label> *
<label for="passtf"><fmt:message key="registration.sign.up.password" />:</label> *
</td>
<td width="99%">
<input type="password" name="password" value="" size="20" maxlength="75"
......@@ -200,7 +202,7 @@ This service is currently unavailable.
</tr>
<tr>
<td width="1%" nowrap>
<label for="confpasstf">Confirm Password:</label> *
<label for="confpasstf"><fmt:message key="registration.sign.up.confirm_password" />:</label> *
</td>
<td width="99%">
<input type="password" name="passwordConfirm" value="" size="20" maxlength="75"
......@@ -211,15 +213,12 @@ This service is currently unavailable.
</table>
<br>
<span class="jive-description">
* Required Fields
* <fmt:message key="registration.sign.up.required_fields" />
</span>
</div>
</fieldset>
<br><br>
<input type="submit" name="create" value="Create Account">
</div>
<input type="submit" name="create" value="<fmt:message key="registration.sign.up.create_account" />">
</form>
<script language="JavaScript" type="text/javascript">
......
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