[jboss-svn-commits] JBL Code SVN: r11191 - in labs/jbosslabs/trunk/portal-extensions: forge-ejb3/src/java/org/jboss/forge/ejb3/projectpages and 3 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sat Apr 21 13:39:43 EDT 2007
Author: adamw
Date: 2007-04-21 13:39:43 -0400 (Sat, 21 Apr 2007)
New Revision: 11191
Modified:
labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/ProjectsDescriptor.java
labs/jbosslabs/trunk/portal-extensions/forge-ejb3/src/java/org/jboss/forge/ejb3/projectpages/ProjectPagesServiceBean.java
labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/info/ProjectInfoBean.java
labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/web/WEB-INF/jboss-portlet.xml
labs/jbosslabs/trunk/portal-extensions/portal-default/src/web/WEB-INF/default-object.xml
Log:
Various fixes
Modified: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/ProjectsDescriptor.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/ProjectsDescriptor.java 2007-04-21 14:38:18 UTC (rev 11190)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/ProjectsDescriptor.java 2007-04-21 17:39:43 UTC (rev 11191)
@@ -30,10 +30,6 @@
import org.jboss.forge.common.exceptions.ServiceRetrievalException;
import org.jboss.forge.common.ejb3.LabsServices;
import org.jboss.forge.common.projects.permissions.PermissionsChecker;
-import org.jboss.forge.common.projects.project.Categories;
-import org.jboss.forge.common.projects.project.Category;
-import org.jboss.forge.common.projects.project.Downloads;
-import org.jboss.forge.common.projects.project.File;
import org.jboss.forge.common.projects.project.Project;
import org.jboss.forge.common.projects.project.rw.CategoryRW;
import org.jboss.forge.common.projects.project.rw.DownloadsRW;
@@ -263,7 +259,7 @@
}
String permission = prjConf.getEditPermission();
- return permission == null || pc.hasPermission(permission);
+ return permission != null && pc.hasPermission(permission);
}
public Map<String, String> getProjectsNameId() {
Modified: labs/jbosslabs/trunk/portal-extensions/forge-ejb3/src/java/org/jboss/forge/ejb3/projectpages/ProjectPagesServiceBean.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-ejb3/src/java/org/jboss/forge/ejb3/projectpages/ProjectPagesServiceBean.java 2007-04-21 14:38:18 UTC (rev 11190)
+++ labs/jbosslabs/trunk/portal-extensions/forge-ejb3/src/java/org/jboss/forge/ejb3/projectpages/ProjectPagesServiceBean.java 2007-04-21 17:39:43 UTC (rev 11191)
@@ -152,12 +152,25 @@
* To the specified portal object, binds permissions, which allow unlogged
* users to view the object.
* @param po Portal object, to which permissions should be bound.
+ * @param allowedRoles A set of role names, which are allowed to view the object.
*/
- private void setSecurityBindings(PortalObject po) {
+ private void setSecurityBindings(PortalObject po, Set<String> allowedRoles) {
DomainConfigurator configurator = adr.getDomain("portalobject").getConfigurator();
- Set constraints = Collections.singleton(
- new RoleSecurityBinding(PortalObjectPermission.VIEW_RECURSIVE_ACTION,
- SecurityConstants.UNCHECKED_ROLE_NAME));
+ Set<RoleSecurityBinding> constraints;
+
+ if (allowedRoles == null) {
+ constraints = Collections.singleton(new RoleSecurityBinding(
+ PortalObjectPermission.VIEW_RECURSIVE_ACTION,
+ SecurityConstants.UNCHECKED_ROLE_NAME));
+ } else {
+ constraints = new HashSet<RoleSecurityBinding>();
+ for (String role : allowedRoles) {
+ constraints.add(new RoleSecurityBinding(
+ PortalObjectPermission.VIEW_RECURSIVE_ACTION,
+ role));
+ }
+ }
+
configurator.setSecurityBindings(po.getId().toString(PortalObjectId.CANONICAL_FORMAT), constraints);
}
@@ -281,36 +294,37 @@
* @param pageName Name of the page.
* @param portalObjIds A set where the id of the page should be added, for
* later cleanup.
+ * @param allowedRoles A set of roles, which are allowed to view the page.
* @return A specified page for this project.
* @throws UnknownPortalException In case of a portal exception.
*/
private Page getPage(PortalObject parent, String projectId, String pageName,
- Set<PortalObjectId> portalObjIds) throws UnknownPortalException {
+ Set<PortalObjectId> portalObjIds, Set<String> allowedRoles) throws UnknownPortalException {
// Checking if the page already exists.
Page page = (Page) parent.getChild(pageName);
if (page != null) {
portalObjIds.add(page.getId());
- return page;
- }
+ } else {
+ try {
+ // Trying to create a new page.
+ page = ((PageContainer) parent).createPage(pageName);
- try {
- // Trying to create a new page.
- page = ((PageContainer) parent).createPage(pageName);
+ // Marking this page as belonging to this project.
+ markAsLabsObject(page, projectId);
- // Marking this page as belonging to this project.
- markAsLabsObject(page, projectId);
+ // Setting the layout information.
+ page.setDeclaredProperty("layout.id", "projectDetails");
- // Allowing users to view the page.
- setSecurityBindings(page);
+ portalObjIds.add(page.getId());
+ } catch (DuplicatePortalObjectException e) {
+ throw new UnknownPortalException(e);
+ }
+ }
- // Setting the layout information.
- page.setDeclaredProperty("layout.id", "projectDetails");
+ // Allowing users to view the page.
+ setSecurityBindings(page, allowedRoles);
- portalObjIds.add(page.getId());
- return page;
- } catch (DuplicatePortalObjectException e) {
- throw new UnknownPortalException(e);
- }
+ return page;
}
/**
@@ -321,14 +335,16 @@
* @param pageName Name of the subpage.
* @param portalObjIds A set where the id of the page should be added, for
* later cleanup.
+ * @param allowedRoles A set of roles, which are allowed to view the page.
* @return A specified page for this project.
* @throws UnknownPortalException In case of a portal exception.
*/
- private Page getProjectPage(String projectId, String pageName, Set<PortalObjectId> portalObjIds)
+ private Page getProjectPage(String projectId, String pageName, Set<PortalObjectId> portalObjIds,
+ Set<String> allowedRoles)
throws UnknownPortalException {
- Page page = getPage(getLabsPortal(), projectId, projectId, portalObjIds);
+ Page page = getPage(getLabsPortal(), projectId, projectId, portalObjIds, allowedRoles);
if (!Tools.isEmpty(pageName)) {
- page = getPage(page, projectId, pageName, portalObjIds);
+ page = getPage(page, projectId, pageName, portalObjIds, allowedRoles);
}
return page;
@@ -460,10 +476,12 @@
* @param projectPage Page descriptor.
* @param portalObjIds Set where ids of used portal objects should be added.
* @param portletIds Set where ids of portlet instances objects should be added.
+ * @param allowedRoles A set of roles, which are allowed to view the page.
*/
private void updateProjectPage(String projectId,
org.jboss.forge.common.projects.project.Page projectPage,
- Set<PortalObjectId> portalObjIds, Set<String> portletIds) {
+ Set<PortalObjectId> portalObjIds, Set<String> portletIds,
+ Set<String> allowedRoles) {
String pageName = projectPage.getName();
// Counting the number of occurences of each portlet on the page.
@@ -475,7 +493,7 @@
}
try {
- Page page = getProjectPage(projectId, pageName, portalObjIds);
+ Page page = getProjectPage(projectId, pageName, portalObjIds, allowedRoles);
// A counter for numbering portlet windows occuring more than once,
// which don't have a unique id preference set.
@@ -551,7 +569,7 @@
// Updating each page.
for (org.jboss.forge.common.projects.project.Page page : pages.getPages()) {
- updateProjectPage(projectId, page, portalObjIds, portletIds);
+ updateProjectPage(projectId, page, portalObjIds, portletIds, null);
}
// Adding the admin page.
@@ -564,10 +582,14 @@
adminPage.setName("admin");
adminPage.getPortlets().add(adminPortlet);
- updateProjectPage(projectId, adminPage, portalObjIds, portletIds);
+ Set<String> allowedRoles = new HashSet<String>();
+ allowedRoles.add("Admin");
+ allowedRoles.add(projectId + "-admin");
+
+ updateProjectPage(projectId, adminPage, portalObjIds, portletIds, allowedRoles);
}
- public void updatePages(Collection<? extends Project> projects) {
+ public synchronized void updatePages(Collection<? extends Project> projects) {
String ejbContextID = PolicyContext.getContextID();
try {
PolicyContext.setContextID("portal-server.war");
Modified: labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/info/ProjectInfoBean.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/info/ProjectInfoBean.java 2007-04-21 14:38:18 UTC (rev 11190)
+++ labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/info/ProjectInfoBean.java 2007-04-21 17:39:43 UTC (rev 11191)
@@ -29,6 +29,7 @@
import org.jboss.forge.common.exceptions.ServiceRetrievalException;
import org.jboss.forge.common.projects.ProjectsHelper;
import org.jboss.forge.common.projects.project.Project;
+import org.jboss.forge.common.projects.project.rw.ProjectRW;
import org.jboss.forge.common.ejb3.LabsServices;
import org.jboss.forge.common.ejb3.ProjectsService;
import org.jboss.logging.Logger;
@@ -59,12 +60,16 @@
if (request instanceof PortletRequest) {
PortletRequest req = (PortletRequest) request;
- String projectId = ProjectsHelper.getSelectedProjectId(req);
+ String projectId = ProjectsHelper.getSelectedProjectId(req, true);
project = getProjectById(projectId);
- projectURL = "/" + project.getId();
+ if (project == null) {
+ project = new ProjectRW();
+ }
+ projectURL = "/" + project.getId();
+
username = FacesTools.getRemoteUser();
}
}
Modified: labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/web/WEB-INF/jboss-portlet.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/web/WEB-INF/jboss-portlet.xml 2007-04-21 14:38:18 UTC (rev 11190)
+++ labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/web/WEB-INF/jboss-portlet.xml 2007-04-21 17:39:43 UTC (rev 11191)
@@ -29,4 +29,10 @@
<trans-attribute>Required</trans-attribute>
</transaction>
</portlet>
+ <portlet>
+ <portlet-name>ProjectHeaderPortlet</portlet-name>
+ <transaction>
+ <trans-attribute>Required</trans-attribute>
+ </transaction>
+ </portlet>
</portlet-app>
\ No newline at end of file
Modified: labs/jbosslabs/trunk/portal-extensions/portal-default/src/web/WEB-INF/default-object.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/portal-default/src/web/WEB-INF/default-object.xml 2007-04-21 14:38:18 UTC (rev 11190)
+++ labs/jbosslabs/trunk/portal-extensions/portal-default/src/web/WEB-INF/default-object.xml 2007-04-21 17:39:43 UTC (rev 11191)
@@ -333,18 +333,6 @@
<page>
<page-name>admin</page-name>
<window>
- <window-name>AdminPortletWindow</window-name>
- <instance-ref>AdminPortletInstance</instance-ref>
- <region>center</region>
- <height>0</height>
- </window>
- <window>
- <window-name>CatalogPortletWindow</window-name>
- <instance-ref>CatalogPortletInstance</instance-ref>
- <region>left</region>
- <height>0</height>
- </window>
- <window>
<window-name>UserPortletWindow</window-name>
<instance-ref>UserPortletInstance</instance-ref>
<region>center</region>
@@ -356,6 +344,12 @@
<region>left</region>
<height>0</height>
</window>
+ <window>
+ <window-name>AdminPortletWindow</window-name>
+ <instance-ref>AdminPortletInstance</instance-ref>
+ <region>center</region>
+ <height>1</height>
+ </window>
<security-constraint>
<policy-permission>
<action-name>viewrecursive</action-name>
More information about the jboss-svn-commits
mailing list