Update of
/var/cvs/contributions/CMSContainer_Portlets/portlets-login/src/java/com/finalist/cmsc/portlets
In directory
james.mmbase.org:/tmp/cvs-serv26722/src/java/com/finalist/cmsc/portlets
Modified Files:
RegisterPorlet.java
Log Message:
CMSC-948 Registration portlet for CMS container
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-948
Index: RegisterPorlet.java
===================================================================
RCS file:
/var/cvs/contributions/CMSContainer_Portlets/portlets-login/src/java/com/finalist/cmsc/portlets/RegisterPorlet.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- RegisterPorlet.java 7 Nov 2008 01:53:00 -0000 1.1
+++ RegisterPorlet.java 7 Nov 2008 06:56:27 -0000 1.2
@@ -5,16 +5,25 @@
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Date;
+import java.util.List;
import javax.portlet.ActionRequest;
import javax.portlet.ActionResponse;
import javax.portlet.PortletException;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
+import javax.servlet.http.HttpServletRequest;
+
+import net.sf.mmapps.modules.cloudprovider.CloudProviderFactory;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.mmbase.bridge.Cloud;
+import org.mmbase.bridge.Node;
+import org.mmbase.bridge.NodeList;
+import org.mmbase.bridge.RelationList;
+import org.mmbase.bridge.util.SearchUtil;
import org.mmbase.util.Encode;
import com.finalist.cmsc.mmbase.EmailUtil;
@@ -24,6 +33,9 @@
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.publish.Publish;
+import com.finalist.cmsc.services.sitemanagement.SiteManagement;
+import com.finalist.cmsc.util.HttpUtil;
public class RegisterPorlet extends CmscPortlet{
protected static final String ACTION_PARAMETER = "action";
@@ -84,6 +96,12 @@
String template;
String error = request.getParameter("errorMessages");
String email = request.getParameter("email");
+ String active = request.getParameter("active");
+ if(StringUtils.isNotEmpty(active)) {
+ request.setAttribute("active", active);
+ template = "login/register_success.jsp";
+ }
+ else {
if(StringUtils.isNotEmpty(email)) {
template = "login/register_success.jsp";
}
@@ -93,6 +111,7 @@
}
template = "login/regist.jsp";
}
+ }
doInclude("view", template, request, response);
}
protected String getEmailBody(ActionRequest request,String email) {
@@ -111,8 +130,38 @@
catch (IOException e) {
log.error("error happen when reading email template",e);
}
+ Cloud cloud = getCloudForAnonymousUpdate(false);
+ String url = getUnsubscribeLink(cloud);
Encode encoder = new org.mmbase.util.Encode("BASE64");
- String confirmUrl =
request.getContextPath()+"/login/confirm.do?s="+encoder.encode(email);
+ String confirmUrl = HttpUtil.getWebappUri((HttpServletRequest)
request)+"login/confirm.do?s="+encoder.encode(email)+"&pn="+this.getPortletName()+"&returnurl="+encoder.encode(url);
return String.format(sb.toString(), email,confirmUrl);
}
+ public Cloud getCloudForAnonymousUpdate(boolean isRemote) {
+ Cloud cloud = CloudProviderFactory.getCloudProvider().getCloud();
+ if (isRemote) {
+ return Publish.getRemoteCloud(cloud);
+ }
+ return cloud;
+ }
+ private String getUnsubscribeLink(Cloud cloud) {
+ String link = null;
+ NodeList portletDefinations = SearchUtil.findNodeList(cloud,
"portletdefinition", "definition", this.getPortletName());
+ Node regiesterPortletDefination = portletDefinations.getNode(0);
+ if (portletDefinations.size() > 1) {
+ log.error("found " + portletDefinations.size() + " regiesterPortlet
nodes; first one will be used");
+ }
+ NodeList portlets =
regiesterPortletDefination.getRelatedNodes("portlet", "definitionrel",
SearchUtil.SOURCE);
+ Node portlet = portlets.getNode(0);
+ NodeList pages = portlet.getRelatedNodes("page");
+ if (pages != null && pages.size() >= 1) {
+ Node page = pages.getNode(pages.size() - 1);
+ link = SiteManagement.getPath(page.getNumber(), true);
+ // link = "content/" + page.getNumber();
+ RelationList relations = portlet.getRelations("portletrel",
page.getNodeManager());
+ String name = relations.getRelation(0).getStringValue("name");
+ link +=
"/_rp_".concat(name).concat("_").concat("active").concat("/1_");
+
+ }
+ return link;
+ }
}
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs