[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