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

Modified Files:
        RegisterPorlet.java 
Log Message:
CMSC-1267 Add default community group to registration portlet


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-1267


Index: RegisterPorlet.java
===================================================================
RCS file: 
/var/cvs/contributions/CMSContainer_Portlets/portlets-login/src/java/com/finalist/cmsc/portlets/RegisterPorlet.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -b -r1.14 -r1.15
--- RegisterPorlet.java 4 Feb 2009 12:21:16 -0000       1.14
+++ RegisterPorlet.java 13 Feb 2009 03:29:30 -0000      1.15
@@ -1,7 +1,10 @@
 package com.finalist.cmsc.portlets;
 
 import java.io.IOException;
+import java.util.Collections;
 import java.util.Date;
+import java.util.Set;
+import java.util.TreeSet;
 
 import javax.mail.MessagingException;
 import javax.mail.internet.AddressException;
@@ -23,6 +26,7 @@
 import com.finalist.cmsc.services.community.person.RegisterStatus;
 import com.finalist.cmsc.services.community.security.Authentication;
 import com.finalist.cmsc.services.community.security.AuthenticationService;
+import com.finalist.cmsc.services.community.security.AuthorityService;
 import com.finalist.cmsc.util.EmailSender;
 
 public class RegisterPorlet extends AbstractLoginPortlet {
@@ -33,10 +37,33 @@
    private static final String ACEGI_SECURITY_FORM_LASTNAME_KEY = "lastName";
    private static final String ACEGI_SECURITY_FORM_PASSWORD_KEY = 
"passwordText";
    private static final String ACEGI_SECURITY_FORM_PASSWORDCONF_KEY = 
"passwordConfirmation";
+   private static final String GROUPNAME = "groupName";
+   private static final String ALLGROUPNAMES = "allGroupNames";
+   private static final String NoGROUP = "nogroup";
 
    private static final Log log = LogFactory.getLog(RegisterPorlet.class);
 
    @Override
+   protected void doEditDefaults(RenderRequest req, RenderResponse res) throws 
IOException,
+   PortletException {
+      PortletPreferences preferences = req.getPreferences();
+      setAttribute(req, GROUPNAME, preferences.getValue(GROUPNAME,""));
+      setAttribute(req, ALLGROUPNAMES, getAllGroupNames());
+      
+      super.doEditDefaults(req, res);
+   }
+   
+   @Override
+   public void processEditDefaults(ActionRequest request,
+         ActionResponse response) throws PortletException, IOException {
+      PortletPreferences preferences = request.getPreferences();
+      String portletId = 
preferences.getValue(PortalConstants.CMSC_OM_PORTLET_ID, null);
+      setPortletParameter(portletId, GROUPNAME, 
request.getParameter(GROUPNAME));
+
+      super.processEditDefaults(request, response);
+   }
+   
+   @Override
    public void processView(ActionRequest request, ActionResponse response)
          throws PortletException, IOException {
       
@@ -86,6 +113,12 @@
                   RegisterStatus.UNCONFIRMED.getName(), new Date());
             person.setEmail(email);
             personHibernateService.updatePerson(person);
+            
+            String groupName = preferences.getValue(GROUPNAME, null);
+            if(null != groupName && !NoGROUP.equals(groupName)){
+               
authenticationService.addAuthorityToUserByAuthenticationId(authId.toString(), 
groupName);
+            }
+            
              String emailSubject = preferences
                   .getValue(EMAIL_SUBJECT,
                         "Your account details associated with the given email 
address.\n");
@@ -144,5 +177,9 @@
       doInclude("view", template, request, response);
    }
 
-  
+  private Set<String> getAllGroupNames() {
+     AuthorityService authorityService = (AuthorityService) 
ApplicationContextFactory
+     .getBean("authorityService");
+     return new TreeSet<String>(authorityService.getAuthorityNames());
+}
 }
_______________________________________________
Cvs mailing list
Cvs@lists.mmbase.org
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to