Update of
/var/cvs/contributions/CMSContainer_Portlets/portlets-login/src/java/com/finalist/cmsc/portlets
In directory
james.mmbase.org:/tmp/cvs-serv27282/portlets-login/src/java/com/finalist/cmsc/portlets
Modified Files:
RegisterPortlet.java LoginPortlet.java
AbstractLoginPortlet.java
Log Message:
CMSC-1357: autoregistration for newsletter
See also:
http://cvs.mmbase.org/viewcvs/contributions/CMSContainer_Portlets/portlets-login/src/java/com/finalist/cmsc/portlets
See also: http://www.mmbase.org/jira/browse/CMSC-1357
Index: RegisterPortlet.java
===================================================================
RCS file:
/var/cvs/contributions/CMSContainer_Portlets/portlets-login/src/java/com/finalist/cmsc/portlets/RegisterPortlet.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- RegisterPortlet.java 31 Mar 2009 13:11:01 -0000 1.8
+++ RegisterPortlet.java 6 Apr 2009 14:29:16 -0000 1.9
@@ -42,6 +42,7 @@
public static final String ACEGI_SECURITY_FORM_PASSWORDCONF_KEY =
"passwordConfirmation";
public static final String ACEGI_SECURITY_FORM_TERMS = "agreedToTerms";
public static final String ACEGI_SECURITY_DEFAULT = "defaultmessages";
+ public static final String AUTHENTICATION_ID_KEY = "authenticationId";
public static final String GROUPNAME = "groupName";
public static final String ALLGROUPNAMES = "allGroupNames";
@@ -94,7 +95,6 @@
String infix = request.getParameter(ACEGI_SECURITY_FORM_INFIX_KEY);
String lastName = request.getParameter(ACEGI_SECURITY_FORM_LASTNAME_KEY);
String passwordText =
request.getParameter(ACEGI_SECURITY_FORM_PASSWORD_KEY);
- String passwordConfirmation =
request.getParameter(ACEGI_SECURITY_FORM_PASSWORDCONF_KEY);
Long authId = null;
@@ -104,7 +104,7 @@
errorMessages.put(ACEGI_SECURITY_FORM_EMAIL_KEY,
"register.email.match");
}
- validateInputFields(request, errorMessages, preferences, firstName,
lastName, passwordText, passwordConfirmation);
+ validateInputFields(request, errorMessages, preferences);
if (errorMessages.isEmpty()) { //Only continue with Community checks,
when there are no other errors yet.
@@ -148,7 +148,7 @@
errorMessages.put(ACEGI_SECURITY_DEFAULT, "One of the email
addresses failed '" + emailFrom + "' or '" + emailTo + "'!");
} catch (MessagingException e) {
log.error("Email MessagingException failed", e);
- errorMessages.put(ACEGI_SECURITY_DEFAULT, "Sending email
failed, from '" + emailFrom + "' or '" + emailTo + "'!");
+ errorMessages.put(ACEGI_SECURITY_DEFAULT, "Sending email
failed, from '" + emailFrom + "' to '" + emailTo + "'!");
}
if (errorMessages.isEmpty()) {
response.setRenderParameter("email", emailTo);
@@ -173,6 +173,8 @@
request.getPortletSession().setAttribute(ACEGI_SECURITY_FORM_FIRSTNAME_KEY,
firstName);
request.getPortletSession().setAttribute(ACEGI_SECURITY_FORM_INFIX_KEY, infix);
request.getPortletSession().setAttribute(ACEGI_SECURITY_FORM_LASTNAME_KEY,
lastName);
+ } else {
+ request.setAttribute(AUTHENTICATION_ID_KEY, authId);
}
}
@@ -193,12 +195,12 @@
if (StringUtils.isNotEmpty(active)) {
request.setAttribute("active", active);
- template = "login/register_success.jsp";
+ template = getTemplate("register_success");
} else {
if (StringUtils.isNotEmpty(email)) {
- template = "login/register_success.jsp";
+ template = getTemplate("register_success");
} else {
- template = "login/register.jsp";
+ template = getTemplate("register");
}
}
@@ -222,8 +224,11 @@
doInclude("view", template, request, response);
}
- protected void validateInputFields(ActionRequest request, Map<String,
String> errorMessages, PortletPreferences preferences, String firstName,
- String lastName, String passwordText, String passwordConfirmation) {
+ protected void validateInputFields(ActionRequest request, Map<String,
String> errorMessages, PortletPreferences preferences) {
+ String firstName =
request.getParameter(ACEGI_SECURITY_FORM_FIRSTNAME_KEY);
+ String lastName =
request.getParameter(ACEGI_SECURITY_FORM_LASTNAME_KEY);
+ String passwordText =
request.getParameter(ACEGI_SECURITY_FORM_PASSWORD_KEY);
+ String passwordConfirmation =
request.getParameter(ACEGI_SECURITY_FORM_PASSWORDCONF_KEY);
if (StringUtils.isBlank(firstName)) {
errorMessages.put(ACEGI_SECURITY_FORM_FIRSTNAME_KEY,
"register.firstname.empty");
}
@@ -248,4 +253,27 @@
AuthorityService authorityService = (AuthorityService)
ApplicationContextFactory.getBean("authorityService");
return new TreeSet<String>(authorityService.getAuthorityNames());
}
+
+ /**
+ * Returns jsp template for given key. Can be overridden with a specific
view.
+ *
+ * Currently these keys are used:
+ * <ul>
+ * <li>register_success</li>
+ * <li>register</li>
+ * </ul>
+ * @param key
+ * @return
+ */
+ protected String getTemplate(String key) {
+ if ("register_success".equals(key)) {
+ return "login/register_success.jsp";
+ }
+ if ("register".equals(key)) {
+ return "login/register.jsp";
+ }
+ throw new IllegalArgumentException("Unknown key: " + key);
+ }
+
+
}
Index: LoginPortlet.java
===================================================================
RCS file:
/var/cvs/contributions/CMSContainer_Portlets/portlets-login/src/java/com/finalist/cmsc/portlets/LoginPortlet.java,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -b -r1.19 -r1.20
--- LoginPortlet.java 2 Apr 2009 09:05:41 -0000 1.19
+++ LoginPortlet.java 6 Apr 2009 14:29:16 -0000 1.20
@@ -62,7 +62,7 @@
protected void doEditDefaults(RenderRequest req, RenderResponse res) throws
IOException,
PortletException {
- super.DEFAULT_EMAIL_CONFIRM_TEMPLATE_DIR = EMAIL_TEMPLATE_DIR;
+ super.DEFAULT_EMAIL_CONFIRM_TEMPLATE = EMAIL_TEMPLATE_DIR;
super.doEditDefaults(req, res);
}
@@ -209,7 +209,7 @@
protected String getEmailBody(String emailText,ActionRequest request,
Authentication authentication, Person person) {
- super.DEFAULT_EMAIL_CONFIRM_TEMPLATE_DIR = EMAIL_TEMPLATE_DIR;
+ super.DEFAULT_EMAIL_CONFIRM_TEMPLATE = EMAIL_TEMPLATE_DIR;
return String.format(emailText ==
null?getConfirmationTemplate():emailText, authentication
.getUserId(), authentication.getPassword(), person.getFirstName(),
person.getInfix(), person.getLastName());
Index: AbstractLoginPortlet.java
===================================================================
RCS file:
/var/cvs/contributions/CMSContainer_Portlets/portlets-login/src/java/com/finalist/cmsc/portlets/AbstractLoginPortlet.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- AbstractLoginPortlet.java 2 Apr 2009 09:05:41 -0000 1.6
+++ AbstractLoginPortlet.java 6 Apr 2009 14:29:16 -0000 1.7
@@ -37,7 +37,7 @@
public abstract class AbstractLoginPortlet extends CmscPortlet{
- protected String DEFAULT_EMAIL_CONFIRM_TEMPLATE_DIR =
"../templates/view/login/confirmation.txt";
+ protected String DEFAULT_EMAIL_CONFIRM_TEMPLATE =
"../templates/view/login/confirmation.txt";
protected static final String EMAIL_SUBJECT = "emailSubject";
protected static final String EMAIL_TEXT = "emailText";
protected static final String EMAIL_FROMEMAIL = "emailFromEmail";
@@ -106,12 +106,16 @@
String confirmUrl = HttpUtil.getWebappUri((HttpServletRequest)
request)
+ "login/confirm.do?s=" + authentication.getId() + url;
+ return formatConfirmationText(emailText, authentication, person,
confirmUrl);
+ }
+ return null;
+ }
+
+ protected String formatConfirmationText(String emailText, Authentication
authentication, Person person, String confirmUrl) {
return String.format(emailText ==
null?getConfirmationTemplate():emailText, authentication
.getUserId(), authentication.getPassword(),
person.getFirstName(),
person.getInfix(), person.getLastName(), confirmUrl);
}
- return null;
- }
protected Cloud getCloudForAnonymousUpdate(boolean isRemote) {
Cloud cloud = CloudProviderFactory.getCloudProvider().getCloud();
@@ -163,7 +167,7 @@
protected String getConfirmationTemplate() {
InputStream is = Thread.currentThread().getContextClassLoader()
- .getResourceAsStream(DEFAULT_EMAIL_CONFIRM_TEMPLATE_DIR);
+ .getResourceAsStream(getEmailConfirmTemplate());
if (is == null) {
throw new NullPointerException(
@@ -186,6 +190,10 @@
return sb.toString();
}
+ protected String getEmailConfirmTemplate() {
+ return DEFAULT_EMAIL_CONFIRM_TEMPLATE;
+ }
+
protected boolean isEmailAddress(String emailAddress) {
if (emailAddress == null) {
return false;
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs