Author: taylor
Date: Fri Jan 29 03:54:27 2010
New Revision: 904370
URL: http://svn.apache.org/viewvc?rev=904370&view=rev
Log:
implementing space maintenance with security refs only
Modified:
portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/spaces/PageNavigator.java
portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/spaces/SpaceBean.java
portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/spaces/SpaceNavigator.java
portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/spaces/SpacesList.java
portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/spaces/SpacesManager.java
portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/toolbox/ThemeBean.java
portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/spaces/page-navigator.jsp
portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/spaces/spaces-list.jsp
portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/spaces/spaces-manager.jsp
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/spaces/SpaceImpl.java
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/spaces/SpacesServiceImpl.java
portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/spaces/Space.java
Modified:
portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/spaces/PageNavigator.java
URL:
http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/spaces/PageNavigator.java?rev=904370&r1=904369&r2=904370&view=diff
==============================================================================
---
portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/spaces/PageNavigator.java
(original)
+++
portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/spaces/PageNavigator.java
Fri Jan 29 03:54:27 2010
@@ -130,18 +130,18 @@
public void doView(RenderRequest request, RenderResponse response)
throws PortletException, IOException
{
- String newSpace =
(String)PortletMessaging.consume(request,"PageNavigator", "spaceChange");
+ String newSpace = (String)PortletMessaging.consume(request,
SpacesManager.MSG_TOPIC_PAGE_NAV, SpacesManager.MSG_SPACE_CHANGE);
if (newSpace != null)
{
- request.getPortletSession().removeAttribute("spaces");
+
request.getPortletSession().removeAttribute(SpaceNavigator.ATTRIBUTE_SPACES);
request.getPortletSession().removeAttribute("pages");
request.getPortletSession().removeAttribute("links");
- request.getPortletSession().removeAttribute("space");
+
request.getPortletSession().removeAttribute(SpaceNavigator.ATTRIBUTE_SPACE);
}
SpaceChangeContext scc = SpaceNavigator.changeSpace(request,
spacesService, newSpace);
- request.setAttribute("space", scc.getSpace());
- request.setAttribute("spaces", scc.getSpaces());
- request.setAttribute("pageNavigator", this);
+ request.setAttribute(SpaceNavigator.ATTRIBUTE_SPACE, scc.getSpace());
+ request.setAttribute(SpaceNavigator.ATTRIBUTE_SPACES,
scc.getSpaces());
+ request.setAttribute(SpacesManager.MSG_TOPIC_PAGE_NAV, this);
request.setAttribute("spaceMenuElements",
getSpaceMenuElements(scc.getSpace(), request));
request.setAttribute("spaceLinkElements",
getSpaceLinkMenuElements(scc.getSpace(), request));
super.doView(request, response);
@@ -154,7 +154,7 @@
if (addPage != null)
{
- SpaceBean space =
(SpaceBean)actionRequest.getPortletSession().getAttribute("space");
+ SpaceBean space =
(SpaceBean)actionRequest.getPortletSession().getAttribute(SpaceNavigator.ATTRIBUTE_SPACE);
if (space != null)
{
Modified:
portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/spaces/SpaceBean.java
URL:
http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/spaces/SpaceBean.java?rev=904370&r1=904369&r2=904370&view=diff
==============================================================================
---
portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/spaces/SpaceBean.java
(original)
+++
portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/spaces/SpaceBean.java
Fri Jan 29 03:54:27 2010
@@ -30,7 +30,16 @@
private String title;
private String description;
private String theme;
+ private String constraint;
+ private boolean persisted = false;
+ public SpaceBean(String name, String owner)
+ {
+ this.name = name;
+ this.owner = owner;
+ this.path = "";
+ }
+
public SpaceBean(Space s)
{
setName(s.getName());
@@ -38,7 +47,14 @@
setOwner(s.getOwner());
setTitle(s.getTitle());
setDescription(s.getDescription());
- setTheme(s.getTheme());
+ setTheme(s.getTheme());
+ setSecurityConstraint(s.getSecurityConstraint());
+ persisted = true;
+ }
+
+ public boolean isPersisted()
+ {
+ return persisted;
}
public String getName() {
@@ -77,4 +93,10 @@
public void setTheme(String theme) {
this.theme = theme;
}
+ public String getSecurityConstraint() {
+ return constraint;
+ }
+ public void setSecurityConstraint(String constraint) {
+ this.constraint = constraint;
+ }
}
Modified:
portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/spaces/SpaceNavigator.java
URL:
http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/spaces/SpaceNavigator.java?rev=904370&r1=904369&r2=904370&view=diff
==============================================================================
---
portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/spaces/SpaceNavigator.java
(original)
+++
portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/spaces/SpaceNavigator.java
Fri Jan 29 03:54:27 2010
@@ -45,6 +45,8 @@
*/
public class SpaceNavigator extends GenericServletPortlet
{
+ public static final String ATTRIBUTE_SPACES = "spaces";
+ public static final String ATTRIBUTE_SPACE = "space";
public static final String NEW_SPACE_PATH_PREF = "newSpacePath";
public static final String NEW_SPACE_PATH_DEFAULT = "/spaces.psml";
@@ -69,30 +71,30 @@
public void doView(RenderRequest request, RenderResponse response)
throws PortletException, IOException
{
- String spaceName =
(String)PortletMessaging.consume(request,"SpaceNavigator", "spaceChange");
+ String spaceName = (String)PortletMessaging.consume(request,
SpacesManager.MSG_TOPIC_SPACE_NAV, SpacesManager.MSG_SPACE_CHANGE);
if (spaceName != null)
{
- request.getPortletSession().removeAttribute("spaces");
- request.getPortletSession().removeAttribute("space");
+
request.getPortletSession().removeAttribute(SpaceNavigator.ATTRIBUTE_SPACES);
+
request.getPortletSession().removeAttribute(SpaceNavigator.ATTRIBUTE_SPACE);
}
SpaceChangeContext scc = changeSpace(request, spacesService,
spaceName);
- request.setAttribute("space", scc.getSpace());
- request.setAttribute("spaces", scc.getSpaces());
+ request.setAttribute(SpaceNavigator.ATTRIBUTE_SPACE, scc.getSpace());
+ request.setAttribute(SpaceNavigator.ATTRIBUTE_SPACES, scc.getSpaces());
super.doView(request, response);
}
public void processAction(ActionRequest actionRequest, ActionResponse
actionResponse) throws PortletException,
IOException
{
- String spaceName = actionRequest.getParameter("space");
+ String spaceName =
actionRequest.getParameter(SpaceNavigator.ATTRIBUTE_SPACE);
if (spaceName != null)
{
Space space = getSpaceFromName(spaceName);
if (space != null)
{
String path = admin.getPortalURL(actionRequest,
actionResponse, space.getPath());
- actionRequest.getPortletSession().setAttribute("space", new
SpaceBean(space));
- PortletMessaging.publish(actionRequest, "PageNavigator",
"spaceChange", spaceName);
+
actionRequest.getPortletSession().setAttribute(SpaceNavigator.ATTRIBUTE_SPACE,
new SpaceBean(space));
+ PortletMessaging.publish(actionRequest,
SpacesManager.MSG_TOPIC_PAGE_NAV, SpacesManager.MSG_SPACE_CHANGE, spaceName);
actionResponse.sendRedirect(path);
}
return;
@@ -101,7 +103,7 @@
if (navAction != null)
{
// TODO: make this link configurable. We need JetspeedLinks like
in Jetspeed-1
- PortletMessaging.cancel(actionRequest, "SpaceList", "spaceChange");
+ PortletMessaging.cancel(actionRequest,
SpacesManager.MSG_TOPIC_SPACE_LIST, SpacesManager.MSG_SPACE_CHANGE);
String newSpacePath =
actionRequest.getPreferences().getValue(NEW_SPACE_PATH_PREF,
NEW_SPACE_PATH_DEFAULT);
String path = admin.getPortalURL(actionRequest, actionResponse,
newSpacePath);
actionResponse.sendRedirect(path);
@@ -150,7 +152,7 @@
protected static SpaceChangeContext changeSpace(RenderRequest request,
Spaces spacesService, String spaceName )
{
- List<SpaceBean> spaces =
(List<SpaceBean>)request.getPortletSession().getAttribute("spaces");
+ List<SpaceBean> spaces =
(List<SpaceBean>)request.getPortletSession().getAttribute(SpaceNavigator.ATTRIBUTE_SPACES);
if (spaces == null)
{
// TODO: use environment
@@ -160,10 +162,10 @@
{
spaces.add(new SpaceBean(s));
}
- request.getPortletSession().setAttribute("spaces", spaces);
+
request.getPortletSession().setAttribute(SpaceNavigator.ATTRIBUTE_SPACES,
spaces);
}
boolean changed = false;
- SpaceBean space =
(SpaceBean)request.getPortletSession().getAttribute("space");
+ SpaceBean space =
(SpaceBean)request.getPortletSession().getAttribute(SpaceNavigator.ATTRIBUTE_SPACE);
if (space == null && spaceName != null)
{
space = findSpace(spaces, spaceName);
@@ -187,7 +189,7 @@
changed = true;
}
if (changed)
- request.getPortletSession().setAttribute("space", space);
+
request.getPortletSession().setAttribute(SpaceNavigator.ATTRIBUTE_SPACE, space);
return new SpaceChangeContext(space, spaces);
}
Modified:
portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/spaces/SpacesList.java
URL:
http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/spaces/SpacesList.java?rev=904370&r1=904369&r2=904370&view=diff
==============================================================================
---
portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/spaces/SpacesList.java
(original)
+++
portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/spaces/SpacesList.java
Fri Jan 29 03:54:27 2010
@@ -29,8 +29,10 @@
import javax.portlet.RenderResponse;
import org.apache.jetspeed.CommonPortletServices;
+import org.apache.jetspeed.portlets.toolbox.ThemeBean;
import org.apache.jetspeed.spaces.Space;
import org.apache.jetspeed.spaces.Spaces;
+import org.apache.jetspeed.spaces.SpacesException;
import org.apache.portals.bridges.common.GenericServletPortlet;
import org.apache.portals.messaging.PortletMessaging;
@@ -60,7 +62,7 @@
public void doView(RenderRequest request, RenderResponse response)
throws PortletException, IOException
{
- List<SpaceBean> spaces =
(List<SpaceBean>)request.getPortletSession().getAttribute("spaces");
+ List<SpaceBean> spaces =
(List<SpaceBean>)request.getPortletSession().getAttribute(SpaceNavigator.ATTRIBUTE_SPACES);
if (spaces == null)
{
List<Space> sl = spacesService.listSpaces();
@@ -69,11 +71,11 @@
{
spaces.add(new SpaceBean(s));
}
- request.getPortletSession().setAttribute("spaces", spaces);
+
request.getPortletSession().setAttribute(SpaceNavigator.ATTRIBUTE_SPACES,
spaces);
}
- request.setAttribute("spaces", spaces);
- String space =
(String)request.getPortletSession().getAttribute("space");
- request.setAttribute("space", space);
+ request.setAttribute(SpaceNavigator.ATTRIBUTE_SPACES, spaces);
+ String space =
(String)request.getPortletSession().getAttribute(SpaceNavigator.ATTRIBUTE_SPACE);
+ request.setAttribute(SpaceNavigator.ATTRIBUTE_SPACE, space);
try
{
super.doView(request, response);
@@ -88,18 +90,46 @@
public void processAction(ActionRequest request, ActionResponse
response)
throws PortletException, IOException
{
- String target = request.getParameter("edit");
- if (target != null)
+ String spaceName = request.getParameter("edit");
+ if (spaceName != null)
{
- PortletMessaging.publish(request, "SpaceList", "spaceChange",
target);
+ PortletMessaging.publish(request,
SpacesManager.MSG_TOPIC_SPACE_LIST, SpacesManager.MSG_SPACE_CHANGE, spaceName);
+ ThemeBean.clearThemesSession(request);
}
else
{
- target = request.getParameter("delete");
- if (target != null)
+ spaceName = request.getParameter("delete");
+ if (spaceName != null)
{
- //spacesService.removeSpace(null, target);
- }
+ Space space =
spacesService.lookupSpace(spaceName);
+ if (space != null)
+ {
+ try
+ {
+
spacesService.deleteSpace(space);
+
request.getPortletSession().removeAttribute(SpaceNavigator.ATTRIBUTE_SPACES);
+ PortletMessaging.cancel(request,
SpacesManager.MSG_TOPIC_SPACE_LIST, SpacesManager.MSG_SPACE_CHANGE);
+ PortletMessaging.cancel(request,
SpacesManager.MSG_TOPIC_SPACE_NAV, SpacesManager.MSG_SPACE_CHANGE);
+ PortletMessaging.cancel(request,
SpacesManager.MSG_TOPIC_PAGE_NAV, SpacesManager.MSG_SPACE_CHANGE);
+
request.getPortletSession().removeAttribute(SpaceNavigator.ATTRIBUTE_SPACES);
+
request.getPortletSession().removeAttribute(SpaceNavigator.ATTRIBUTE_SPACE);
+ ThemeBean.clearThemesSession(request);
+ }
+ catch (SpacesException e)
+ {
+ throw new PortletException(e);
+ }
+ }
+ }
+ else
+ {
+ String add = request.getParameter("addspace");
+ if (add != null)
+ {
+ PortletMessaging.cancel(request,
SpacesManager.MSG_TOPIC_SPACE_LIST, SpacesManager.MSG_SPACE_CHANGE);
+ ThemeBean.clearThemesSession(request);
+ }
+ }
}
}
Modified:
portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/spaces/SpacesManager.java
URL:
http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/spaces/SpacesManager.java?rev=904370&r1=904369&r2=904370&view=diff
==============================================================================
---
portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/spaces/SpacesManager.java
(original)
+++
portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/spaces/SpacesManager.java
Fri Jan 29 03:54:27 2010
@@ -17,13 +17,15 @@
package org.apache.jetspeed.portlets.spaces;
import java.io.IOException;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
import javax.portlet.ActionRequest;
import javax.portlet.ActionResponse;
import javax.portlet.PortletConfig;
import javax.portlet.PortletContext;
import javax.portlet.PortletException;
-import javax.portlet.PortletSession;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
@@ -31,6 +33,7 @@
import org.apache.jetspeed.administration.PortalAdministration;
import org.apache.jetspeed.decoration.DecorationFactory;
import org.apache.jetspeed.om.folder.Folder;
+import org.apache.jetspeed.om.page.SecurityConstraintsDef;
import org.apache.jetspeed.page.PageManager;
import org.apache.jetspeed.portlets.toolbox.ThemeBean;
import org.apache.jetspeed.spaces.Space;
@@ -40,6 +43,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+
/**
* Spaces Manager
*
@@ -48,6 +52,10 @@
*/
public class SpacesManager extends GenericServletPortlet
{
+ public static final String MSG_TOPIC_SPACE_LIST = "SpaceList";
+ public static final String MSG_TOPIC_SPACE_NAV = "SpaceNavigator";
+ public static final String MSG_TOPIC_PAGE_NAV = "PageNavigator";
+ public static final String MSG_SPACE_CHANGE = "spaceChange";
private static final String DEFAULT_SPACE_TEMPLATE = "/_template/space";
private static final String SPACE_TEMPLATE = "spaceTemplate";
@@ -94,46 +102,121 @@
throws PortletException, IOException
{
Space space = null;
- String current = (String)PortletMessaging.receive(request,
"SpaceList", "spaceChange");
+ SpaceBean spaceBean = null;
+ String current = (String)PortletMessaging.receive(request,
SpacesManager.MSG_TOPIC_SPACE_LIST, SpacesManager.MSG_SPACE_CHANGE);
if (current != null)
{
- space = this.spacesService.lookupSpace(current);
+ space = spacesService.lookupSpace(current);
+ spaceBean = new SpaceBean(space);
}
- request.setAttribute("themes", ThemeBean.retrieveThemes(request,
decorationFactory));
- request.setAttribute("space", space);
+ if (space == null)
+ {
+ spaceBean = new SpaceBean("", "");
+ spaceBean.setDescription("");
+ spaceBean.setTitle("");
+ spaceBean.setSecurityConstraint("");
+ spaceBean.setTheme(ThemeBean.getDefaultTheme(request,
decorationFactory));
+ }
+ request.setAttribute("constraints", retrieveConstraints(request));
+ request.setAttribute("themes", ThemeBean.retrieveThemes(request,
decorationFactory, spaceBean.getTheme()));
+ request.setAttribute(SpaceNavigator.ATTRIBUTE_SPACE, spaceBean);
super.doView(request, response);
}
+ protected List<String> retrieveConstraints(RenderRequest request) throws
PortletException
+ {
+
+ List<String> result =
(List<String>)request.getPortletSession().getAttribute("constraints");
+ if (result != null)
+ return result;
+ result = new LinkedList<String>();
+ result.add("");
+ Iterator i;
+ try
+ {
+ i =
this.pageManager.getPageSecurity().getSecurityConstraintsDefs().iterator();
+ } catch (Exception e)
+ {
+ throw new PortletException(e);
+ }
+ while (i.hasNext())
+ {
+ SecurityConstraintsDef def = (SecurityConstraintsDef)i.next();
+ result.add(def.getName());
+ }
+ request.getPortletSession().setAttribute("constraints", result);
+ return result;
+ }
+
public void processAction(ActionRequest actionRequest, ActionResponse
actionResponse) throws PortletException,
IOException
{
+ String persisted = scrapeParameter(actionRequest, "spacePersisted");
+ boolean isNew = (persisted == null || persisted.equals("0") ||
persisted.equalsIgnoreCase("false"));
String name = scrapeParameter(actionRequest, "spaceName");
String title = scrapeParameter(actionRequest, "spaceTitle");
String description = scrapeParameter(actionRequest,
"spaceDescription");
- String theme = scrapeParameter(actionRequest, "theme");
+ String theme = scrapeParameter(actionRequest, "theme");
+ String constraint = scrapeParameter(actionRequest,
"securityConstraintRef");
if (name.length() > 0)
{
try
{
- String spaceName = name.replace(' ', '_');
- String templateFolderPath =
actionRequest.getPreferences().getValue(SPACE_TEMPLATE,
DEFAULT_SPACE_TEMPLATE);
- if (!pageManager.folderExists(templateFolderPath))
- {
- throw new PortletException("Space template folder does not
exist: " + templateFolderPath);
- }
- Folder templateFolder =
pageManager.getFolder(templateFolderPath);
- String owner = actionRequest.getUserPrincipal().getName();
- Space space = spacesService.newSpace(spaceName, owner);
- space.setTheme(theme);
- space.setTitle((title == null) ? name : title);
- space.setDescription((description == null) ? "" : description);
- space = spacesService.storeSpaceFromTemplate(space,
templateFolder);
- PortletMessaging.publish(actionRequest, "SpaceList",
"spaceChange", name);
- PortletMessaging.publish(actionRequest, "SpaceNavigator",
"spaceChange", name);
- PortletMessaging.publish(actionRequest, "PageNavigator",
"spaceChange", name);
- // redirect
- String path = admin.getPortalURL(actionRequest,
actionResponse, space.getPath());
- actionResponse.sendRedirect(path);
+ if (isNew)
+ {
+ // TODO: better validation
+ String spaceName = name.replace(' ', '_');
+ String templateFolderPath =
actionRequest.getPreferences().getValue(SPACE_TEMPLATE,
DEFAULT_SPACE_TEMPLATE);
+ if (!pageManager.folderExists(templateFolderPath))
+ {
+ throw new PortletException("Space template folder does
not exist: " + templateFolderPath);
+ }
+ Folder templateFolder =
pageManager.getFolder(templateFolderPath);
+ String owner =
actionRequest.getUserPrincipal().getName();
+ Space space = spacesService.newSpace(spaceName, owner);
+ space.setTheme(theme);
+ space.setTitle((title == null) ? name : title);
+ space.setDescription((description == null) ? "" :
description);
+ if (!constraint.equals(""))
+ {
+ space.setSecurityConstraint(constraint);
+ }
+ space = spacesService.storeSpaceFromTemplate(space,
templateFolder);
+ // redirect
+ String path = admin.getPortalURL(actionRequest,
actionResponse, space.getPath());
+ actionResponse.sendRedirect(path);
+ }
+ else
+ {
+ String owner = scrapeParameter(actionRequest,
"spaceOwner");
+ Space space = spacesService.lookupSpace(name);
+ if (space != null)
+ {
+ space.setDescription(description);
+ space.setTitle(title);
+ space.setTheme(theme);
+ if (constraint.equals(""))
+ {
+ String old =
space.getSecurityConstraint();
+ if (old != null)
+ {
+ if (!"".equals(old))
+
space.setSecurityConstraint(constraint);
+ }
+
+ }
+ else
+ {
+ space.setSecurityConstraint(constraint);
+ }
+ spacesService.storeSpace(space);
+ }
+ }
+ PortletMessaging.publish(actionRequest,
SpacesManager.MSG_TOPIC_SPACE_LIST, SpacesManager.MSG_SPACE_CHANGE, name);
+ PortletMessaging.publish(actionRequest,
SpacesManager.MSG_TOPIC_SPACE_NAV, SpacesManager.MSG_SPACE_CHANGE, name);
+ PortletMessaging.publish(actionRequest,
SpacesManager.MSG_TOPIC_PAGE_NAV, SpacesManager.MSG_SPACE_CHANGE, name);
+
actionRequest.getPortletSession().removeAttribute(SpaceNavigator.ATTRIBUTE_SPACES);
+
actionRequest.getPortletSession().removeAttribute(SpaceNavigator.ATTRIBUTE_SPACE);
}
catch (Exception e)
{
Modified:
portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/toolbox/ThemeBean.java
URL:
http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/toolbox/ThemeBean.java?rev=904370&r1=904369&r2=904370&view=diff
==============================================================================
---
portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/toolbox/ThemeBean.java
(original)
+++
portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/toolbox/ThemeBean.java
Fri Jan 29 03:54:27 2010
@@ -32,6 +32,7 @@
public class ThemeBean implements Serializable
{
private static final long serialVersionUID = 1L;
+ public static final String ATTRIBUTE_THEMES = "jsThemes";
private String name;
private String title;
@@ -84,10 +85,19 @@
{
this.selected = selected;
}
-
+
+ public static void clearThemesSession(PortletRequest request)
+ {
+ request.getPortletSession().removeAttribute(ATTRIBUTE_THEMES);
+ }
+
public static List<ThemeBean> retrieveThemes(PortletRequest request,
DecorationFactory decorationFactory)
{
- List<ThemeBean> themes =
(List<ThemeBean>)request.getPortletSession().getAttribute("themes");
+ return retrieveThemes(request, decorationFactory, null);
+ }
+ public static List<ThemeBean> retrieveThemes(PortletRequest request,
DecorationFactory decorationFactory, String overrideTheme)
+ {
+ List<ThemeBean> themes =
(List<ThemeBean>)request.getPortletSession().getAttribute(ATTRIBUTE_THEMES);
if (themes != null)
{
return themes;
@@ -116,9 +126,11 @@
{
icon = "";
}
- ThemeBean theme = new ThemeBean(decor.getName(), title, icon);
+ ThemeBean theme = new ThemeBean(decor.getName(), title, icon);
Theme pageTheme =
(Theme)rc.getRequest().getAttribute("org.apache.jetspeed.theme");
- if
(pageTheme.getPageLayoutDecoration().getName().equals(decor.getName()))
+ if (overrideTheme == null)
+ overrideTheme =
pageTheme.getPageLayoutDecoration().getName();
+ if (overrideTheme.equals(decor.getName()))
theme.setSelected(true);
themes.add(theme);
}
@@ -126,5 +138,20 @@
request.getPortletSession().setAttribute("themes", themes);
return themes;
}
-
+
+ public static String getDefaultTheme(PortletRequest request,
DecorationFactory decorationFactory)
+ {
+ RequestContext rc = (RequestContext)
request.getAttribute(RequestContext.REQUEST_PORTALENV);
+ Set<String> decorators =
(Set<String>)decorationFactory.getPageDecorations(rc);
+ for (String name : decorators)
+ {
+ LayoutDecoration decor =
decorationFactory.getLayoutDecoration(name, rc);
+ String compatibility = decor.getProperty("compatibility");
+ if (compatibility != null && compatibility.compareTo("2.2.1") >= 0)
+ {
+ return decor.getName();
+ }
+ }
+ return "jetspeed";
+ }
}
Modified:
portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/spaces/page-navigator.jsp
URL:
http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/spaces/page-navigator.jsp?rev=904370&r1=904369&r2=904370&view=diff
==============================================================================
---
portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/spaces/page-navigator.jsp
(original)
+++
portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/spaces/page-navigator.jsp
Fri Jan 29 03:54:27 2010
@@ -109,7 +109,7 @@
}
SpaceBean space = (SpaceBean) renderRequest.getAttribute("space");
Locale locale = renderRequest.getLocale();
-PageNavigator pageNavigator = (PageNavigator)
renderRequest.getAttribute("pageNavigator");
+PageNavigator pageNavigator = (PageNavigator)
renderRequest.getAttribute("PageNavigator");
List<MenuElement> menuElements = (List<MenuElement>)
renderRequest.getAttribute("spaceMenuElements");
List<MenuElement> linkElements = (List<MenuElement>)
renderRequest.getAttribute("spaceLinkElements");
%>
Modified:
portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/spaces/spaces-list.jsp
URL:
http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/spaces/spaces-list.jsp?rev=904370&r1=904369&r2=904370&view=diff
==============================================================================
---
portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/spaces/spaces-list.jsp
(original)
+++
portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/spaces/spaces-list.jsp
Fri Jan 29 03:54:27 2010
@@ -26,6 +26,7 @@
String current = ((String)renderRequest.getAttribute("space"));
List<SpaceBean> spaces =
(List<SpaceBean>)renderRequest.getAttribute("spaces");
%>
+<form id='jsSpacesList' method="POST" action='<portlet:actionURL/>'>
<table width='100%'>
<tr>
<th class="portlet-section-subheader"><fmt:message
key="spaces.label.title"/></th>
@@ -43,7 +44,13 @@
<td class="<%=style%>"> </td>
<td class="<%=style%>"><a href="<portlet:actionURL><portlet:param
name='edit' value='<%=space.getName()%>'/></portlet:actionURL>"><fmt:message
key="spaces.label.edit"/></a></td>
<td class="<%=style%>"> </td>
+<%
+if (space.getPath().equals("/") || space.getPath().equals("/Administrative")) {
+%>
+ <td class="<%=style%>"></td>
+<% } else { %>
<td class="<%=style%>"><a href="<portlet:actionURL><portlet:param
name='delete' value='<%=space.getName()%>'/></portlet:actionURL>"><fmt:message
key="spaces.label.delete"/></a></td>
+<% } %>
</tr>
<%
}
@@ -51,5 +58,9 @@
<tr>
<th class="portlet-section-header" colspan="6"></th>
</tr>
+ <tr>
+ <td><input name='addspace' type="submit" value="Add Space" /></td>
+ </tr>
</table>
+</form>
Modified:
portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/spaces/spaces-manager.jsp
URL:
http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/spaces/spaces-manager.jsp?rev=904370&r1=904369&r2=904370&view=diff
==============================================================================
---
portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/spaces/spaces-manager.jsp
(original)
+++
portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/spaces/spaces-manager.jsp
Fri Jan 29 03:54:27 2010
@@ -19,6 +19,7 @@
<%...@page import="org.apache.jetspeed.request.RequestContext"%>
<%@ page contentType="text/html" %>
+<%...@page import="org.apache.jetspeed.portlets.spaces.SpaceBean"%>
<%...@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%...@taglib uri="http://java.sun.com/jstl/core_rt" prefix="c_rt"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
@@ -31,38 +32,57 @@
<c:set var="portalContextPath" value="/"/>
</c:if>
+<%
+ SpaceBean space = ((SpaceBean)renderRequest.getAttribute("space"));
+ String readonly = (space.isPersisted()) ? "readonly" : "";
+ String actionString = (space.isPersisted()) ? "Update Space" : "Add
Space";
+ String persisted = (space.isPersisted()) ? "true" : "false";
+%>
+
<form id='jsSpacesManagement' method="POST" action='<portlet:actionURL/>'>
+<input type='hidden' name='spacePersisted' value='<%=persisted%>'/>
<table width="100%">
<tr>
<td>
<table>
<tr>
<td class="portlet-section-subheader">Name:</td>
- <td class="portlet-section-subheader"><input type="text"
name="spaceName" size="30" value="" /></td>
+ <td class="portlet-section-subheader"><input type="text" <%=readonly%>
name="spaceName" size="30" value="${space.name}" /></td>
+ </tr>
+<% if (space.isPersisted()) { %>
+ <tr>
+ <td class="portlet-section-subheader">Owner:</td>
+ <td class="portlet-section-subheader"><input type="text" readonly
name="spaceOwner" size="30" value="${space.owner}" /></td>
</tr>
+<% } %>
<tr>
<td class="portlet-section-subheader">Title:</td>
- <td class="portlet-section-subheader"><input type="text"
name="spaceTitle" size="30" value="" /></td>
+ <td class="portlet-section-subheader"><input type="text"
name="spaceTitle" size="30" value="${space.title}" /></td>
</tr>
<tr>
<td class="portlet-section-subheader">Description:</td>
- <td class="portlet-section-subheader"><input type="text"
name="spaceDescription" size="30" value="" /></td>
+ <td class="portlet-section-subheader"><input type="text"
name="spaceDescription" size="30" value="${space.description}" /></td>
</tr>
- <tr>
- <td class="portlet-section-subheader">URL Domain :</td>
- <td class="portlet-section-subheader"><input type="text"
name="spaceURL" size="30" value="" /></td>
+ <tr>
+ <td class="portlet-section-subheader">Security:</td>
+ <td class="portlet-section-subheader">
+ <select name="securityConstraintRef">
+ <c:forEach items="${constraints}" var="constraint">
+ <option value="${constraint}" <c:if test="${space.securityConstraint
== constraint}"> selected </c:if>>${constraint}</option>
+ </c:forEach>
+ </select>
+ </td>
</tr>
<tr>
<td class="portlet-section-subheader">Theme :</td>
<td class="portlet-section-subheader"></td>
</tr>
<tr>
-
<td colspan='2'>
<table>
<c:forEach var="theme" items="${themes}">
<tr>
- <td><img src='<c:url context="${portalContextPath}"
value="/decorations/layout/${theme.name}/${theme.image}"/>'></td>
+ <td><img src='<c:url context="${portalContextPath}"
value="/decorations/layout/${theme.name}/${theme.image}"/>'></td>
<td style="vertical-align: middle"><input
type="radio" <c:if test="${theme.selected}"> checked </c:if> name="theme"
value="${theme.name}" /> ${theme.title}</td>
</tr>
</c:forEach>
@@ -71,55 +91,9 @@
</tr>
</table>
</td>
- <td>
- <table width="100%">
- <tr>
- <td class="portlet-section-subheader">Share this space with:</td>
- <td class="portlet-section-subheader"></td>
- </tr>
-
- <tr>
- <td colspan='2' style="vertical-align: middle"><input
type="radio" checked name="share" value="everyone" /> Everyone</td>
- </tr>
- <tr>
- <td colspan='2'></td>
- <tr>
- <tr>
- <td style="vertical-align: middle"><input type="radio"
name="share" value="groups" /> Selected Groups:</td>
- <td>
- <input type="checkbox" name="accounting" value="accounting" />
Accounting<br/>
- <input type="checkbox" name="engineering" value="engineering" />
Engineering<br/>
- <input type="checkbox" name="marketing" value="marketing" />
Marketing<br/>
- <input type="checkbox" name="auditing" value="auditing" />
Auditing<br/>
- </td>
- </tr>
- <tr>
- <td colspan='2'></td>
- <tr>
- <tr>
- <td style="vertical-align: middle"><input type="radio"
name="share" value="roles" /> Selected Roles:</td>
- <td>
- <input type="checkbox" name="admin" value="admin" />
Administrator<br/>
- <input type="checkbox" name="dev" value="dev" /> Developer<br/>
- <input type="checkbox" name="editor" value="editor" /> Editor<br/>
- <input type="checkbox" name="manager" value="manager" />
Manager<br/>
- </td>
- </tr>
- <tr>
- <td colspan='2'></td>
- <tr>
- <tr>
- <td colspan='2'></td>
- <tr>
- <tr>
- <td style="vertical-align: middle"><input type="radio"
name="share" value="users" /> Selected Users:</td>
- <td><input type="submit" value="Search..." /></td>
- </tr>
- </table>
- </td>
</tr>
<tr>
- <td colspan='2' style="text-align: center"
class="portlet-section-subheader"><input type="submit" value="Add Space" /></td>
+ <td colspan='2' style="text-align: center"
class="portlet-section-subheader"><input type="submit"
value="<%=actionString%>" /></td>
</tr>
<tr>
<th class="portlet-section-header" colspan="2"></th>
Modified:
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/spaces/SpaceImpl.java
URL:
http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/spaces/SpaceImpl.java?rev=904370&r1=904369&r2=904370&view=diff
==============================================================================
---
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/spaces/SpaceImpl.java
(original)
+++
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/spaces/SpaceImpl.java
Fri Jan 29 03:54:27 2010
@@ -20,6 +20,7 @@
import java.util.List;
import java.util.Locale;
+import org.apache.jetspeed.om.common.SecurityConstraints;
import org.apache.jetspeed.om.folder.Folder;
import org.apache.jetspeed.om.page.Fragment;
@@ -142,4 +143,33 @@
}
+ @SuppressWarnings("unchecked")
+ public String getSecurityConstraint()
+ {
+ if (backingFolder.getSecurityConstraints() == null)
+ return "";
+ List<String> refs =
(List<String>)backingFolder.getSecurityConstraints().getSecurityConstraintsRefs();
+ if (refs == null || refs.isEmpty())
+ return "";
+ return refs.get(0); // TODO: support 0..n constraints
+ }
+
+ public void setSecurityConstraint(String constraint)
+ {
+ if (backingFolder.getSecurityConstraints() == null)
+ {
+ SecurityConstraints cons = backingFolder.newSecurityConstraints();
+ backingFolder.setSecurityConstraints(cons);
+ }
+ List<String> refs =
(List<String>)backingFolder.getSecurityConstraints().getSecurityConstraintsRefs();
+ if (refs.size() == 0)
+ {
+ refs.add(constraint);
+ }
+ else
+ {
+ refs.set(0, constraint);
+ }
+ }
+
}
Modified:
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/spaces/SpacesServiceImpl.java
URL:
http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/spaces/SpacesServiceImpl.java?rev=904370&r1=904369&r2=904370&view=diff
==============================================================================
---
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/spaces/SpacesServiceImpl.java
(original)
+++
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/spaces/SpacesServiceImpl.java
Fri Jan 29 03:54:27 2010
@@ -453,7 +453,10 @@
LocalizedField field = it.next();
if (locale == null || field.getLocale().equals(locale))
{
- return field.getValue();
+ if (field.getName().equals(name))
+ {
+ return field.getValue();
+ }
}
}
}
Modified:
portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/spaces/Space.java
URL:
http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/spaces/Space.java?rev=904370&r1=904369&r2=904370&view=diff
==============================================================================
---
portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/spaces/Space.java
(original)
+++
portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/spaces/Space.java
Fri Jan 29 03:54:27 2010
@@ -257,5 +257,14 @@
* @param template
*/
// void removeTemplate(String template);
-
+
+ /**
+ * Get the security constraint on this space
+ */
+ String getSecurityConstraint();
+
+ /**
+ * Set the security constraint on this space
+ */
+ void setSecurityConstraint(String constraint);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]