Update of 
/var/cvs/contributions/CMSContainer_Portlets/portlets-login/src/java/com/finalist/cmsc/portlets
In directory 
james.mmbase.org:/tmp/cvs-serv27039/portlets-login/src/java/com/finalist/cmsc/portlets

Modified Files:
      Tag: b1_6
        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.1.4.8
retrieving revision 1.1.4.9
diff -u -b -r1.1.4.8 -r1.1.4.9
--- RegisterPortlet.java        31 Mar 2009 13:11:17 -0000      1.1.4.8
+++ RegisterPortlet.java        6 Apr 2009 14:25:56 -0000       1.1.4.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.15.2.4
retrieving revision 1.15.2.5
diff -u -b -r1.15.2.4 -r1.15.2.5
--- LoginPortlet.java   2 Apr 2009 09:21:28 -0000       1.15.2.4
+++ LoginPortlet.java   6 Apr 2009 14:25:56 -0000       1.15.2.5
@@ -59,7 +59,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);
    }
    
@@ -206,7 +206,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.2.2.4
retrieving revision 1.2.2.5
diff -u -b -r1.2.2.4 -r1.2.2.5
--- AbstractLoginPortlet.java   2 Apr 2009 09:21:28 -0000       1.2.2.4
+++ AbstractLoginPortlet.java   6 Apr 2009 14:25:56 -0000       1.2.2.5
@@ -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

Reply via email to