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

Modified Files:
      Tag: b1_5
        RegisterPortlet.java 
Log Message:
CMSC-1357: made some code overrideable for usage by customer specific portlets


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.2.8
retrieving revision 1.1.2.9
diff -u -b -r1.1.2.8 -r1.1.2.9
--- RegisterPortlet.java        31 Mar 2009 13:11:07 -0000      1.1.2.8
+++ RegisterPortlet.java        6 Apr 2009 13:08:21 -0000       1.1.2.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.
       
@@ -113,6 +113,8 @@
          Long authenticationId = 
authenticationService.getAuthenticationIdForUserId(emailTo);
    
          if (authenticationId == null) {
+            // TODO check if password is mandatory
+            //if (passwordText == null) passwordText="";
             Authentication authentication = 
authenticationService.createAuthentication(emailTo, passwordText);
             if (authentication.getId() != null) {
                authId = authentication.getId();
@@ -148,7 +150,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 +175,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 +197,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 +226,12 @@
       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 +256,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);
+   }
+   
+   
 }
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to