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