Author: billyxie
Date: 2010-01-29 04:45:03 +0100 (Fri, 29 Jan 2010)
New Revision: 40748
Added:
CMSContainer/trunk/CMSContainer_Modules/community/src/java/com/finalist/cmsc/community/taglib/GenderTag.java
CMSContainer/trunk/CMSContainer_Modules/community/src/java/com/finalist/cmsc/community/taglib/InfixTag.java
Modified:
CMSContainer/trunk/CMSContainer_Modules/community/src/java/com/finalist/cmsc/services/community/person/PersonHibernateService.java
CMSContainer/trunk/CMSContainer_Modules/community/src/java/com/finalist/cmsc/services/community/person/PersonLDAPService.java
CMSContainer/trunk/CMSContainer_Modules/community/src/java/com/finalist/cmsc/services/community/person/PersonService.java
CMSContainer/trunk/CMSContainer_Modules/community/src/tld/community.tld
Log:
CMSC-1629 - SSO - create tag gender and infix
Added:
CMSContainer/trunk/CMSContainer_Modules/community/src/java/com/finalist/cmsc/community/taglib/GenderTag.java
===================================================================
---
CMSContainer/trunk/CMSContainer_Modules/community/src/java/com/finalist/cmsc/community/taglib/GenderTag.java
(rev 0)
+++
CMSContainer/trunk/CMSContainer_Modules/community/src/java/com/finalist/cmsc/community/taglib/GenderTag.java
2010-01-29 03:45:03 UTC (rev 40748)
@@ -0,0 +1,59 @@
+package com.finalist.cmsc.community.taglib;
+
+import java.io.IOException;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.jsp.JspException;
+import javax.servlet.jsp.PageContext;
+import javax.servlet.jsp.tagext.SimpleTagSupport;
+
+import org.acegisecurity.context.SecurityContextHolder;
+import org.springframework.beans.factory.annotation.Autowire;
+import org.springframework.web.context.WebApplicationContext;
+import org.springframework.web.context.support.WebApplicationContextUtils;
+
+import com.finalist.cmsc.services.community.person.PersonLDAPService;
+import com.finalist.cmsc.services.community.person.PersonService;
+
+public class GenderTag extends SimpleTagSupport {
+
+ private String var;
+
+ public void setVar(String var) {
+ this.var = var;
+ }
+
+ @Override
+ public void doTag() throws JspException, IOException {
+ PageContext pctx = (PageContext) getJspContext();
+ WebApplicationContext ctx =
WebApplicationContextUtils.getRequiredWebApplicationContext(pctx.getServletContext());
+ ctx.getAutowireCapableBeanFactory().autowireBeanProperties(this,
Autowire.BY_NAME.value(), false);
+ HttpServletRequest req = (HttpServletRequest) pctx.getRequest();
+
+ PersonService ps = getPersonLDAPService();
+ org.acegisecurity.Authentication authentication =
SecurityContextHolder.getContext().getAuthentication();
+ if(authentication != null) {
+ String value = ps.getGenderByUserId(authentication.getName());
+ if (var != null) {
+ if (value != null) {
+ req.setAttribute(var, value);
+ } else {
+ req.removeAttribute(var);
+ }
+ } else {
+ pctx.getOut().print(value);
+ }
+ }
+ }
+
+ private PersonService personLDAPService;
+
+ public PersonService getPersonLDAPService() {
+ return personLDAPService;
+ }
+
+ public void setPersonLDAPService(PersonService personLDAPService) {
+ this.personLDAPService = personLDAPService;
+ }
+
+}
Added:
CMSContainer/trunk/CMSContainer_Modules/community/src/java/com/finalist/cmsc/community/taglib/InfixTag.java
===================================================================
---
CMSContainer/trunk/CMSContainer_Modules/community/src/java/com/finalist/cmsc/community/taglib/InfixTag.java
(rev 0)
+++
CMSContainer/trunk/CMSContainer_Modules/community/src/java/com/finalist/cmsc/community/taglib/InfixTag.java
2010-01-29 03:45:03 UTC (rev 40748)
@@ -0,0 +1,11 @@
+package com.finalist.cmsc.community.taglib;
+
+import com.finalist.cmsc.services.community.person.Person;
+
+public class InfixTag extends AbstractCommunityTag {
+
+ @Override
+ protected String getValue(Person person) {
+ return person.getInfix();
+ }
+}
Modified:
CMSContainer/trunk/CMSContainer_Modules/community/src/java/com/finalist/cmsc/services/community/person/PersonHibernateService.java
===================================================================
---
CMSContainer/trunk/CMSContainer_Modules/community/src/java/com/finalist/cmsc/services/community/person/PersonHibernateService.java
2010-01-28 15:21:22 UTC (rev 40747)
+++
CMSContainer/trunk/CMSContainer_Modules/community/src/java/com/finalist/cmsc/services/community/person/PersonHibernateService.java
2010-01-29 03:45:03 UTC (rev 40748)
@@ -578,4 +578,9 @@
return query;
}
+ public String getGenderByUserId(String userId) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
}
Modified:
CMSContainer/trunk/CMSContainer_Modules/community/src/java/com/finalist/cmsc/services/community/person/PersonLDAPService.java
===================================================================
---
CMSContainer/trunk/CMSContainer_Modules/community/src/java/com/finalist/cmsc/services/community/person/PersonLDAPService.java
2010-01-28 15:21:22 UTC (rev 40747)
+++
CMSContainer/trunk/CMSContainer_Modules/community/src/java/com/finalist/cmsc/services/community/person/PersonLDAPService.java
2010-01-29 03:45:03 UTC (rev 40748)
@@ -203,6 +203,24 @@
// TODO Auto-generated method stub
}
+
+ private class GenderContextMapper extends AbstractContextMapper {
+
+ public Object doMapFromContext(DirContextOperations context) {
+ return getStringAttribute(context, "nai-gender");
+ }
+ }
+
+ public String getGenderByUserId(String userId) {
+ AndFilter filter = new AndFilter();
+ filter.and(new EqualsFilter("objectClass", RELATION_CLASS_NAME));
+ filter.and(new EqualsFilter("cn", userId));
+ List<String> groups =
(List<String>)getLdapTemplate().search(RELATION_BASE_DN, filter.encode(), new
GenderContextMapper());
+ if(groups.size() >= 1){
+ return groups.get(0);
+ }
+ return "unknown";
+ }
}
Modified:
CMSContainer/trunk/CMSContainer_Modules/community/src/java/com/finalist/cmsc/services/community/person/PersonService.java
===================================================================
---
CMSContainer/trunk/CMSContainer_Modules/community/src/java/com/finalist/cmsc/services/community/person/PersonService.java
2010-01-28 15:21:22 UTC (rev 40747)
+++
CMSContainer/trunk/CMSContainer_Modules/community/src/java/com/finalist/cmsc/services/community/person/PersonService.java
2010-01-29 03:45:03 UTC (rev 40748)
@@ -27,6 +27,13 @@
public interface PersonService {
Person getPersonByUserId(String userId);
+
+ /**
+ *
+ * @param the id of user
+ * @return gender of user
+ */
+ String getGenderByUserId(String userId);
/**
* Get a list of matching persons that match the given example. The fields
that are set on the example Person are the
Modified:
CMSContainer/trunk/CMSContainer_Modules/community/src/tld/community.tld
===================================================================
--- CMSContainer/trunk/CMSContainer_Modules/community/src/tld/community.tld
2010-01-28 15:21:22 UTC (rev 40747)
+++ CMSContainer/trunk/CMSContainer_Modules/community/src/tld/community.tld
2010-01-29 03:45:03 UTC (rev 40748)
@@ -67,8 +67,19 @@
<rtexprvalue>false</rtexprvalue>
</attribute>
</tag>
-
<tag>
+ <name>infix</name>
+ <tag-class>com.finalist.cmsc.community.taglib.InfixTag</tag-class>
+ <body-content>scriptless</body-content>
+ <description>Infix Name</description>
+ <attribute>
+ <name>var</name>
+ <description>JSP variable name to value of infix name
in.</description>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ </tag>
+ <tag>
<name>lastname</name>
<tag-class>com.finalist.cmsc.community.taglib.LastnameTag</tag-class>
<body-content>scriptless</body-content>
@@ -81,18 +92,17 @@
</attribute>
</tag>
<tag>
- <name>firstname</name>
- <tag-class>com.finalist.cmsc.community.taglib.FirstnameTag</tag-class>
+ <name>gender</name>
+ <tag-class>com.finalist.cmsc.community.taglib.GenderTag</tag-class>
<body-content>scriptless</body-content>
- <description>First Name</description>
+ <description>Show Gender</description>
<attribute>
<name>var</name>
- <description>JSP variable name to value of first name
in.</description>
+ <description>JSP variable name to value of gender.</description>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
</tag>
-
<tag>
<name>email</name>
<tag-class>com.finalist.cmsc.community.taglib.EmailTag</tag-class>
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs