[jboss-svn-commits] JBL Code SVN: r18780 - in labs/jbosslabs/trunk/portal-extensions: forge-contributor and 8 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sat Mar 8 20:20:18 EST 2008
Author: unibrew
Date: 2008-03-08 20:20:18 -0500 (Sat, 08 Mar 2008)
New Revision: 18780
Added:
labs/jbosslabs/trunk/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/FacesTools.java
labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/FacesTools.java
labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/info/DummyConverter.java
labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/info/EnumTypeConverter.java
Removed:
labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/DummyConverter.java
labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/EnumTypeConverter.java
labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/FacesTools.java
Modified:
labs/jbosslabs/trunk/portal-extensions/forge-contributor/project.properties
labs/jbosslabs/trunk/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConAccessBean.java
labs/jbosslabs/trunk/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConDataBean.java
labs/jbosslabs/trunk/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConMainBean.java
labs/jbosslabs/trunk/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConServer.java
labs/jbosslabs/trunk/portal-extensions/forge-portlets/project.properties
labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/admin/ProjectAdminBean.java
labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/admin/info/InfoAdminBean.java
labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/admin/pages/PagesAdminBean.java
labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/info/ProjectInfoAccessBean.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/faces-config.xml
Log:
[JBLAB] Bugfix for Contributors and ProjectAdmins portlets. A JSF/ThreadLocal/Classloading issue appeared after Portal update.
Deleted: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/DummyConverter.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/DummyConverter.java 2008-03-08 23:46:33 UTC (rev 18779)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/DummyConverter.java 2008-03-09 01:20:18 UTC (rev 18780)
@@ -1,47 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.forge.common;
-
-import javax.faces.component.UIComponent;
-import javax.faces.context.FacesContext;
-import javax.faces.convert.Converter;
-import javax.faces.convert.ConverterException;
-
-public class DummyConverter implements Converter {
-
- public Object getAsObject(FacesContext context, UIComponent comp,
- String value) throws ConverterException {
-
- return value;
- }
-
- public String getAsString(FacesContext context, UIComponent component,
- Object object) throws ConverterException {
-
- if (object == null) {
- return null;
- }
-
- return object.toString();
- }
-
-}
\ No newline at end of file
Deleted: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/EnumTypeConverter.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/EnumTypeConverter.java 2008-03-08 23:46:33 UTC (rev 18779)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/EnumTypeConverter.java 2008-03-09 01:20:18 UTC (rev 18780)
@@ -1,71 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.forge.common;
-
-import javax.faces.component.UIComponent;
-import javax.faces.context.FacesContext;
-import javax.faces.convert.Converter;
-import javax.faces.convert.ConverterException;
-
-public class EnumTypeConverter implements Converter {
-
- @SuppressWarnings("unchecked")
- public Object getAsObject(FacesContext context, UIComponent comp,
- String value) throws ConverterException {
-
- if ((comp == null) || (value == null)) {
- return null;
- }
-
- Class enumType = comp.getValueBinding("value").getType(context);
- String enumTypeImplClassString = enumType.getName().replace("project.", "project.rw.").concat("RW");
-
- Class enumTypeImpl;
- try {
- enumTypeImpl = Thread.currentThread().getContextClassLoader().
- loadClass(enumTypeImplClassString);
-
- } catch (ClassNotFoundException e) {
-
- return null;
- }
-
- return Enum.valueOf(enumTypeImpl, value.toUpperCase().replace(' ', '_'));
- }
-
- public String getAsString(FacesContext context, UIComponent component,
- Object object) throws ConverterException {
-
- if (object == null) {
- return null;
- }
-
- String string = object.toString();
-
- if (string == null) {
- return null;
- }
-
- return string.toLowerCase().replace('_', ' ');
- }
-
-}
\ No newline at end of file
Deleted: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/FacesTools.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/FacesTools.java 2008-03-08 23:46:33 UTC (rev 18779)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/FacesTools.java 2008-03-09 01:20:18 UTC (rev 18780)
@@ -1,246 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.forge.common;
-
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import javax.faces.application.FacesMessage;
-import javax.faces.context.ExternalContext;
-import javax.faces.context.FacesContext;
-import javax.portlet.PortletRequest;
-
-import org.jboss.forge.common.projects.ProjectsHelper;
-import org.jboss.forge.common.projects.permissions.PermissionsCheckerFactory;
-import org.jboss.portal.api.node.PortalNodeURL;
-import org.jboss.portlet.JBossActionRequest;
-import org.jboss.portlet.JBossActionResponse;
-import org.jboss.portlet.JBossRenderRequest;
-import org.jboss.portlet.JBossRenderResponse;
-
-/**
- * @author adamw
- * @author dejp
- * @author pawel
- *
- * Various static helper methods, mainly reading from the current
- * faces and external contexts.
- */
-public class FacesTools {
-
- public static ExternalContext getExternalContext() {
- return FacesContext.getCurrentInstance().getExternalContext();
- }
-
- public static String getRequestProperty(String propertyName) {
- Object request = getExternalContext().getRequest();
- if (request instanceof JBossActionRequest) {
- return ((JBossActionRequest) request).getPortalContext().
- getProperty(propertyName);
- } else if (request instanceof JBossRenderRequest) {
- return ((JBossRenderRequest) request).getPortalContext().
- getProperty(propertyName);
- } else return null;
- }
-
- public static PortalNodeURL createRenderURL() {
- Object response = getExternalContext().getResponse();
- if (response instanceof JBossActionResponse) {
- //TODO
- //New "feature" of portal 2.2 ...
- return ((JBossActionResponse) response).createRenderURL(
- ((JBossActionRequest) getExternalContext().getRequest()).getPortalNode());
- //return null;
- } else if (response instanceof JBossRenderResponse) {
- return ((JBossRenderResponse) response).createRenderURL(
- ((JBossRenderRequest) getExternalContext().getRequest()).getPortalNode());
- } else {
- return null;
- }
- }
-
- public static String getBaseServerAddress() {
- Object request = getExternalContext().getRequest();
- if (request instanceof JBossActionRequest) {
- return ForgeHelper.getBaseServerAddress((JBossActionRequest) request);
- } else if (request instanceof JBossRenderRequest) {
- return ForgeHelper.getBaseServerAddress((JBossRenderRequest) request);
- } else return "";
- }
-
- public static String getPortalName() {
- return Constants.LABS_PORTAL;
- }
-
- public static boolean hasPermission(String permission) {
-
- Object request = getExternalContext().getRequest();
- if (request instanceof JBossActionRequest) {
- org.jboss.portal.identity.User u = ((JBossActionRequest) request).getUser();
- if (u == null) {
- return false;
- }
-
- return PermissionTools.isUserInRole(u, permission);
- } else if (request instanceof JBossRenderRequest) {
- org.jboss.portal.identity.User u = ((JBossRenderRequest) request).getUser();
- if (u == null) {
- return false;
- }
-
- return PermissionTools.isUserInRole(u, permission);
- } else
- return false;
- }
-
- public static boolean isProjectLead() {
-
- Set<String> projectIds = ProjectsHelper.getProjectIds(FacesTools.getPortalName());
-
- org.jboss.portal.identity.User u = getUser();
-
- if (u == null) {
- return false;
- }
-
- List<String> roles = PermissionTools.getRoleNames(u);
- for (String role : roles) {
- if (role.endsWith("-admin")) {
- if (projectIds.contains(role.replaceAll("-admin", "")))
- return true;
- }
- }
-
- return false;
- }
-
- public static org.jboss.portal.identity.User getUser() {
-
- Object request = getExternalContext().getRequest();
-
- org.jboss.portal.identity.User u = null;
- if (request instanceof JBossActionRequest) {
- u = ((JBossActionRequest) request).getUser();
- } else if (request instanceof JBossRenderRequest) {
- u = ((JBossRenderRequest) request).getUser();
- }
- return u;
- }
-
- public static Set<String> getLeadProjectIds() {
-
- Set<String> projectIds = ProjectsHelper.getProjectIds(FacesTools.getPortalName());
-
- org.jboss.portal.identity.User user = getUser();
-
- if (user == null) {
- return null;
- }
-
- Set<String> results = new LinkedHashSet<String>();
-
- List<String> roles = PermissionTools.getRoleNames(user);
- for (String role : roles) {
- if (role.endsWith("-admin")) {
- String projectId = role.replaceAll("-admin", "");
- if (projectIds.contains(projectId))
- results.add(projectId);
- }
- }
-
- return results;
- }
-
- public static String getRemoteUser() {
- return getExternalContext().getRemoteUser();
- }
-
- public static boolean isUserLogged() {
- return getRemoteUser() != null;
- }
-
- public static boolean isProjectAdminLogged() {
-
- if (!isUserLogged()) {
- return false;
- }
-
- String projectId = FacesTools.getSelectedProjectId();
- String projectAdminString = null;
-
- if ((projectId != null) && (!projectId.equals(""))) {
- projectAdminString = projectId.concat("-admin");
- }
-
- org.jboss.portal.identity.User user = getUser();
-
- return ((projectAdminString != null) &&
- (PermissionTools.isUserInRole(user, projectAdminString))
- || PermissionTools.isUserInRole(user, "Administrators"));
- }
-
- public static org.jboss.portal.identity.User getUser(String username) {
- return null;
- }
-
- public static String getSelectedProjectId() {
-
- PortletRequest request = (PortletRequest) getExternalContext().getRequest();
-
- return ProjectsHelper.getSelectedProjectId(request);
- }
-
- public static void addMessage(String message) {
- FacesContext.getCurrentInstance().addMessage(null,
- new FacesMessage(message));
- }
-
- public static String getRequestParameter(String param) {
-
- FacesContext context = FacesContext.getCurrentInstance();
- Map map = context.getExternalContext().getRequestParameterMap();
- return (String) map.get(param);
- }
-
- public static void resetSessionBean(String beanName) {
-
- FacesContext fc = FacesContext.getCurrentInstance();
- fc.getApplication().createValueBinding( "#{" + beanName + "}").setValue(fc, null );
- }
-
- public static boolean isAllowedToEdit() {
-
- String projectId = getSelectedProjectId();
-
- Object request = getExternalContext().getRequest();
-
- if (request instanceof PortletRequest) {
- return ProjectsHelper.getProjects().editPermissionAllowed(
- PermissionsCheckerFactory.getPermissionsChecker((PortletRequest) request),
- projectId);
- }
-
- return false;
- }
-}
Modified: labs/jbosslabs/trunk/portal-extensions/forge-contributor/project.properties
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-contributor/project.properties 2008-03-08 23:46:33 UTC (rev 18779)
+++ labs/jbosslabs/trunk/portal-extensions/forge-contributor/project.properties 2008-03-09 01:20:18 UTC (rev 18780)
@@ -1,6 +1,9 @@
maven.repo.remote=http://repo1.maven.org/maven
maven.junit.fork=yes
maven.war.src=${basedir}/src/web
-maven.jar.includes=**/*.class, **/*.properties
+maven.war.classes.includes=**/*.class
+maven.war.classes.excludes=
+maven.jar.excludes=**/*.class
+maven.jar.includes=**/*.properties
maven.final.name=${pom.artifactId}
\ No newline at end of file
Modified: labs/jbosslabs/trunk/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConAccessBean.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConAccessBean.java 2008-03-08 23:46:33 UTC (rev 18779)
+++ labs/jbosslabs/trunk/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConAccessBean.java 2008-03-09 01:20:18 UTC (rev 18780)
@@ -21,7 +21,6 @@
*/
package org.jboss.forge.contributor;
-import org.jboss.forge.common.FacesTools;
/**
* @author adamw
Modified: labs/jbosslabs/trunk/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConDataBean.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConDataBean.java 2008-03-08 23:46:33 UTC (rev 18779)
+++ labs/jbosslabs/trunk/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConDataBean.java 2008-03-09 01:20:18 UTC (rev 18780)
@@ -28,7 +28,6 @@
import java.util.List;
import java.util.Map;
-import org.jboss.forge.common.FacesTools;
import org.jboss.forge.common.projects.Projects;
import org.jboss.forge.common.projects.ProjectsHelper;
Modified: labs/jbosslabs/trunk/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConMainBean.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConMainBean.java 2008-03-08 23:46:33 UTC (rev 18779)
+++ labs/jbosslabs/trunk/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConMainBean.java 2008-03-09 01:20:18 UTC (rev 18780)
@@ -30,7 +30,6 @@
import javax.faces.component.UIData;
import javax.faces.context.FacesContext;
-import org.jboss.forge.common.FacesTools;
import org.jboss.forge.common.Constants;
import org.jboss.forge.common.SearchTools;
Modified: labs/jbosslabs/trunk/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConServer.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConServer.java 2008-03-08 23:46:33 UTC (rev 18779)
+++ labs/jbosslabs/trunk/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConServer.java 2008-03-09 01:20:18 UTC (rev 18780)
@@ -32,7 +32,6 @@
import java.util.ResourceBundle;
import java.util.Set;
-import org.jboss.forge.common.FacesTools;
import org.jboss.forge.common.PermissionTools;
import org.jboss.forge.common.ForgeHelper;
import org.jboss.forge.common.projects.ProjectsHelper;
Added: labs/jbosslabs/trunk/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/FacesTools.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/FacesTools.java (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/FacesTools.java 2008-03-09 01:20:18 UTC (rev 18780)
@@ -0,0 +1,249 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.forge.contributor;
+
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import javax.faces.application.FacesMessage;
+import javax.faces.context.ExternalContext;
+import javax.faces.context.FacesContext;
+import javax.portlet.PortletRequest;
+
+import org.jboss.forge.common.projects.ProjectsHelper;
+import org.jboss.forge.common.PermissionTools;
+import org.jboss.forge.common.ForgeHelper;
+import org.jboss.forge.common.Constants;
+import org.jboss.forge.common.projects.permissions.PermissionsCheckerFactory;
+import org.jboss.portal.api.node.PortalNodeURL;
+import org.jboss.portlet.JBossActionRequest;
+import org.jboss.portlet.JBossActionResponse;
+import org.jboss.portlet.JBossRenderRequest;
+import org.jboss.portlet.JBossRenderResponse;
+
+/**
+ * @author adamw
+ * @author dejp
+ * @author pawel
+ *
+ * Various static helper methods, mainly reading from the current
+ * faces and external contexts.
+ */
+public class FacesTools {
+
+ public static ExternalContext getExternalContext() {
+ return FacesContext.getCurrentInstance().getExternalContext();
+ }
+
+ public static String getRequestProperty(String propertyName) {
+ Object request = getExternalContext().getRequest();
+ if (request instanceof JBossActionRequest) {
+ return ((JBossActionRequest) request).getPortalContext().
+ getProperty(propertyName);
+ } else if (request instanceof JBossRenderRequest) {
+ return ((JBossRenderRequest) request).getPortalContext().
+ getProperty(propertyName);
+ } else return null;
+ }
+
+ public static PortalNodeURL createRenderURL() {
+ Object response = getExternalContext().getResponse();
+ if (response instanceof JBossActionResponse) {
+ //TODO
+ //New "feature" of portal 2.2 ...
+ return ((JBossActionResponse) response).createRenderURL(
+ ((JBossActionRequest) getExternalContext().getRequest()).getPortalNode());
+ //return null;
+ } else if (response instanceof JBossRenderResponse) {
+ return ((JBossRenderResponse) response).createRenderURL(
+ ((JBossRenderRequest) getExternalContext().getRequest()).getPortalNode());
+ } else {
+ return null;
+ }
+ }
+
+ public static String getBaseServerAddress() {
+ Object request = getExternalContext().getRequest();
+ if (request instanceof JBossActionRequest) {
+ return ForgeHelper.getBaseServerAddress((JBossActionRequest) request);
+ } else if (request instanceof JBossRenderRequest) {
+ return ForgeHelper.getBaseServerAddress((JBossRenderRequest) request);
+ } else return "";
+ }
+
+ public static String getPortalName() {
+ return Constants.LABS_PORTAL;
+ }
+
+ public static boolean hasPermission(String permission) {
+
+ Object request = getExternalContext().getRequest();
+ if (request instanceof JBossActionRequest) {
+ org.jboss.portal.identity.User u = ((JBossActionRequest) request).getUser();
+ if (u == null) {
+ return false;
+ }
+
+ return PermissionTools.isUserInRole(u, permission);
+ } else if (request instanceof JBossRenderRequest) {
+ org.jboss.portal.identity.User u = ((JBossRenderRequest) request).getUser();
+ if (u == null) {
+ return false;
+ }
+
+ return PermissionTools.isUserInRole(u, permission);
+ } else
+ return false;
+ }
+
+ public static boolean isProjectLead() {
+
+ Set<String> projectIds = ProjectsHelper.getProjectIds(FacesTools.getPortalName());
+
+ org.jboss.portal.identity.User u = getUser();
+
+ if (u == null) {
+ return false;
+ }
+
+ List<String> roles = PermissionTools.getRoleNames(u);
+ for (String role : roles) {
+ if (role.endsWith("-admin")) {
+ if (projectIds.contains(role.replaceAll("-admin", "")))
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ public static org.jboss.portal.identity.User getUser() {
+
+ Object request = getExternalContext().getRequest();
+
+ org.jboss.portal.identity.User u = null;
+ if (request instanceof JBossActionRequest) {
+ u = ((JBossActionRequest) request).getUser();
+ } else if (request instanceof JBossRenderRequest) {
+ u = ((JBossRenderRequest) request).getUser();
+ }
+ return u;
+ }
+
+ public static Set<String> getLeadProjectIds() {
+
+ Set<String> projectIds = ProjectsHelper.getProjectIds(FacesTools.getPortalName());
+
+ org.jboss.portal.identity.User user = getUser();
+
+ if (user == null) {
+ return null;
+ }
+
+ Set<String> results = new LinkedHashSet<String>();
+
+ List<String> roles = PermissionTools.getRoleNames(user);
+ for (String role : roles) {
+ if (role.endsWith("-admin")) {
+ String projectId = role.replaceAll("-admin", "");
+ if (projectIds.contains(projectId))
+ results.add(projectId);
+ }
+ }
+
+ return results;
+ }
+
+ public static String getRemoteUser() {
+ return getExternalContext().getRemoteUser();
+ }
+
+ public static boolean isUserLogged() {
+ return getRemoteUser() != null;
+ }
+
+ public static boolean isProjectAdminLogged() {
+
+ if (!isUserLogged()) {
+ return false;
+ }
+
+ String projectId = FacesTools.getSelectedProjectId();
+ String projectAdminString = null;
+
+ if ((projectId != null) && (!projectId.equals(""))) {
+ projectAdminString = projectId.concat("-admin");
+ }
+
+ org.jboss.portal.identity.User user = getUser();
+
+ return ((projectAdminString != null) &&
+ (PermissionTools.isUserInRole(user, projectAdminString))
+ || PermissionTools.isUserInRole(user, "Administrators"));
+ }
+
+ public static org.jboss.portal.identity.User getUser(String username) {
+ return null;
+ }
+
+ public static String getSelectedProjectId() {
+
+ PortletRequest request = (PortletRequest) getExternalContext().getRequest();
+
+ return ProjectsHelper.getSelectedProjectId(request);
+ }
+
+ public static void addMessage(String message) {
+ FacesContext.getCurrentInstance().addMessage(null,
+ new FacesMessage(message));
+ }
+
+ public static String getRequestParameter(String param) {
+
+ FacesContext context = FacesContext.getCurrentInstance();
+ Map map = context.getExternalContext().getRequestParameterMap();
+ return (String) map.get(param);
+ }
+
+ public static void resetSessionBean(String beanName) {
+
+ FacesContext fc = FacesContext.getCurrentInstance();
+ fc.getApplication().createValueBinding( "#{" + beanName + "}").setValue(fc, null );
+ }
+
+ public static boolean isAllowedToEdit() {
+
+ String projectId = getSelectedProjectId();
+
+ Object request = getExternalContext().getRequest();
+
+ if (request instanceof PortletRequest) {
+ return ProjectsHelper.getProjects().editPermissionAllowed(
+ PermissionsCheckerFactory.getPermissionsChecker((PortletRequest) request),
+ projectId);
+ }
+
+ return false;
+ }
+}
Modified: labs/jbosslabs/trunk/portal-extensions/forge-portlets/project.properties
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-portlets/project.properties 2008-03-08 23:46:33 UTC (rev 18779)
+++ labs/jbosslabs/trunk/portal-extensions/forge-portlets/project.properties 2008-03-09 01:20:18 UTC (rev 18780)
@@ -1,5 +1,10 @@
maven.repo.remote=http://repo1.maven.org/maven
maven.junit.fork=yes
maven.war.src=${basedir}/src/web
+maven.war.classes.includes=**/projects/*.class,**/admin/*.class,**/admin/info/*.class,**/admin/pages/*.class,**/info/*.class
+maven.war.classes.excludes=
+maven.jar.excludes=**/projects/*.class,**/admin/*.class,**/admin/info/*.class,**/admin/pages/*.class,**/info/*.class
+maven.jar.includes=**/*.properties,**/*.class
-maven.final.name=${pom.artifactId}
\ No newline at end of file
+maven.final.name=${pom.artifactId}
+
Added: labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/FacesTools.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/FacesTools.java (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/FacesTools.java 2008-03-09 01:20:18 UTC (rev 18780)
@@ -0,0 +1,249 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.forge.projects;
+
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import javax.faces.application.FacesMessage;
+import javax.faces.context.ExternalContext;
+import javax.faces.context.FacesContext;
+import javax.portlet.PortletRequest;
+
+import org.jboss.forge.common.Constants;
+import org.jboss.forge.common.ForgeHelper;
+import org.jboss.forge.common.PermissionTools;
+import org.jboss.forge.common.projects.ProjectsHelper;
+import org.jboss.forge.common.projects.permissions.PermissionsCheckerFactory;
+import org.jboss.portal.api.node.PortalNodeURL;
+import org.jboss.portlet.JBossActionRequest;
+import org.jboss.portlet.JBossActionResponse;
+import org.jboss.portlet.JBossRenderRequest;
+import org.jboss.portlet.JBossRenderResponse;
+
+/**
+ * @author adamw
+ * @author dejp
+ * @author pawel
+ *
+ * Various static helper methods, mainly reading from the current
+ * faces and external contexts.
+ */
+public class FacesTools {
+
+ public static ExternalContext getExternalContext() {
+ return FacesContext.getCurrentInstance().getExternalContext();
+ }
+
+ public static String getRequestProperty(String propertyName) {
+ Object request = getExternalContext().getRequest();
+ if (request instanceof JBossActionRequest) {
+ return ((JBossActionRequest) request).getPortalContext().
+ getProperty(propertyName);
+ } else if (request instanceof JBossRenderRequest) {
+ return ((JBossRenderRequest) request).getPortalContext().
+ getProperty(propertyName);
+ } else return null;
+ }
+
+ public static PortalNodeURL createRenderURL() {
+ Object response = getExternalContext().getResponse();
+ if (response instanceof JBossActionResponse) {
+ //TODO
+ //New "feature" of portal 2.2 ...
+ return ((JBossActionResponse) response).createRenderURL(
+ ((JBossActionRequest) getExternalContext().getRequest()).getPortalNode());
+ //return null;
+ } else if (response instanceof JBossRenderResponse) {
+ return ((JBossRenderResponse) response).createRenderURL(
+ ((JBossRenderRequest) getExternalContext().getRequest()).getPortalNode());
+ } else {
+ return null;
+ }
+ }
+
+ public static String getBaseServerAddress() {
+ Object request = getExternalContext().getRequest();
+ if (request instanceof JBossActionRequest) {
+ return ForgeHelper.getBaseServerAddress((JBossActionRequest) request);
+ } else if (request instanceof JBossRenderRequest) {
+ return ForgeHelper.getBaseServerAddress((JBossRenderRequest) request);
+ } else return "";
+ }
+
+ public static String getPortalName() {
+ return Constants.LABS_PORTAL;
+ }
+
+ public static boolean hasPermission(String permission) {
+
+ Object request = getExternalContext().getRequest();
+ if (request instanceof JBossActionRequest) {
+ org.jboss.portal.identity.User u = ((JBossActionRequest) request).getUser();
+ if (u == null) {
+ return false;
+ }
+
+ return PermissionTools.isUserInRole(u, permission);
+ } else if (request instanceof JBossRenderRequest) {
+ org.jboss.portal.identity.User u = ((JBossRenderRequest) request).getUser();
+ if (u == null) {
+ return false;
+ }
+
+ return PermissionTools.isUserInRole(u, permission);
+ } else
+ return false;
+ }
+
+ public static boolean isProjectLead() {
+
+ Set<String> projectIds = ProjectsHelper.getProjectIds(FacesTools.getPortalName());
+
+ org.jboss.portal.identity.User u = getUser();
+
+ if (u == null) {
+ return false;
+ }
+
+ List<String> roles = PermissionTools.getRoleNames(u);
+ for (String role : roles) {
+ if (role.endsWith("-admin")) {
+ if (projectIds.contains(role.replaceAll("-admin", "")))
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ public static org.jboss.portal.identity.User getUser() {
+
+ Object request = getExternalContext().getRequest();
+
+ org.jboss.portal.identity.User u = null;
+ if (request instanceof JBossActionRequest) {
+ u = ((JBossActionRequest) request).getUser();
+ } else if (request instanceof JBossRenderRequest) {
+ u = ((JBossRenderRequest) request).getUser();
+ }
+ return u;
+ }
+
+ public static Set<String> getLeadProjectIds() {
+
+ Set<String> projectIds = ProjectsHelper.getProjectIds(FacesTools.getPortalName());
+
+ org.jboss.portal.identity.User user = getUser();
+
+ if (user == null) {
+ return null;
+ }
+
+ Set<String> results = new LinkedHashSet<String>();
+
+ List<String> roles = PermissionTools.getRoleNames(user);
+ for (String role : roles) {
+ if (role.endsWith("-admin")) {
+ String projectId = role.replaceAll("-admin", "");
+ if (projectIds.contains(projectId))
+ results.add(projectId);
+ }
+ }
+
+ return results;
+ }
+
+ public static String getRemoteUser() {
+ return getExternalContext().getRemoteUser();
+ }
+
+ public static boolean isUserLogged() {
+ return getRemoteUser() != null;
+ }
+
+ public static boolean isProjectAdminLogged() {
+
+ if (!isUserLogged()) {
+ return false;
+ }
+
+ String projectId = FacesTools.getSelectedProjectId();
+ String projectAdminString = null;
+
+ if ((projectId != null) && (!projectId.equals(""))) {
+ projectAdminString = projectId.concat("-admin");
+ }
+
+ org.jboss.portal.identity.User user = getUser();
+
+ return ((projectAdminString != null) &&
+ (PermissionTools.isUserInRole(user, projectAdminString))
+ || PermissionTools.isUserInRole(user, "Administrators"));
+ }
+
+ public static org.jboss.portal.identity.User getUser(String username) {
+ return null;
+ }
+
+ public static String getSelectedProjectId() {
+
+ PortletRequest request = (PortletRequest) getExternalContext().getRequest();
+
+ return ProjectsHelper.getSelectedProjectId(request);
+ }
+
+ public static void addMessage(String message) {
+ FacesContext.getCurrentInstance().addMessage(null,
+ new FacesMessage(message));
+ }
+
+ public static String getRequestParameter(String param) {
+
+ FacesContext context = FacesContext.getCurrentInstance();
+ Map map = context.getExternalContext().getRequestParameterMap();
+ return (String) map.get(param);
+ }
+
+ public static void resetSessionBean(String beanName) {
+
+ FacesContext fc = FacesContext.getCurrentInstance();
+ fc.getApplication().createValueBinding( "#{" + beanName + "}").setValue(fc, null );
+ }
+
+ public static boolean isAllowedToEdit() {
+
+ String projectId = getSelectedProjectId();
+
+ Object request = getExternalContext().getRequest();
+
+ if (request instanceof PortletRequest) {
+ return ProjectsHelper.getProjects().editPermissionAllowed(
+ PermissionsCheckerFactory.getPermissionsChecker((PortletRequest) request),
+ projectId);
+ }
+
+ return false;
+ }
+}
Modified: labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/admin/ProjectAdminBean.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/admin/ProjectAdminBean.java 2008-03-08 23:46:33 UTC (rev 18779)
+++ labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/admin/ProjectAdminBean.java 2008-03-09 01:20:18 UTC (rev 18780)
@@ -25,9 +25,9 @@
import javax.faces.component.UIViewRoot;
import javax.faces.context.FacesContext;
-import org.jboss.forge.common.FacesTools;
import org.jboss.forge.common.ejb3.LabsServices;
import org.jboss.forge.common.projects.project.Project;
+import org.jboss.forge.projects.FacesTools;
import org.jboss.forge.projects.admin.info.InfoAdminBean;
import org.jboss.forge.projects.admin.pages.PagesAdminBean;
import org.jboss.logging.Logger;
Modified: labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/admin/info/InfoAdminBean.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/admin/info/InfoAdminBean.java 2008-03-08 23:46:33 UTC (rev 18779)
+++ labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/admin/info/InfoAdminBean.java 2008-03-09 01:20:18 UTC (rev 18780)
@@ -24,7 +24,7 @@
import java.io.Serializable;
import java.util.List;
-import org.jboss.forge.common.FacesTools;
+import org.jboss.forge.projects.FacesTools;
import org.jboss.forge.common.projects.project.Developers;
import org.jboss.forge.common.projects.project.Link;
import org.jboss.forge.common.projects.project.Project;
Modified: labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/admin/pages/PagesAdminBean.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/admin/pages/PagesAdminBean.java 2008-03-08 23:46:33 UTC (rev 18779)
+++ labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/admin/pages/PagesAdminBean.java 2008-03-09 01:20:18 UTC (rev 18780)
@@ -26,7 +26,7 @@
import javax.faces.model.SelectItem;
import javax.management.MalformedObjectNameException;
-import org.jboss.forge.common.FacesTools;
+import org.jboss.forge.projects.FacesTools;
import org.jboss.forge.common.ejb3.LabsServices;
import org.jboss.forge.common.projects.project.Page;
import org.jboss.forge.common.projects.project.Pages;
Added: labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/info/DummyConverter.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/info/DummyConverter.java (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/info/DummyConverter.java 2008-03-09 01:20:18 UTC (rev 18780)
@@ -0,0 +1,47 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.forge.projects.info;
+
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.faces.convert.Converter;
+import javax.faces.convert.ConverterException;
+
+public class DummyConverter implements Converter {
+
+ public Object getAsObject(FacesContext context, UIComponent comp,
+ String value) throws ConverterException {
+
+ return value;
+ }
+
+ public String getAsString(FacesContext context, UIComponent component,
+ Object object) throws ConverterException {
+
+ if (object == null) {
+ return null;
+ }
+
+ return object.toString();
+ }
+
+}
\ No newline at end of file
Added: labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/info/EnumTypeConverter.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/info/EnumTypeConverter.java (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/info/EnumTypeConverter.java 2008-03-09 01:20:18 UTC (rev 18780)
@@ -0,0 +1,71 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.forge.projects.info;
+
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.faces.convert.Converter;
+import javax.faces.convert.ConverterException;
+
+public class EnumTypeConverter implements Converter {
+
+ @SuppressWarnings("unchecked")
+ public Object getAsObject(FacesContext context, UIComponent comp,
+ String value) throws ConverterException {
+
+ if ((comp == null) || (value == null)) {
+ return null;
+ }
+
+ Class enumType = comp.getValueBinding("value").getType(context);
+ String enumTypeImplClassString = enumType.getName().replace("project.", "project.rw.").concat("RW");
+
+ Class enumTypeImpl;
+ try {
+ enumTypeImpl = Thread.currentThread().getContextClassLoader().
+ loadClass(enumTypeImplClassString);
+
+ } catch (ClassNotFoundException e) {
+
+ return null;
+ }
+
+ return Enum.valueOf(enumTypeImpl, value.toUpperCase().replace(' ', '_'));
+ }
+
+ public String getAsString(FacesContext context, UIComponent component,
+ Object object) throws ConverterException {
+
+ if (object == null) {
+ return null;
+ }
+
+ String string = object.toString();
+
+ if (string == null) {
+ return null;
+ }
+
+ return string.toLowerCase().replace('_', ' ');
+ }
+
+}
\ No newline at end of file
Modified: labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/info/ProjectInfoAccessBean.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/info/ProjectInfoAccessBean.java 2008-03-08 23:46:33 UTC (rev 18779)
+++ labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/info/ProjectInfoAccessBean.java 2008-03-09 01:20:18 UTC (rev 18780)
@@ -21,7 +21,7 @@
*/
package org.jboss.forge.projects.info;
-import org.jboss.forge.common.FacesTools;
+import org.jboss.forge.projects.FacesTools;
/**
* @author Pawel Wrzeszcz (pawel . wrzeszcz [at] jboss . com)
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 2008-03-08 23:46:33 UTC (rev 18779)
+++ labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/info/ProjectInfoBean.java 2008-03-09 01:20:18 UTC (rev 18780)
@@ -25,7 +25,7 @@
import javax.portlet.PortletRequest;
-import org.jboss.forge.common.FacesTools;
+import org.jboss.forge.projects.FacesTools;
import org.jboss.forge.common.exceptions.ServiceRetrievalException;
import org.jboss.forge.common.projects.ProjectsHelper;
import org.jboss.forge.common.projects.project.Project;
Modified: labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/web/WEB-INF/faces-config.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/web/WEB-INF/faces-config.xml 2008-03-08 23:46:33 UTC (rev 18779)
+++ labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/web/WEB-INF/faces-config.xml 2008-03-09 01:20:18 UTC (rev 18780)
@@ -124,12 +124,12 @@
<!-- Converters -->
<converter>
<converter-id>enumConverter</converter-id>
- <converter-class>org.jboss.forge.common.EnumTypeConverter</converter-class>
+ <converter-class>org.jboss.forge.projects.info.EnumTypeConverter</converter-class>
</converter>
<converter>
<converter-id>dummyConverter</converter-id>
- <converter-class>org.jboss.forge.common.DummyConverter</converter-class>
+ <converter-class>org.jboss.forge.projects.info.DummyConverter</converter-class>
</converter>
</faces-config>
More information about the jboss-svn-commits
mailing list