[jboss-cvs] JBossBlog SVN: r15 - in trunk: . blog-core blog-core/src/etc/META-INF blog-core/src/java/org/jboss/blog/service/permissions blog-core/src/java/org/jboss/blog/service/permissions/acl blog-core/src/java/org/jboss/blog/tools blog-core/src/web/WEB-INF blog-core/src/web/views
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Oct 24 18:07:59 EDT 2006
Author: adamw
Date: 2006-10-24 18:07:48 -0400 (Tue, 24 Oct 2006)
New Revision: 15
Added:
trunk/blog-core/src/java/org/jboss/blog/service/permissions/SecurityContext.java
trunk/blog-core/src/java/org/jboss/blog/service/permissions/acl/
trunk/blog-core/src/java/org/jboss/blog/service/permissions/acl/ACLTagHandler.java
trunk/blog-core/src/java/org/jboss/blog/service/permissions/acl/AclBlogPermissionsService.java
trunk/blog-core/src/java/org/jboss/blog/service/permissions/acl/AuthorizationListener.java
trunk/blog-core/src/java/org/jboss/blog/service/permissions/acl/JBossPortalUtil.java
trunk/blog-core/src/java/org/jboss/blog/service/permissions/acl/JSFActionContext.java
trunk/blog-core/src/java/org/jboss/blog/service/permissions/acl/JSFSecurityContext.java
trunk/blog-core/src/java/org/jboss/blog/service/permissions/acl/JSFUIContext.java
trunk/blog-core/src/web/WEB-INF/blog.taglib.xml
trunk/blog-core/src/web/views/userblogview_t.xhtml
Removed:
trunk/blog-core/src/java/org/jboss/blog/service/permissions/BasicBlogPermissionsService.java
trunk/blog-core/src/java/org/jboss/blog/tools/SetWithoutBottom.java
Modified:
trunk/blog-core/build.xml
trunk/blog-core/src/etc/META-INF/acl-mapping.xml
trunk/blog-core/src/etc/META-INF/acl-permissions.xml
trunk/blog-core/src/etc/META-INF/jboss-service.xml
trunk/blog-core/src/java/org/jboss/blog/service/permissions/BlogPermissionsService.java
trunk/blog-core/src/java/org/jboss/blog/tools/BlogTools.java
trunk/blog-core/src/web/WEB-INF/faces-config.xml
trunk/blog-core/src/web/WEB-INF/web.xml
trunk/blog-core/src/web/views/index.xhtml
trunk/blog-core/src/web/views/userview_t.xhtml
trunk/blog-core/src/web/views/viewblog.xhtml
trunk/blog-core/src/web/views/viewentry.xhtml
trunk/jbossblog.iws
Log:
http://jira.jboss.com/jira/browse/JBBLOG-6
Modified: trunk/blog-core/build.xml
===================================================================
--- trunk/blog-core/build.xml 2006-10-20 22:16:42 UTC (rev 14)
+++ trunk/blog-core/build.xml 2006-10-24 22:07:48 UTC (rev 15)
@@ -4,8 +4,8 @@
<!-- Configuration of deployment -->
<property name="jboss.home" value="/home/adamw/jboss/jboss-blog" />
<property name="jboss.conf" value="sa" />
- <!-- Unset this property in portlet environment -->
- <property name="servlet" value="true" />
+ <!-- Unset this property if jboss portal is deployed -->
+ <!--<property name="jboss.portal.present" value="true" />-->
<!-- Configuration of source/ target directories -->
<property name="src" value="src"/>
@@ -67,7 +67,7 @@
</target>
- <target name="copy-libs-for-servlet" if="servlet">
+ <target name="copy-libs-for-servlet" if="jboss.portal.present">
<copy todir="${dist.lib.dir}"><fileset refid="myfaces.jars"/></copy>
<copy todir="${dist.lib.dir}"><fileset refid="facelets.jars"/></copy>
</target>
Modified: trunk/blog-core/src/etc/META-INF/acl-mapping.xml
===================================================================
--- trunk/blog-core/src/etc/META-INF/acl-mapping.xml 2006-10-20 22:16:42 UTC (rev 14)
+++ trunk/blog-core/src/etc/META-INF/acl-mapping.xml 2006-10-24 22:07:48 UTC (rev 15)
@@ -36,26 +36,17 @@
</resource>
</function>
- <function id="viewBlog" name="View Blog">
- <!-- ui protection -->
- <resource type="fragment" criteriaId="viewBlog://ui">
- <id>acl://viewBlog</id>
- </resource>
- <implies>accessAdminModule</implies>
- </function>
-
<function id="manageCategories" name="Manage Categories">
<!-- ui protection -->
<resource type="fragment" criteriaId="manageCategories://ui">
<id>acl://manageCategories</id>
</resource>
<!-- action protection -->
- <resource type="jsfAction" criteriaId="manageCategories://action">
+ <!--<resource type="jsfAction" criteriaId="manageCategories://action">
<class>org.jboss.blog.ui.action.AdminController</class>
<method>manageCategories</method>
- </resource>
+ </resource>-->
<implies>accessAdminModule</implies>
- <implies>viewBlog</implies>
</function>
<function id="manageBlogs" name="Manage Blogs">
@@ -64,13 +55,11 @@
<id>acl://manageBlogs</id>
</resource>
<!-- action protection -->
- <resource type="jsfAction" criteriaId="manageBlogs://action">
+ <!--<resource type="jsfAction" criteriaId="manageBlogs://action">
<class>org.jboss.blog.ui.action.AdminController</class>
<method>manageBlogs</method>
- </resource>
- <implies>accessAdminModule</implies>
+ </resource>-->
<implies>manageCategories</implies>
- <implies>viewBlog</implies>
</function>
</module>
@@ -97,11 +86,12 @@
<id>acl://addComment</id>
</resource>
<!-- action protection -->
- <resource type="jsfAction" criteriaId="addComment://action">
+ <!--<resource type="jsfAction" criteriaId="addComment://action">
<class>org.jboss.blog.ui.action.NewTopic</class>
- <method>execute</method>
- </resource>
- </function>
+ <method>execute</method>
+ </resource>-->
+ <implies>viewComments</implies>
+ </function>
</module>
<!-- Blog Owner usecases -->
@@ -112,10 +102,10 @@
<id>acl://managePosts</id>
</resource>
<!-- action protection -->
- <resource type="jsfAction" criteriaId="managePosts://action">
+ <!--<resource type="jsfAction" criteriaId="managePosts://action">
<class>org.jboss.portlet.Blogs.ui.action.ModeratorAction</class>
<method>managePosts</method>
- </resource>
+ </resource>-->
</function>
<function id="manageComments" name="Manage Comments">
@@ -124,10 +114,10 @@
<id>acl://moveTopics</id>
</resource>
<!-- action protection -->
- <resource type="jsfAction" criteriaId="manageComments://action">
+ <!--<resource type="jsfAction" criteriaId="manageComments://action">
<class>org.jboss.portlet.Blogs.ui.action.ModeratorAction</class>
<method>manageComments</method>
- </resource>
+ </resource>-->
</function>
</module>
</acl>
\ No newline at end of file
Modified: trunk/blog-core/src/etc/META-INF/acl-permissions.xml
===================================================================
--- trunk/blog-core/src/etc/META-INF/acl-permissions.xml 2006-10-20 22:16:42 UTC (rev 14)
+++ trunk/blog-core/src/etc/META-INF/acl-permissions.xml 2006-10-24 22:07:48 UTC (rev 15)
@@ -30,7 +30,7 @@
</permission-->
<permission action="viewComments"/>
- <!-- Owner Module permissions -->
+ <!-- Owner Module permissions -->
</role>
<!-- just a regular registered user -->
@@ -38,7 +38,7 @@
<!-- Admin Module permissions -->
<!-- User Module permissions -->
- <permission action="addComments"/>
+ <permission action="addComment"/>
<!-- permission to edit only my own posts -->
<!--<permission action="editPost">
<criteria for="editPost://ui">param[0].poster.user.userName.equals(identity.identity.userName)</criteria>
@@ -74,7 +74,7 @@
</permission>
<permission action="deleteCategory">
<criteria for="deleteCategory://action">target.categoryName.toLowerCase().startsWith('jboss rules')</criteria>
- <-- also criteria for the implied edit category permission ->
+ <- also criteria for the implied edit category permission ->
<criteria for="editCategory://action">target.categoryName.toLowerCase().startsWith('jboss rules')</criteria>
</permission>
<permission action="viewForum">
@@ -82,7 +82,7 @@
</permission>
<permission action="deleteForum">
<criteria for="deleteForum://action">target.forumName.toLowerCase().startsWith('jboss rules')</criteria>
- <-- also criteria for the implied edit category permission ->
+ <- also criteria for the implied edit category permission ->
<criteria for="editForum://action">target.forumName.toLowerCase().startsWith('jboss rules')</criteria>
</permission>
Modified: trunk/blog-core/src/etc/META-INF/jboss-service.xml
===================================================================
--- trunk/blog-core/src/etc/META-INF/jboss-service.xml 2006-10-20 22:16:42 UTC (rev 14)
+++ trunk/blog-core/src/etc/META-INF/jboss-service.xml 2006-10-24 22:07:48 UTC (rev 15)
@@ -58,13 +58,9 @@
<!-- Permissions service -->
<mbean
- code="org.jboss.blog.service.permissions.BasicBlogPermissionsService"
+ code="org.jboss.blog.service.permissions.acl.AclBlogPermissionsService"
name="blog:service=Permissions"
- xmbean-dd="org/jboss/blog/service/permissions/BasicBlogPermissionsService.xml">
- <attribute name="AllowedToView">*</attribute>
- <attribute name="AllowedToComment">Administrator</attribute>
- <attribute name="AllowedToAdd">Administrator</attribute>
- <attribute name="AllowedToAdminister">Administrator</attribute>
+ xmbean-dd="org/jboss/blog/service/permissions/acl/AclBlogPermissionsService.xml">
</mbean>
<!-- JAAE service -->
<mbean code="org.jboss.security.acl.AclKernelFactory"
Deleted: trunk/blog-core/src/java/org/jboss/blog/service/permissions/BasicBlogPermissionsService.java
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/service/permissions/BasicBlogPermissionsService.java 2006-10-20 22:16:42 UTC (rev 14)
+++ trunk/blog-core/src/java/org/jboss/blog/service/permissions/BasicBlogPermissionsService.java 2006-10-24 22:07:48 UTC (rev 15)
@@ -1,130 +0,0 @@
-package org.jboss.blog.service.permissions;
-
-import org.jboss.blog.tools.BlogTools;
-import org.jboss.blog.tools.SetWithoutBottom;
-import org.jboss.blog.BlogName;
-import org.jboss.system.ServiceMBeanSupport;
-
-import java.util.Set;
-import java.util.HashSet;
-
-/**
- * @author Adam Warski (adamw at aster.pl)
- *
- * @jmx.mbean
- * @jboss.xmbean
- */
-public class BasicBlogPermissionsService extends ServiceMBeanSupport implements BlogPermissionsService {
- public BasicBlogPermissionsService() {
-
- }
-
- /**
- * @jmx.managed-operation
- * @jmx.managed-parameter type="org.jboss.blog.BlogName"
- * @jmx.managed-parameter type="java.lang.String"
- */
- public boolean canView(BlogName blogName, String userName) {
- return allowedToViewSet.contains(userName);
- }
-
- private String allowedToView;
- private Set allowedToViewSet;
-
- private String allowedToComment;
- private Set allowedToCommentSet;
-
- private String allowedToAdd;
- private Set allowedToAddSet;
-
- private String allowedToAdminister;
- private Set allowedToAdministerSet;
-
- /**
- * Turns a given comma-separated list in the form of a string, to a
- * set of strings. If the string is empty or null, an empty set is returned.
- * If it has a special value of "*", meaning all users, a special set is
- * returned, which pretends to contain everything.
- * @param str String to parse (a comma-separated list, null, or a "*").
- * @return A set of strings or a special set, which "contains everything".
- */
- private Set parseCommaSeparatedList(String str) {
- if (BlogTools.isEmpty(str)) {
- // No users are allowed -> an empty list.
- return new HashSet();
- }
-
- if ("*".equals(str)) {
- // All users are allowed.
- return new SetWithoutBottom();
- }
-
- Set ret = new HashSet();
- String[] usernames = str.split("[,]");
- for (int i=0; i<usernames.length; i++) {
- ret.add(usernames[i]);
- }
-
- return ret;
- }
-
- /**
- * @jmx.managed-attribute
- */
- public String getAllowedToView() {
- return allowedToView;
- }
-
- /**
- * @jmx.managed-attribute
- */
- public void setAllowedToView(String allowedToView) {
- this.allowedToView = allowedToView;
- allowedToViewSet = parseCommaSeparatedList(allowedToView);
- }
-
- /**
- * @jmx.managed-attribute
- */
- public String getAllowedToComment() {
- return allowedToComment;
- }
-
- /**
- * @jmx.managed-attribute
- */
- public void setAllowedToComment(String allowedToComment) {
- this.allowedToComment = allowedToComment;
- allowedToCommentSet = parseCommaSeparatedList(allowedToComment);
- }
-
- /**
- * @jmx.managed-attribute
- */
- public String getAllowedToAdd() {
- return allowedToAdd;
- }
-
- /**
- * @jmx.managed-attribute
- */
- public void setAllowedToAdd(String allowedToAdd) {
- this.allowedToAdd = allowedToAdd;
- allowedToAddSet = parseCommaSeparatedList(allowedToAdd);
- }
-
- /**
- * @jmx.managed-attribute
- */
- public String getAllowedToAdminister() {
- return allowedToAdminister;
- }
-
- /**
- * @jmx.managed-attribute
- */
- public void setAllowedToAdminister(String allowedToAdminister) {
- this.allowedToAdminister = allowedToAdminister;
- allowedToAdministerSet = parseCommaSeparatedList(allowedToAdminister);
- }
-}
Modified: trunk/blog-core/src/java/org/jboss/blog/service/permissions/BlogPermissionsService.java
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/service/permissions/BlogPermissionsService.java 2006-10-20 22:16:42 UTC (rev 14)
+++ trunk/blog-core/src/java/org/jboss/blog/service/permissions/BlogPermissionsService.java 2006-10-24 22:07:48 UTC (rev 15)
@@ -1,22 +1,17 @@
package org.jboss.blog.service.permissions;
-import org.jboss.blog.BlogName;
+import org.jboss.blog.service.permissions.SecurityContext;
/**
- * A service which enables to check, if a given user can view/ edit/ comment/
- * etc blogs.
+ * A service which enables to check, if a given user can gain access to given
+ * contexts.
* @author Adam Warski (adamw at aster.pl)
*/
public interface BlogPermissionsService {
/**
- * Checks if the given user can view the content of a blog, with the given
- * name.
- * @param blogName Name of the blog to check.
- * @param userName User which is currently logged in.
- * @return True iff the given user can view the content of the given blog.
+ * Checks if the given user has access to the given context.
+ * @param context Context which the user tries to access.
+ * @return True iff the given user can access the given context.
*/
- public boolean canView(BlogName blogName, String userName);
- //public boolean canComment(BlogName blogName, String userName);
- //public boolean canAdminister(BlogName blogName, String userName);
- //public boolean canAdd(BlogName blogName, String userName);
+ public boolean hasAccess(SecurityContext context);
}
Added: trunk/blog-core/src/java/org/jboss/blog/service/permissions/SecurityContext.java
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/service/permissions/SecurityContext.java 2006-10-20 22:16:42 UTC (rev 14)
+++ trunk/blog-core/src/java/org/jboss/blog/service/permissions/SecurityContext.java 2006-10-24 22:07:48 UTC (rev 15)
@@ -0,0 +1,9 @@
+package org.jboss.blog.service.permissions;
+
+/**
+ * @author <a href="mailto:sohil.shah at jboss.com">Sohil Shah</a>
+ */
+public interface SecurityContext
+{
+ public Object getIdentity();
+}
Added: trunk/blog-core/src/java/org/jboss/blog/service/permissions/acl/ACLTagHandler.java
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/service/permissions/acl/ACLTagHandler.java 2006-10-20 22:16:42 UTC (rev 14)
+++ trunk/blog-core/src/java/org/jboss/blog/service/permissions/acl/ACLTagHandler.java 2006-10-24 22:07:48 UTC (rev 15)
@@ -0,0 +1,116 @@
+package org.jboss.blog.service.permissions.acl;
+
+//core java
+import java.io.IOException;
+import java.util.StringTokenizer;
+
+
+//jsf
+import javax.faces.context.FacesContext;
+import javax.faces.FacesException;
+import javax.faces.component.UIComponent;
+
+//logging
+import org.jboss.blog.tools.BlogTools;
+
+//servlet
+import javax.el.ELException;
+import javax.el.ExpressionFactory;
+import javax.el.ValueExpression;
+
+
+//facelets
+import com.sun.facelets.FaceletContext;
+import com.sun.facelets.tag.TagConfig;
+import com.sun.facelets.tag.TagHandler;
+import com.sun.facelets.tag.TagAttribute;
+import com.sun.facelets.el.ELAdaptor;
+
+
+/**
+ * @author Sohil Shah - sohil.shah at jboss.com - Mar 29, 2006
+ */
+public class ACLTagHandler extends TagHandler
+{
+ //private static final Logger log = Logger.getLogger(ACLTagHandler.class);
+
+ //possible attributes
+ private TagAttribute fragment = null; //required
+ private TagAttribute contextData = null; //optional
+
+ public ACLTagHandler(TagConfig config)
+ {
+ super(config);
+
+ // helper method for getting a required attribute
+ this.fragment = this.getRequiredAttribute("fragment");
+
+ // helper method, optional attribute
+ this.contextData = this.getAttribute("contextData");
+ }
+
+ /**
+ * Threadsafe Method for controlling evaluation of
+ * its child tags, represented by "nextHandler"
+ */
+ public void apply(FaceletContext ctx, UIComponent parent)
+ throws IOException,FacesException,ELException
+ {
+ FacesContext facesContext = ctx.getFacesContext();
+
+ //an authorization provider is hooked in....go ahead and perform authorization
+ try
+ {
+ String resource = this.fragment.getValue();
+ String contextStr = null;
+
+ if(this.contextData!=null)
+ {
+ contextStr = this.contextData.getValue();
+ }
+
+ //resourcesetup
+ Object[] runtime = null;
+ if(contextStr!=null && contextStr.trim().length()>0)
+ {
+ StringTokenizer st = new StringTokenizer(contextStr,",");
+ runtime = new Object[st.countTokens()];
+ int i=0;
+ while(st.hasMoreTokens())
+ {
+ String parameter = st.nextToken();
+ Object parameterValue;
+
+ //evaluate this expression to a value
+ ExpressionFactory f = ctx.getExpressionFactory();
+ ValueExpression expr = f.createValueExpression(ctx,parameter,Object.class);
+ parameterValue = expr.getValue(ELAdaptor.getELContext(facesContext));
+
+ runtime[i++] = parameterValue;
+ }
+ }
+
+ //check access here
+ JSFUIContext securityContext = new JSFUIContext(JBossPortalUtil.getUser(),facesContext);
+ securityContext.setFragment(resource);
+ securityContext.setContextData(runtime);
+
+ //feed this context to the Authorization system which will decide whether
+ //access should be granted or not
+ boolean isAccessAllowed = BlogTools.getBlogService().getPermissionsService().hasAccess(securityContext);
+
+ if(isAccessAllowed)
+ {
+ this.nextHandler.apply(ctx, parent);
+ }
+ }
+ catch(NoSuchMethodException nsme)
+ {
+ throw new FacesException(nsme);
+ }
+ catch(Exception e)
+ {
+ throw new FacesException(e);
+ }
+ }
+}
Added: trunk/blog-core/src/java/org/jboss/blog/service/permissions/acl/AclBlogPermissionsService.java
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/service/permissions/acl/AclBlogPermissionsService.java 2006-10-20 22:16:42 UTC (rev 14)
+++ trunk/blog-core/src/java/org/jboss/blog/service/permissions/acl/AclBlogPermissionsService.java 2006-10-24 22:07:48 UTC (rev 15)
@@ -0,0 +1,72 @@
+package org.jboss.blog.service.permissions.acl;
+
+import org.jboss.security.acl.AclProcessor;
+import org.jboss.security.acl.AccessDenied;
+import org.jboss.security.acl.User;
+import org.jboss.security.acl.UserThreadLocal;
+
+import org.jboss.blog.service.permissions.BlogPermissionsService;
+import org.jboss.blog.service.permissions.SecurityContext;
+
+/**
+ * @author <a href="mailto:sohil.shah at jboss.com">Sohil Shah</a>
+ * @author Adam Warski
+ *
+ * @jmx.mbean
+ * @jboss.xmbean
+ */
+public class AclBlogPermissionsService implements BlogPermissionsService {
+ /**
+ * @jmx.managed-operation
+ * @jmx.managed-parameter type="org.jboss.blog.service.permissions.SecurityContext"
+ */
+ public boolean hasAccess(SecurityContext context)
+ {
+ boolean hasAccess = true;
+ try
+ {
+ //setup the engine identity based on identity provided in the security context
+ if(context.getIdentity()!=null)
+ {
+ User user = User.getUser(((org.jboss.portal.identity.User)context.getIdentity()).getUserName());
+ JBossPortalUtil.populateRoles(user);
+ UserThreadLocal.setUser(user);
+ }
+ else
+ {
+ //set an anonymous user
+ UserThreadLocal.setUser(new User());
+ }
+
+ if(context instanceof JSFActionContext)
+ {
+ JSFActionContext securityContext = (JSFActionContext)context;
+
+ //send this to the engine for access control decision
+ AclProcessor.getInstance().processJSFActionAccess(
+ securityContext.getFacesContext(),
+ securityContext.getManagedBean(),
+ securityContext.getBusinessAction());
+ }
+ else if(context instanceof JSFUIContext)
+ {
+ JSFUIContext securityContext = (JSFUIContext)context;
+
+ //send this to the engine for access control decision
+ AclProcessor.getInstance().processFragmentAccess(securityContext.getFragment(),securityContext.getContextData());
+ }
+ }
+ catch(AccessDenied ade)
+ {
+ hasAccess = false;
+ }
+ catch(Exception e)
+ {
+ throw new RuntimeException(e);
+ }
+
+ return hasAccess;
+ }
+
+
+}
Added: trunk/blog-core/src/java/org/jboss/blog/service/permissions/acl/AuthorizationListener.java
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/service/permissions/acl/AuthorizationListener.java 2006-10-20 22:16:42 UTC (rev 14)
+++ trunk/blog-core/src/java/org/jboss/blog/service/permissions/acl/AuthorizationListener.java 2006-10-24 22:07:48 UTC (rev 15)
@@ -0,0 +1,107 @@
+package org.jboss.blog.service.permissions.acl;
+
+//core java api
+import java.lang.reflect.Method;
+import java.security.AccessControlException;
+
+//jsf api
+import javax.faces.FacesException;
+import javax.faces.context.FacesContext;
+import javax.faces.application.Application;
+import javax.faces.component.ActionSource;
+import javax.faces.event.AbortProcessingException;
+import javax.faces.event.ActionEvent;
+import javax.faces.el.MethodBinding;
+import javax.faces.el.VariableResolver;
+
+
+//myfaces integration
+import org.apache.log4j.Logger;
+import org.apache.myfaces.application.ActionListenerImpl;
+import org.jboss.blog.tools.BlogTools;
+
+/**
+ * @author <a href="mailto:sohil.shah at jboss.com">Sohil Shah</a>
+ */
+public class AuthorizationListener extends ActionListenerImpl
+{
+ private static final Logger log = Logger.getLogger(AuthorizationListener.class);
+
+ public void processAction(ActionEvent actionEvent) throws AbortProcessingException
+ {
+ //an authorization provider is hooked in, go ahead and enforce authorization
+ boolean isAccessAllowed = this.isAccessAllowed(actionEvent);
+
+ if(isAccessAllowed)
+ {
+ //make method call
+ super.processAction(actionEvent);
+ }
+ else
+ {
+ AccessControlException ace = new AccessControlException("Access Denied");
+ throw new AbortProcessingException(ace);
+ }
+ }
+
+ private boolean isAccessAllowed(ActionEvent actionEvent)
+ {
+ boolean isAccessAllowed;
+ FacesContext facesContext = FacesContext.getCurrentInstance();
+ Application application = facesContext.getApplication();
+
+ //enforce authorization security
+ try
+ {
+ ActionSource actionSource = (ActionSource)actionEvent.getComponent();
+ MethodBinding methodBinding = actionSource.getAction();
+ Method businessAction = null;
+ Object managedBean = null;
+ if(methodBinding!=null)
+ {
+ //this means a business action is going to be called...this needs to be authorized
+ VariableResolver variableResolver = application.getVariableResolver();
+ String expression = methodBinding.getExpressionString();
+ String[] methodInfo = this.parseExpression(expression);
+
+ managedBean = variableResolver.resolveVariable(facesContext,methodInfo[0]);
+ businessAction = managedBean.getClass().getMethod(methodInfo[1],null);
+ }
+
+ //start building the SecurityContext here for the Authorization System
+ JSFActionContext securityContext = new JSFActionContext(JBossPortalUtil.getUser(),facesContext);
+ securityContext.setBusinessAction(businessAction);
+ securityContext.setManagedBean(managedBean);
+
+ //feed this context to the Authorization system which will decide whether
+ //access should be granted or not
+ isAccessAllowed = BlogTools.getBlogService().getPermissionsService().hasAccess(securityContext);
+ }
+ catch(NoSuchMethodException nsme)
+ {
+ log.error(this,nsme);
+ throw new FacesException("Error calling action method of component with id " + actionEvent.getComponent().getClientId(facesContext), nsme);
+ }
+ catch(Exception e)
+ {
+ log.error(this,e);
+ throw new FacesException("Error calling action method of component with id " + actionEvent.getComponent().getClientId(facesContext), e);
+ }
+ return isAccessAllowed;
+ }
+
+ private String[] parseExpression(String expression)
+ {
+ String[] values = new String[2];
+
+ int startIndex = expression.indexOf('{') + 1;
+ int endIndex = expression.trim().length()-1;
+ int dotIndex = expression.indexOf('.');
+
+
+ values[0] = expression.substring(startIndex,dotIndex).trim();
+ values[1] = expression.substring(dotIndex+1,endIndex).trim();
+
+ return values;
+ }
+}
Added: trunk/blog-core/src/java/org/jboss/blog/service/permissions/acl/JBossPortalUtil.java
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/service/permissions/acl/JBossPortalUtil.java 2006-10-20 22:16:42 UTC (rev 14)
+++ trunk/blog-core/src/java/org/jboss/blog/service/permissions/acl/JBossPortalUtil.java 2006-10-24 22:07:48 UTC (rev 15)
@@ -0,0 +1,90 @@
+package org.jboss.blog.service.permissions.acl;
+
+//core java
+import java.util.Iterator;
+import java.util.Set;
+
+import javax.naming.InitialContext;
+import javax.faces.context.FacesContext;
+
+//website security
+import org.jboss.security.util.Util;
+
+//jboss-acl framework
+import org.jboss.security.acl.Role;
+import org.jboss.security.acl.User;
+
+import org.jboss.portal.identity.RoleModule;
+import org.jboss.portal.identity.UserModule;
+
+
+/**
+ *
+ * @author Sohil Shah - sohil.shah at jboss.com
+ *
+ */
+public class JBossPortalUtil
+{
+ private static final String ROLE_MODULE_JNDI_NAME = "java:portal/RoleModule";
+ private static final String USER_MODULE_JNDI_NAME = "java:portal/UserModule";
+
+ private static RoleModule roleModule;
+ private static UserModule userModule;
+
+ private static synchronized RoleModule getRoleModule() throws Exception
+ {
+ if (roleModule == null) {
+ InitialContext ctx = new InitialContext();
+ roleModule = (RoleModule)ctx.lookup(JBossPortalUtil.ROLE_MODULE_JNDI_NAME);
+ }
+
+ return roleModule;
+ }
+
+ private static synchronized UserModule getUserModule() throws Exception
+ {
+ if (userModule == null) {
+ InitialContext ctx = new InitialContext();
+ userModule = (UserModule)ctx.lookup(JBossPortalUtil.USER_MODULE_JNDI_NAME);
+ }
+
+ return userModule;
+ }
+
+ public static void populateRoles(User user) throws Exception
+ {
+ //perform this operation in the context of a JTA Transaction
+ if(user!=null && user.getIdentity()!=null)
+ {
+ UserModule userModule = getUserModule();
+
+ //grab the roles for this user
+ String username = user.getIdentity().getUserName();
+ org.jboss.portal.identity.User portalUser = userModule.findUserByUserName(username);
+ Set roles = getRoleModule().getRoles(portalUser);
+ if(!Util.isEmpty(roles))
+ {
+ for(Iterator itr=roles.iterator();itr.hasNext();)
+ {
+ String roleName = ((org.jboss.portal.identity.Role)itr.next()).getName();
+ Role role = new Role(roleName,roleName);
+ user.getRoles().add(role);
+ }
+ }
+ }
+ }
+
+ public static org.jboss.portal.identity.User getUser()
+ throws Exception
+ {
+ org.jboss.portal.identity.User user = null;
+ String userName =
+ FacesContext.getCurrentInstance().getExternalContext().getRemoteUser();
+ if(userName!=null && userName.trim().length()>0)
+ {
+ UserModule userModule = getUserModule();
+ user = userModule.findUserByUserName(userName);
+ }
+ return user;
+ }
+}
Added: trunk/blog-core/src/java/org/jboss/blog/service/permissions/acl/JSFActionContext.java
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/service/permissions/acl/JSFActionContext.java 2006-10-20 22:16:42 UTC (rev 14)
+++ trunk/blog-core/src/java/org/jboss/blog/service/permissions/acl/JSFActionContext.java 2006-10-24 22:07:48 UTC (rev 15)
@@ -0,0 +1,46 @@
+package org.jboss.blog.service.permissions.acl;
+
+import java.lang.reflect.Method;
+
+import javax.faces.context.FacesContext;
+
+/**
+ * @author <a href="mailto:sohil.shah at jboss.com">Sohil Shah</a>
+ */
+public class JSFActionContext extends JSFSecurityContext {
+ /**
+ * this is the action method on a JSF Managed Bean that is being called
+ * and needs to be authorized access to
+ */
+ private Method businessAction = null;
+
+ /**
+ * This is the JSF Managed Bean that is being used
+ */
+ private Object managedBean = null;
+
+ public JSFActionContext(Object identity,FacesContext facesContext)
+ {
+ super(identity,facesContext);
+ }
+
+ public Method getBusinessAction()
+ {
+ return this.businessAction;
+ }
+
+ public void setBusinessAction(Method businessAction)
+ {
+ this.businessAction = businessAction;
+ }
+
+ public Object getManagedBean()
+ {
+ return this.managedBean;
+ }
+
+ public void setManagedBean(Object managedBean)
+ {
+ this.managedBean = managedBean;
+ }
+}
Added: trunk/blog-core/src/java/org/jboss/blog/service/permissions/acl/JSFSecurityContext.java
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/service/permissions/acl/JSFSecurityContext.java 2006-10-20 22:16:42 UTC (rev 14)
+++ trunk/blog-core/src/java/org/jboss/blog/service/permissions/acl/JSFSecurityContext.java 2006-10-24 22:07:48 UTC (rev 15)
@@ -0,0 +1,52 @@
+package org.jboss.blog.service.permissions.acl;
+
+import org.jboss.blog.service.permissions.SecurityContext;
+
+import javax.faces.context.FacesContext;
+
+/**
+ * @author <a href="mailto:sohil.shah at jboss.com">Sohil Shah</a>
+ */
+public abstract class JSFSecurityContext implements SecurityContext {
+ /**
+ *
+ */
+ private FacesContext facesContext = null;
+
+
+ /**
+ * this is current user that needs to be authorized..
+ * left the type of this identity open ended..
+ * the actual provider can then cast it based on what it expects it to be
+ */
+ private Object identity = null;
+
+ public JSFSecurityContext(Object identity,FacesContext facesContext)
+ {
+ this.facesContext = facesContext;
+ this.identity = identity;
+ }
+
+
+
+ /**
+ * @return Returns the identity.
+ */
+ public Object getIdentity()
+ {
+ return this.identity;
+ }
+
+ /**
+ * @param identity The identity to set.
+ */
+ public void setIdentity(Object identity)
+ {
+ this.identity = identity;
+ }
+
+ public FacesContext getFacesContext()
+ {
+ return this.facesContext;
+ }
+}
Added: trunk/blog-core/src/java/org/jboss/blog/service/permissions/acl/JSFUIContext.java
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/service/permissions/acl/JSFUIContext.java 2006-10-20 22:16:42 UTC (rev 14)
+++ trunk/blog-core/src/java/org/jboss/blog/service/permissions/acl/JSFUIContext.java 2006-10-24 22:07:48 UTC (rev 15)
@@ -0,0 +1,48 @@
+package org.jboss.blog.service.permissions.acl;
+
+import javax.faces.context.FacesContext;
+
+/**
+ * @author <a href="mailto:sohil.shah at jboss.com">Sohil Shah</a>
+ */
+public class JSFUIContext extends JSFSecurityContext
+{
+ private String fragment = null;
+ private Object[] contextData = null;
+
+
+ public JSFUIContext(Object identity,FacesContext facesContext)
+ {
+ super(identity,facesContext);
+ }
+
+
+ /**
+ * @return Returns the contextData.
+ */
+ public Object[] getContextData()
+ {
+ return contextData;
+ }
+ /**
+ * @param contextData The contextData to set.
+ */
+ public void setContextData(Object[] contextData)
+ {
+ this.contextData = contextData;
+ }
+ /**
+ * @return Returns the fragment.
+ */
+ public String getFragment()
+ {
+ return fragment;
+ }
+ /**
+ * @param fragment The fragment to set.
+ */
+ public void setFragment(String fragment)
+ {
+ this.fragment = fragment;
+ }
+}
Modified: trunk/blog-core/src/java/org/jboss/blog/tools/BlogTools.java
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/tools/BlogTools.java 2006-10-20 22:16:42 UTC (rev 14)
+++ trunk/blog-core/src/java/org/jboss/blog/tools/BlogTools.java 2006-10-24 22:07:48 UTC (rev 15)
@@ -100,17 +100,13 @@
*
* @return An instance of the blog service.
*/
- public static BlogService getBlogService() {
+ public static synchronized BlogService getBlogService() {
try {
if (instance == null) {
- synchronized (BlogTools.class) {
- if (instance == null) {
- instance = (BlogService) MBeanProxyExt.create(
- BlogService.class,
- "blog:service=Main",
- MBeanServerLocator.locate());
- }
- }
+ instance = (BlogService) MBeanProxyExt.create(
+ BlogService.class,
+ "blog:service=Main",
+ MBeanServerLocator.locate());
}
return instance;
Deleted: trunk/blog-core/src/java/org/jboss/blog/tools/SetWithoutBottom.java
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/tools/SetWithoutBottom.java 2006-10-20 22:16:42 UTC (rev 14)
+++ trunk/blog-core/src/java/org/jboss/blog/tools/SetWithoutBottom.java 2006-10-24 22:07:48 UTC (rev 15)
@@ -1,62 +0,0 @@
-package org.jboss.blog.tools;
-
-import java.util.Set;
-import java.util.Iterator;
-import java.util.Collection;
-
-/**
- * @author Adam Warski (adamw at aster.pl)
- */
-public class SetWithoutBottom implements Set {
- public int size() {
- return Integer.MAX_VALUE;
- }
-
- public boolean isEmpty() {
- return false;
- }
-
- public boolean contains(Object o) {
- return true;
- }
-
- public Iterator iterator() {
- return null;
- }
-
- public Object[] toArray() {
- return new Object[0];
- }
-
- public boolean add(Object o) {
- return false;
- }
-
- public boolean remove(Object o) {
- return true;
- }
-
- public boolean addAll(Collection c) {
- return false;
- }
-
- public void clear() {
-
- }
-
- public boolean removeAll(Collection c) {
- return true;
- }
-
- public boolean retainAll(Collection c) {
- return false;
- }
-
- public boolean containsAll(Collection c) {
- return true;
- }
-
- public Object[] toArray(Object[] a) {
- return new Object[0];
- }
-}
Added: trunk/blog-core/src/web/WEB-INF/blog.taglib.xml
===================================================================
--- trunk/blog-core/src/web/WEB-INF/blog.taglib.xml 2006-10-20 22:16:42 UTC (rev 14)
+++ trunk/blog-core/src/web/WEB-INF/blog.taglib.xml 2006-10-24 22:07:48 UTC (rev 15)
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+<!DOCTYPE facelet-taglib PUBLIC
+ "-//Sun Microsystems, Inc.//DTD Facelet Taglib 1.0//EN"
+ "http://java.sun.com/dtd/facelet-taglib_1_0.dtd">
+<facelet-taglib>
+ <namespace>http://www.jboss.org/portal/jbossblog</namespace>
+ <tag>
+ <tag-name>isAllowed</tag-name>
+ <handler-class>org.jboss.blog.service.permissions.acl.ACLTagHandler</handler-class>
+ </tag>
+</facelet-taglib>
\ No newline at end of file
Modified: trunk/blog-core/src/web/WEB-INF/faces-config.xml
===================================================================
--- trunk/blog-core/src/web/WEB-INF/faces-config.xml 2006-10-20 22:16:42 UTC (rev 14)
+++ trunk/blog-core/src/web/WEB-INF/faces-config.xml 2006-10-24 22:07:48 UTC (rev 15)
@@ -11,6 +11,7 @@
<locale-config>
<default-locale>en</default-locale>
</locale-config>
+ <action-listener>org.jboss.blog.service.permissions.acl.AuthorizationListener</action-listener>
</application>
<managed-bean>
Modified: trunk/blog-core/src/web/WEB-INF/web.xml
===================================================================
--- trunk/blog-core/src/web/WEB-INF/web.xml 2006-10-20 22:16:42 UTC (rev 14)
+++ trunk/blog-core/src/web/WEB-INF/web.xml 2006-10-24 22:07:48 UTC (rev 15)
@@ -15,6 +15,11 @@
<param-value>true</param-value>
</context-param>
+ <context-param>
+ <param-name>facelets.LIBRARIES</param-name>
+ <param-value>/WEB-INF/blog.taglib.xml</param-value>
+ </context-param>
+
<!-- Servlet environment -->
<context-param>
<param-name>blogId</param-name>
Modified: trunk/blog-core/src/web/views/index.xhtml
===================================================================
--- trunk/blog-core/src/web/views/index.xhtml 2006-10-20 22:16:42 UTC (rev 14)
+++ trunk/blog-core/src/web/views/index.xhtml 2006-10-24 22:07:48 UTC (rev 15)
@@ -2,6 +2,7 @@
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:c="http://java.sun.com/jstl/core"
xmlns:h="http://java.sun.com/jsf/html"
- xmlns:f="http://java.sun.com/jsf/core">
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:blog="http://www.jboss.org/portal/jbossblog">
<ui:include src="viewblog.xhtml" />
</div>
\ No newline at end of file
Added: trunk/blog-core/src/web/views/userblogview_t.xhtml
===================================================================
--- trunk/blog-core/src/web/views/userblogview_t.xhtml 2006-10-20 22:16:42 UTC (rev 14)
+++ trunk/blog-core/src/web/views/userblogview_t.xhtml 2006-10-24 22:07:48 UTC (rev 15)
@@ -0,0 +1,14 @@
+<div xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:c="http://java.sun.com/jstl/core"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:blog="http://www.jboss.org/portal/jbossblog">
+ <ui:composition template="userview_t.xhtml">
+ <ui:define name="bloginfo">
+ Title: #{currentView.blogModel.title} <br />
+ Description: #{currentView.blogModel.description} <br />
+ Author: #{currentView.blogModel.author}
+ </ui:define>
+ </ui:composition>
+</div>
\ No newline at end of file
Modified: trunk/blog-core/src/web/views/userview_t.xhtml
===================================================================
--- trunk/blog-core/src/web/views/userview_t.xhtml 2006-10-20 22:16:42 UTC (rev 14)
+++ trunk/blog-core/src/web/views/userview_t.xhtml 2006-10-24 22:07:48 UTC (rev 15)
@@ -2,10 +2,13 @@
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:c="http://java.sun.com/jstl/core"
xmlns:h="http://java.sun.com/jsf/html"
- xmlns:f="http://java.sun.com/jsf/core">
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:blog="http://www.jboss.org/portal/jbossblog">
<!--<link rel='stylesheet' type='text/css' href='/???.css' media='screen'/>-->
<f:loadBundle basename="Messages" var="messages"/>
+ <h2>Info</h2>
+ <ui:insert name="bloginfo" />
<ui:insert name="main" />
</div>
\ No newline at end of file
Modified: trunk/blog-core/src/web/views/viewblog.xhtml
===================================================================
--- trunk/blog-core/src/web/views/viewblog.xhtml 2006-10-20 22:16:42 UTC (rev 14)
+++ trunk/blog-core/src/web/views/viewblog.xhtml 2006-10-24 22:07:48 UTC (rev 15)
@@ -2,13 +2,11 @@
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:c="http://java.sun.com/jstl/core"
xmlns:h="http://java.sun.com/jsf/html"
- xmlns:f="http://java.sun.com/jsf/core">
-<ui:composition template="userview_t.xhtml">
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:blog="http://www.jboss.org/portal/jbossblog">
+<ui:composition template="userblogview_t.xhtml">
<ui:define name="main">
- <h2>Info</h2>
- Title: #{currentView.blogModel.title} <br />
- Description: #{currentView.blogModel.description} <br />
- Author: #{currentView.blogModel.author}
+ <h2>Test</h2>
<h2>Entries</h2>
<ul>
@@ -52,4 +50,4 @@
</h:panelGroup>
</ui:define>
</ui:composition>
-</div>
\ No newline at end of file
+</div>
Modified: trunk/blog-core/src/web/views/viewentry.xhtml
===================================================================
--- trunk/blog-core/src/web/views/viewentry.xhtml 2006-10-20 22:16:42 UTC (rev 14)
+++ trunk/blog-core/src/web/views/viewentry.xhtml 2006-10-24 22:07:48 UTC (rev 15)
@@ -2,14 +2,10 @@
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:c="http://java.sun.com/jstl/core"
xmlns:h="http://java.sun.com/jsf/html"
- xmlns:f="http://java.sun.com/jsf/core">
-<ui:composition template="userview_t.xhtml">
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:blog="http://www.jboss.org/portal/jbossblog">
+<ui:composition template="userblogview_t.xhtml">
<ui:define name="main">
- <h2>Info</h2>
- Title: #{currentView.blogModel.title} <br />
- Description: #{currentView.blogModel.description} <br />
- Author: #{currentView.blogModel.author}
-
<h2>Entry</h2>
<b>#{currentView.selectedEntry.title}</b><br />
Modified: trunk/jbossblog.iws
===================================================================
--- trunk/jbossblog.iws 2006-10-20 22:16:42 UTC (rev 14)
+++ trunk/jbossblog.iws 2006-10-24 22:07:48 UTC (rev 15)
@@ -19,25 +19,29 @@
<list default="true" name="Default" comment="">
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/tools/BlogTools.java" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/tools/BlogTools.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/blog-core/src/etc/META-INF/jboss-service.xml" afterPath="$PROJECT_DIR$/blog-core/src/etc/META-INF/jboss-service.xml" />
- <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/security" />
- <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-core/src/etc/org/jboss/security/acl/AclKernelFactory.xml" />
- <change type="MODIFICATION" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/name/AbstractBlogNameService.java" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/name/AbstractBlogNameService.java" />
- <change type="MODIFICATION" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/configuration/PortletPreferencesBlogConfigurationService.java" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/configuration/PortletPreferencesBlogConfigurationService.java" />
- <change type="MODIFICATION" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/model/RomeParsingBlogModelService.java" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/model/RomeParsingBlogModelService.java" />
- <change type="MODIFICATION" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/configuration/InitParamsBlogConfigurationService.java" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/configuration/InitParamsBlogConfigurationService.java" />
+ <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/acl/ACLTagHandler.java" />
+ <change type="MODIFICATION" beforePath="$PROJECT_DIR$/blog-core/src/web/views/viewentry.xhtml" afterPath="$PROJECT_DIR$/blog-core/src/web/views/viewentry.xhtml" />
+ <change type="MODIFICATION" beforePath="$PROJECT_DIR$/blog-core/src/web/WEB-INF/faces-config.xml" afterPath="$PROJECT_DIR$/blog-core/src/web/WEB-INF/faces-config.xml" />
+ <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-core/src/web/views/userblogview_t.xhtml" />
+ <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/acl/JSFUIContext.java" />
+ <change type="MODIFICATION" beforePath="$PROJECT_DIR$/blog-core/src/etc/META-INF/acl-mapping.xml" afterPath="$PROJECT_DIR$/blog-core/src/etc/META-INF/acl-mapping.xml" />
+ <change type="MODIFICATION" beforePath="$PROJECT_DIR$/blog-core/src/web/views/userview_t.xhtml" afterPath="$PROJECT_DIR$/blog-core/src/web/views/userview_t.xhtml" />
+ <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-core/src/web/WEB-INF/blog.taglib.xml" />
+ <change type="DELETED" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/BasicBlogPermissionsService.java" afterPath="" />
+ <change type="MODIFICATION" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/BlogPermissionsService.java" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/BlogPermissionsService.java" />
+ <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/acl/JSFSecurityContext.java" />
+ <change type="DELETED" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/tools/SetWithoutBottom.java" afterPath="" />
+ <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/SecurityContext.java" />
+ <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/acl/JSFActionContext.java" />
+ <change type="MODIFICATION" beforePath="$PROJECT_DIR$/blog-core/src/web/views/index.xhtml" afterPath="$PROJECT_DIR$/blog-core/src/web/views/index.xhtml" />
+ <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/acl/AclBlogPermissionsService.java" />
+ <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/acl/JBossPortalUtil.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/blog-core/build.xml" afterPath="$PROJECT_DIR$/blog-core/build.xml" />
- <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-core/src/etc/META-INF/acl-permissions.xml" />
- <change type="MODIFICATION" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/name/PortletPreferencesBlogNameService.java" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/name/PortletPreferencesBlogNameService.java" />
- <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/AbstractBlogService.java" />
- <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-core/src/etc/org/jboss/security" />
- <change type="MODIFICATION" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/name/InitParamsBlogNameService.java" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/name/InitParamsBlogNameService.java" />
- <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-core/src/etc/org/jboss/security/acl" />
- <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/security/acl" />
- <change type="MODIFICATION" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/configuration/AbstractPreferencesBlogConfigurationService.java" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/configuration/AbstractPreferencesBlogConfigurationService.java" />
- <change type="MODIFICATION" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/model/CachingBlogModelService.java" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/model/CachingBlogModelService.java" />
- <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-core/src/etc/META-INF/acl-mapping.xml" />
- <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/security/acl/AclKernelFactory.xml" />
- <change type="MODIFICATION" beforePath="$PROJECT_DIR$/blog-core/blog-core.iml" afterPath="$PROJECT_DIR$/blog-core/blog-core.iml" />
+ <change type="MODIFICATION" beforePath="$PROJECT_DIR$/blog-core/src/web/WEB-INF/web.xml" afterPath="$PROJECT_DIR$/blog-core/src/web/WEB-INF/web.xml" />
+ <change type="MODIFICATION" beforePath="$PROJECT_DIR$/blog-core/src/web/views/viewblog.xhtml" afterPath="$PROJECT_DIR$/blog-core/src/web/views/viewblog.xhtml" />
+ <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/acl" />
+ <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/acl/AuthorizationListener.java" />
+ <change type="MODIFICATION" beforePath="$PROJECT_DIR$/blog-core/src/etc/META-INF/acl-permissions.xml" afterPath="$PROJECT_DIR$/blog-core/src/etc/META-INF/acl-permissions.xml" />
</list>
</component>
<component name="ChangeListSynchronizer" />
@@ -161,7 +165,56 @@
</subPane>
</component>
<component name="FileEditorManager">
- <leaf />
+ <leaf>
+ <file leaf-file-name="acl-permissions.xml" pinned="false" current="false" current-in-tab="false">
+ <entry file="file://$PROJECT_DIR$/blog-core/src/etc/META-INF/acl-permissions.xml">
+ <provider selected="true" editor-type-id="text-editor">
+ <state line="46" column="8" selection-start="1816" selection-end="1816" vertical-scroll-proportion="0.6741573">
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ </file>
+ <file leaf-file-name="acl-mapping.xml" pinned="false" current="true" current-in-tab="true">
+ <entry file="file://$PROJECT_DIR$/blog-core/src/etc/META-INF/acl-mapping.xml">
+ <provider selected="true" editor-type-id="text-editor">
+ <state line="91" column="26" selection-start="3922" selection-end="3922" vertical-scroll-proportion="0.4414125">
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ </file>
+ <file leaf-file-name="viewblog.xhtml" pinned="false" current="false" current-in-tab="false">
+ <entry file="file://$PROJECT_DIR$/blog-core/src/web/views/viewblog.xhtml">
+ <provider editor-type-id="HtmlPreview">
+ <state />
+ </provider>
+ <provider selected="true" editor-type-id="text-editor">
+ <state line="39" column="20" selection-start="1457" selection-end="1457" vertical-scroll-proportion="0.9798995">
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ </file>
+ <file leaf-file-name="CurrentView.java" pinned="false" current="false" current-in-tab="false">
+ <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/ui/CurrentView.java">
+ <provider selected="true" editor-type-id="text-editor">
+ <state line="229" column="5" selection-start="6398" selection-end="6398" vertical-scroll-proportion="0.80738366">
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ </file>
+ <file leaf-file-name="AuthorizationListener.java" pinned="false" current="false" current-in-tab="false">
+ <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/acl/AuthorizationListener.java">
+ <provider selected="true" editor-type-id="text-editor">
+ <state line="33" column="8" selection-start="1120" selection-end="1120" vertical-scroll-proportion="0.24077046">
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ </file>
+ </leaf>
</component>
<component name="FindManager">
<FindUsagesManager>
@@ -256,14 +309,20 @@
<option name="myItemId" value="blog-core" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
</PATH_ELEMENT>
+ </PATH>
+ <PATH>
<PATH_ELEMENT>
- <option name="myItemId" value="Libraries" />
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.LibraryGroupNode" />
+ <option name="myItemId" value="jbossblog.ipr" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
- <option name="myItemId" value="xdoclet" />
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.NamedLibraryElementNode" />
+ <option name="myItemId" value="blog-core" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
</PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
@@ -275,9 +334,21 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
- <option name="myItemId" value="Libraries" />
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.LibraryGroupNode" />
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/web" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/web/WEB-INF" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
@@ -292,6 +363,18 @@
<option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/web" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/web/views" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
@@ -310,10 +393,36 @@
<option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
+ </PATH>
+ <PATH>
<PATH_ELEMENT>
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/web" />
+ <option name="myItemId" value="jbossblog.ipr" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="blog-core" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org/jboss" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org/jboss/security/acl" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
@@ -333,13 +442,17 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/web" />
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/web/views" />
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org/jboss" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org/jboss/blog" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
@@ -358,6 +471,22 @@
<option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org/jboss" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org/jboss/blog" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/ui" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
@@ -385,9 +514,13 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org/jboss/security/acl" />
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org/jboss/blog" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/tools" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
@@ -414,6 +547,14 @@
<option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org/jboss" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org/jboss/blog" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
@@ -433,6 +574,192 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org/jboss" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org/jboss/blog" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ </PATH>
+ <PATH>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="jbossblog.ipr" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="blog-core" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org/jboss" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org/jboss/blog" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/acl" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ </PATH>
+ <PATH>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="jbossblog.ipr" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="blog-core" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org/jboss" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org/jboss/blog" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/name" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ </PATH>
+ <PATH>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="jbossblog.ipr" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="blog-core" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org/jboss" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org/jboss/blog" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/portlet" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ </PATH>
+ <PATH>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="jbossblog.ipr" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="blog-core" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org/jboss" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org/jboss/blog" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/model" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ </PATH>
+ <PATH>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="jbossblog.ipr" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="blog-core" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
<option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/etc" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
@@ -500,25 +827,30 @@
<recent name="org.jboss.blog.service.name" />
<recent name="org.jboss.blog.service.configuration" />
</key>
+ <key name="MoveClassesOrPackagesDialog.RECENTS_KEY">
+ <recent name="org.jboss.blog.service.permissions" />
+ </key>
</component>
<component name="RestoreUpdateTree" />
<component name="RunManager">
- <configuration default="true" type="Remote" factoryName="Remote">
- <option name="USE_SOCKET_TRANSPORT" value="true" />
- <option name="SERVER_MODE" value="false" />
- <option name="SHMEM_ADDRESS" value="javadebug" />
- <option name="HOST" value="localhost" />
- <option name="PORT" value="5005" />
- </configuration>
- <configuration default="true" type="Application" factoryName="Application" enabled="false" merge="false">
+ <configuration default="true" type="JUnit" factoryName="JUnit" enabled="false" merge="false">
+ <module name="" />
+ <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+ <option name="ALTERNATIVE_JRE_PATH" />
+ <option name="PACKAGE_NAME" />
<option name="MAIN_CLASS_NAME" />
+ <option name="METHOD_NAME" />
+ <option name="TEST_OBJECT" value="class" />
<option name="VM_PARAMETERS" />
- <option name="PROGRAM_PARAMETERS" />
+ <option name="PARAMETERS" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
- <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
- <option name="ALTERNATIVE_JRE_PATH" />
- <option name="ENABLE_SWING_INSPECTOR" value="false" />
- <module name="" />
+ <option name="ADDITIONAL_CLASS_PATH" />
+ <option name="TEST_SEARCH_SCOPE">
+ <value defaultName="wholeProject" />
+ </option>
+ <method>
+ <option name="Make" value="true" />
+ </method>
</configuration>
<configuration default="true" type="Applet" factoryName="Applet">
<module name="" />
@@ -532,24 +864,22 @@
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" />
</configuration>
- <configuration default="true" type="JUnit" factoryName="JUnit" enabled="false" merge="false">
- <module name="" />
- <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
- <option name="ALTERNATIVE_JRE_PATH" />
- <option name="PACKAGE_NAME" />
+ <configuration default="true" type="Remote" factoryName="Remote">
+ <option name="USE_SOCKET_TRANSPORT" value="true" />
+ <option name="SERVER_MODE" value="false" />
+ <option name="SHMEM_ADDRESS" value="javadebug" />
+ <option name="HOST" value="localhost" />
+ <option name="PORT" value="5005" />
+ </configuration>
+ <configuration default="true" type="Application" factoryName="Application" enabled="false" merge="false">
<option name="MAIN_CLASS_NAME" />
- <option name="METHOD_NAME" />
- <option name="TEST_OBJECT" value="class" />
<option name="VM_PARAMETERS" />
- <option name="PARAMETERS" />
+ <option name="PROGRAM_PARAMETERS" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
- <option name="ADDITIONAL_CLASS_PATH" />
- <option name="TEST_SEARCH_SCOPE">
- <value defaultName="wholeProject" />
- </option>
- <method>
- <option name="Make" value="true" />
- </method>
+ <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+ <option name="ALTERNATIVE_JRE_PATH" />
+ <option name="ENABLE_SWING_INSPECTOR" value="false" />
+ <module name="" />
</configuration>
</component>
<component name="ScopeViewComponent">
@@ -632,15 +962,15 @@
<window_info id="CVS" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="13" />
<window_info id="IDEtalk" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="3" />
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3298969" order="7" />
- <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.25046268" order="0" />
- <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3298969" order="1" />
+ <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.25848243" order="0" />
+ <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32914287" order="1" />
<window_info id="Structure" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.24984577" order="7" />
- <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.2279496" order="9" />
+ <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.22742857" order="9" />
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.39977092" order="6" />
<window_info id="Module Dependencies" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="4" />
<window_info id="Dependency Viewer" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="10" />
<window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="5" />
- <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.16286243" order="1" />
+ <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.26465145" order="1" />
<window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3298969" order="11" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="2" />
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.24984577" order="2" />
@@ -743,121 +1073,130 @@
<option name="myLastEditedConfigurable" value="Project Default" />
</component>
<component name="editorHistoryManager">
- <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/acl/SecurityContext.java">
+ <entry file="file://$PROJECT_DIR$/blog-core/src/web/WEB-INF/web.xml">
<provider selected="true" editor-type-id="text-editor">
- <state line="21" column="17" selection-start="1011" selection-end="1011" vertical-scroll-proportion="0.017814728">
+ <state line="7" column="76" selection-start="296" selection-end="296" vertical-scroll-proportion="0.17355372">
<folding />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/acl/JSFSecurityContext.java">
+ <entry file="file://$PROJECT_DIR$/blog-core/src/web/views/index.xhtml">
+ <provider editor-type-id="HtmlPreview">
+ <state />
+ </provider>
<provider selected="true" editor-type-id="text-editor">
- <state line="21" column="12" selection-start="1006" selection-end="1006" vertical-scroll-proportion="0.017814728">
+ <state line="5" column="56" selection-start="285" selection-end="285" vertical-scroll-proportion="0.13020833">
<folding />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/acl/JSFUIContext.java">
+ <entry file="file://$PROJECT_DIR$/blog-core/src/web/views/userview_t.xhtml">
+ <provider editor-type-id="HtmlPreview">
+ <state />
+ </provider>
<provider selected="true" editor-type-id="text-editor">
- <state line="21" column="11" selection-start="1005" selection-end="1005" vertical-scroll-proportion="0.017814728">
+ <state line="8" column="61" selection-start="425" selection-end="425" vertical-scroll-proportion="0.2020202">
<folding />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/acl/JBossPortalUtil.java">
- <provider selected="true" editor-type-id="text-editor">
- <state line="0" column="13" selection-start="13" selection-end="13" vertical-scroll-proportion="0.0">
- <folding>
- <element signature="imports" expanded="true" />
- </folding>
- </state>
+ <entry file="file://$PROJECT_DIR$/blog-core/src/web/views/viewentry.xhtml">
+ <provider editor-type-id="HtmlPreview">
+ <state />
</provider>
- </entry>
- <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/acl/AuthorizationInterface.java">
<provider selected="true" editor-type-id="text-editor">
- <state line="30" column="29" selection-start="1216" selection-end="1216" vertical-scroll-proportion="0.17814727">
+ <state line="5" column="56" selection-start="285" selection-end="285" vertical-scroll-proportion="0.12626262">
<folding />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/acl/JSFActionContext.java">
+ <entry file="file://$PROJECT_DIR$/blog-core/src/web/views/userblogview_t.xhtml">
+ <provider editor-type-id="HtmlPreview">
+ <state />
+ </provider>
<provider selected="true" editor-type-id="text-editor">
- <state line="21" column="19" selection-start="1013" selection-end="1013" vertical-scroll-proportion="0.017814728">
- <folding>
- <element signature="imports" expanded="true" />
- </folding>
+ <state line="5" column="56" selection-start="285" selection-end="285" vertical-scroll-proportion="0.12626262">
+ <folding />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/security/acl/AclKernelFactory.xml">
+ <entry file="file://$PROJECT_DIR$/blog-core/build.xml">
<provider selected="true" editor-type-id="text-editor">
- <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
+ <state line="9" column="39" selection-start="409" selection-end="409" vertical-scroll-proportion="0.2231405">
<folding />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/acl/AuthorizationListener.java">
+ <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/acl/JBossPortalUtil.java">
<provider selected="true" editor-type-id="text-editor">
- <state line="99" column="86" selection-start="3139" selection-end="3139" vertical-scroll-proportion="1.0338165">
+ <state line="53" column="23" selection-start="1422" selection-end="1422" vertical-scroll-proportion="0.3322314">
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/acl/JSFUtil.java">
+ <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/acl/ACLTagHandler.java">
<provider selected="true" editor-type-id="text-editor">
- <state line="32" column="0" selection-start="1222" selection-end="1222" vertical-scroll-proportion="0.28301886">
+ <state line="19" column="24" selection-start="408" selection-end="408" vertical-scroll-proportion="0.47107437">
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/acl/PortalUtil.java">
+ <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/acl/JSFActionContext.java">
<provider selected="true" editor-type-id="text-editor">
- <state line="64" column="13" selection-start="1883" selection-end="1883" vertical-scroll-proportion="0.6132075">
+ <state line="21" column="55" selection-start="605" selection-end="605" vertical-scroll-proportion="0.25">
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/acl/ACLTagHandler.java">
+ <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/acl/AclBlogPermissionsService.java">
<provider selected="true" editor-type-id="text-editor">
- <state line="145" column="76" selection-start="4517" selection-end="4517" vertical-scroll-proportion="2.9481132">
+ <state line="34" column="5" selection-start="1184" selection-end="1184" vertical-scroll-proportion="0.28099173">
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/acl/AuthorizationProvider.java">
+ <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/ui/CurrentView.java">
<provider selected="true" editor-type-id="text-editor">
- <state line="29" column="46" selection-start="1257" selection-end="1257" vertical-scroll-proportion="0.2173913">
- <folding>
- <element signature="imports" expanded="true" />
- </folding>
+ <state line="229" column="5" selection-start="6398" selection-end="6398" vertical-scroll-proportion="0.80738366">
+ <folding />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/blog-core/build.xml">
+ <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/acl/AuthorizationListener.java">
<provider selected="true" editor-type-id="text-editor">
- <state line="83" column="39" selection-start="3628" selection-end="3628" vertical-scroll-proportion="0.6855346">
+ <state line="33" column="8" selection-start="1120" selection-end="1120" vertical-scroll-proportion="0.24077046">
<folding />
</state>
</provider>
</entry>
+ <entry file="file://$PROJECT_DIR$/blog-core/src/web/views/viewblog.xhtml">
+ <provider editor-type-id="HtmlPreview">
+ <state />
+ </provider>
+ <provider selected="true" editor-type-id="text-editor">
+ <state line="39" column="20" selection-start="1457" selection-end="1457" vertical-scroll-proportion="0.9798995">
+ <folding />
+ </state>
+ </provider>
+ </entry>
<entry file="file://$PROJECT_DIR$/blog-core/src/etc/META-INF/acl-permissions.xml">
<provider selected="true" editor-type-id="text-editor">
- <state line="80" column="73" selection-start="3145" selection-end="3145" vertical-scroll-proportion="1.9323672">
+ <state line="46" column="8" selection-start="1816" selection-end="1816" vertical-scroll-proportion="0.6741573">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/blog-core/src/etc/META-INF/acl-mapping.xml">
<provider selected="true" editor-type-id="text-editor">
- <state line="15" column="48" selection-start="1035" selection-end="1035" vertical-scroll-proportion="0.36231884">
+ <state line="91" column="26" selection-start="3922" selection-end="3922" vertical-scroll-proportion="0.4414125">
<folding />
</state>
</provider>
More information about the jboss-cvs-commits
mailing list