Update of 
/var/cvs/contributions/CMSContainer_Modules/community/src/java/com/finalist/cmsc/community/forms
In directory 
james.mmbase.org:/tmp/cvs-serv4666/community/src/java/com/finalist/cmsc/community/forms

Modified Files:
        SearchConditionalUserAction.java 
Log Message:
CMSC-996 code improved.


See also: 
http://cvs.mmbase.org/viewcvs/contributions/CMSContainer_Modules/community/src/java/com/finalist/cmsc/community/forms
See also: http://www.mmbase.org/jira/browse/CMSC-996


Index: SearchConditionalUserAction.java
===================================================================
RCS file: 
/var/cvs/contributions/CMSContainer_Modules/community/src/java/com/finalist/cmsc/community/forms/SearchConditionalUserAction.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- SearchConditionalUserAction.java    31 Jul 2008 02:27:47 -0000      1.8
+++ SearchConditionalUserAction.java    31 Jul 2008 07:55:55 -0000      1.9
@@ -1,82 +1,120 @@
 package com.finalist.cmsc.community.forms;
 
+import com.finalist.cmsc.paging.PagingStatusHolder;
 import com.finalist.cmsc.paging.PagingUtils;
 import com.finalist.cmsc.services.community.domain.PersonVO;
 import com.finalist.cmsc.services.community.person.Person;
-import net.sf.mmapps.commons.util.StringUtil;
+import com.finalist.cmsc.services.community.person.PersonService;
+import com.finalist.cmsc.services.community.security.AuthenticationService;
+import com.finalist.cmsc.services.community.security.AuthorityService;
+import org.apache.commons.lang.StringUtils;
 import org.apache.struts.action.ActionForm;
 import org.apache.struts.action.ActionForward;
 import org.apache.struts.action.ActionMapping;
+import org.apache.struts.actions.DispatchAction;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
 
-public class SearchConditionalUserAction extends AbstractCommunityAction {
+public class SearchConditionalUserAction extends DispatchAction {
 
-   public ActionForward execute(ActionMapping actionMapping, ActionForm 
actionForm, HttpServletRequest request, HttpServletResponse response)
+   private PersonService personService;
+   private AuthenticationService authenticationService;
+   private AuthorityService authorityService;
+
+   public void setPersonService(PersonService personService) {
+      this.personService = personService;
+   }
+
+   public void setAuthenticationService(AuthenticationService 
authenticationService) {
+      this.authenticationService = authenticationService;
+   }
+
+   public void setAuthorityService(AuthorityService authorityService) {
+      this.authorityService = authorityService;
+   }
+
+   protected ActionForward unspecified(ActionMapping actionMapping, ActionForm 
actionForm,
+                                       HttpServletRequest request, 
HttpServletResponse httpServletResponse)
          throws Exception {
 
-      PagingUtils.initStatusHolder(request);
+      setPagingInformation(request);
+      Map<String, String> map = getParameterMap(actionForm);
 
-      Map<String, String> map = ParameterMapper.wrap(actionForm).
-            map("fullname", "fullName").
-            map("username", "userName").
-            map("email", "emailAddr").
-            map("group", "groups").
-            getMap();
+      List<Person> persons = personService.getAssociatedPersons(map);
+      int totalCount = personService.getAssociatedPersonsNum(map);
+
+      setSharedAttributes(request, persons, totalCount);
+
+      return actionMapping.findForward("success");
+   }
+
+
+   public ActionForward listGroupMembers(ActionMapping actionMapping, 
ActionForm actionForm,
+                                          HttpServletRequest request, 
HttpServletResponse httpServletResponse)
+            throws Exception {
+
+      setPagingInformation(request);
+      Map<String, String> map = getParameterMap(actionForm);
 
       String groupName = request.getParameter("groupName");
-      if (!StringUtil.isEmptyOrWhitespace(groupName)) {
+
          map.put("group", groupName);
          map.put("strict", "strict");
-      }
 
+      List<Person> persons = personService.getAssociatedPersons(map);
+      int totalCount = personService.getAssociatedPersonsNum(map);
 
-      List<Person> persons = getPersonService().getAssociatedPersons(map);
-      int totalCount = getPersonService().getAssociatedPersonsNum(map);
-
-      request.setAttribute("personForShow", convertToVO(persons));
-      request.setAttribute("totalCount", totalCount);
-      request.setAttribute("newsletterId", 
request.getParameter("newsletterId"));
-      request.setAttribute("method", request.getParameter("method"));
+      setSharedAttributes(request, persons, totalCount);
 
-      if (!StringUtil.isEmptyOrWhitespace(groupName)) {
          request.setAttribute("groupName", groupName);
          return actionMapping.findForward("group");
       }
-      else {
-         return actionMapping.findForward("success");
-      }
-   }
 
    private List<PersonVO> convertToVO(List<Person> persons) {
       List<PersonVO> perShow;
       perShow = new ArrayList<PersonVO>();
       for (Person p : persons) {
-         String username = 
getAuthenticationService().getAuthenticationById(p.getAuthenticationId()).getUserId();
+         String username = 
authenticationService.getAuthenticationById(p.getAuthenticationId()).getUserId();
+         Set<String> authorityNames = 
authorityService.getAuthorityNamesForUser(username);
+
+         String groupsName = StringUtils.join(authorityNames,", ");
 
          PersonVO per = new PersonVO();
          per.setFullname(p.getFullName());
          per.setEmail(p.getEmail());
          per.setUsername(username);
-
-         String groupsName = "";
-         Set<String> authorityNames = 
getAuthorityService().getAuthorityNamesForUser(username);
-         if (authorityNames.size() >= 1) {
-            Iterator<String> iter = authorityNames.iterator();
-            while (iter.hasNext()) {
-               groupsName += iter.next() + ", ";
-            }
-            groupsName = groupsName.substring(0, groupsName.length() - 2);
             per.setGroups(groupsName);
-         }
-         else {
-            per.setGroups("");
-         }
          per.setAuthId(p.getAuthenticationId());
          perShow.add(per);
       }
       return perShow;
    }
+
+   private void setSharedAttributes(HttpServletRequest request, List<Person> 
persons, int totalCount) {
+      request.setAttribute("personForShow", convertToVO(persons));
+      request.setAttribute("totalCount", totalCount);
+      request.setAttribute("newsletterId", 
request.getParameter("newsletterId"));
+      request.setAttribute("method", request.getParameter("method"));
+   }
+
+   private Map<String, String> getParameterMap(ActionForm actionForm) {
+      Map<String, String> map = ParameterMapper.wrap(actionForm).
+            map("fullname", "fullName").
+            map("username", "userName").
+            map("email", "emailAddr").
+            map("group", "groups").
+            getMap();
+      return map;
+   }
+
+   private void setPagingInformation(HttpServletRequest request) {
+      PagingUtils.initStatusHolder(request);
+      PagingStatusHolder holder = PagingUtils.getStatusHolder();
+      holder.setDefaultSort("person.id","desc");
+   }
 }
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to