[jboss-svn-commits] JBL Code SVN: r6594 - in labs/shotoku/trunk/shotoku-blog: . src/etc/META-INF src/java/org/jboss/blog/service src/java/org/jboss/blog/service/model src/java/org/jboss/blog/service/permissions src/java/org/jboss/blog/tools

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Oct 4 13:27:14 EDT 2006


Author: adamw
Date: 2006-10-04 13:27:09 -0400 (Wed, 04 Oct 2006)
New Revision: 6594

Added:
   labs/shotoku/trunk/shotoku-blog/src/java/org/jboss/blog/service/permissions/BasicBlogPermissionsService.java
   labs/shotoku/trunk/shotoku-blog/src/java/org/jboss/blog/service/permissions/BlogPermissionsService.java
   labs/shotoku/trunk/shotoku-blog/src/java/org/jboss/blog/tools/SetWithoutBottom.java
Modified:
   labs/shotoku/trunk/shotoku-blog/shotoku-blog.iml
   labs/shotoku/trunk/shotoku-blog/src/etc/META-INF/jboss-service.xml
   labs/shotoku/trunk/shotoku-blog/src/java/org/jboss/blog/service/BlogService.java
   labs/shotoku/trunk/shotoku-blog/src/java/org/jboss/blog/service/model/RomeParsingBlogModelService.java
Log:
http://jira.jboss.com/jira/browse/JBSHOTOKU-94

Modified: labs/shotoku/trunk/shotoku-blog/shotoku-blog.iml
===================================================================
--- labs/shotoku/trunk/shotoku-blog/shotoku-blog.iml	2006-10-04 17:12:04 UTC (rev 6593)
+++ labs/shotoku/trunk/shotoku-blog/shotoku-blog.iml	2006-10-04 17:27:09 UTC (rev 6594)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <module version="4" relativePaths="true" type="JAVA_MODULE">
   <component name="ModuleRootManager" />
-  <component name="NewModuleRootManager" inherit-compiler-output="false">
+  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_4" inherit-compiler-output="false">
     <output url="file://$MODULE_DIR$/target" />
     <exclude-output />
     <content url="file://$MODULE_DIR$">

Modified: labs/shotoku/trunk/shotoku-blog/src/etc/META-INF/jboss-service.xml
===================================================================
--- labs/shotoku/trunk/shotoku-blog/src/etc/META-INF/jboss-service.xml	2006-10-04 17:12:04 UTC (rev 6593)
+++ labs/shotoku/trunk/shotoku-blog/src/etc/META-INF/jboss-service.xml	2006-10-04 17:27:09 UTC (rev 6594)
@@ -29,6 +29,18 @@
     </mbean>
 
     <mbean
+            code="org.jboss.blog.service.permissions.BasicBlogPermissionsService"
+            name="blog:service=Permissions"
+            xmbean-dd=""
+            xmbean-code="org.jboss.portal.common.system.JBossServiceModelMBean">
+        <xmbean/>
+        <attribute name="allowedToView">*</attribute>
+        <attribute name="allowedToComment">Administrator</attribute>
+        <attribute name="allowedToAdd">Administrator</attribute>
+        <attribute name="allowedToAdminister">Administrator</attribute>
+    </mbean>
+
+    <mbean
             code="org.jboss.blog.service.BlogService"
             name="blog:service=Main"
             xmbean-dd=""
@@ -40,5 +52,8 @@
         <depends
                 optional-attribute-name="ModelService"
                 proxy-type="attribute">blog:service=Model</depends>
+        <depends
+                optional-attribute-name="PermissionsService"
+                proxy-type="attribute">blog:service=Permissions</depends>
     </mbean>
 </server>
\ No newline at end of file

Modified: labs/shotoku/trunk/shotoku-blog/src/java/org/jboss/blog/service/BlogService.java
===================================================================
--- labs/shotoku/trunk/shotoku-blog/src/java/org/jboss/blog/service/BlogService.java	2006-10-04 17:12:04 UTC (rev 6593)
+++ labs/shotoku/trunk/shotoku-blog/src/java/org/jboss/blog/service/BlogService.java	2006-10-04 17:27:09 UTC (rev 6594)
@@ -3,6 +3,7 @@
 import org.jboss.portal.common.system.AbstractJBossService;
 import org.jboss.blog.service.name.BlogNameService;
 import org.jboss.blog.service.model.BlogModelService;
+import org.jboss.blog.service.permissions.BlogPermissionsService;
 
 /**
  * A central point tieing all other blog servcies and providing a way to access
@@ -16,7 +17,16 @@
 
     private BlogNameService nameService;
     private BlogModelService modelService;
+    private BlogPermissionsService permissionsService;
 
+    public BlogPermissionsService getPermissionsService() {
+        return permissionsService;
+    }
+
+    public void setPermissionsService(BlogPermissionsService permissionsService) {
+        this.permissionsService = permissionsService;
+    }
+
     public BlogNameService getNameService() {
         return nameService;
     }

Modified: labs/shotoku/trunk/shotoku-blog/src/java/org/jboss/blog/service/model/RomeParsingBlogModelService.java
===================================================================
--- labs/shotoku/trunk/shotoku-blog/src/java/org/jboss/blog/service/model/RomeParsingBlogModelService.java	2006-10-04 17:12:04 UTC (rev 6593)
+++ labs/shotoku/trunk/shotoku-blog/src/java/org/jboss/blog/service/model/RomeParsingBlogModelService.java	2006-10-04 17:27:09 UTC (rev 6594)
@@ -41,7 +41,7 @@
         } catch (FeedException e) {
             throw new BlogModelDoesNotExistException(e);
         }
-
+        
         List<BlogEntry> entries = new ArrayList<BlogEntry>();
 
         String defaultAuthor = inFeed.getAuthor();

Added: labs/shotoku/trunk/shotoku-blog/src/java/org/jboss/blog/service/permissions/BasicBlogPermissionsService.java
===================================================================
--- labs/shotoku/trunk/shotoku-blog/src/java/org/jboss/blog/service/permissions/BasicBlogPermissionsService.java	2006-10-04 17:12:04 UTC (rev 6593)
+++ labs/shotoku/trunk/shotoku-blog/src/java/org/jboss/blog/service/permissions/BasicBlogPermissionsService.java	2006-10-04 17:27:09 UTC (rev 6594)
@@ -0,0 +1,98 @@
+package org.jboss.blog.service.permissions;
+
+import org.jboss.blog.tools.BlogTools;
+import org.jboss.blog.tools.SetWithoutBottom;
+import org.jboss.blog.BlogName;
+
+import java.util.Set;
+import java.util.HashSet;
+
+/**
+ * @author Adam Warski (adamw at aster.pl)
+ */
+public class BasicBlogPermissionsService implements BlogPermissionsService {
+    public BasicBlogPermissionsService() {
+
+    }
+
+    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;
+    }
+
+
+    public String getAllowedToView() {
+        return allowedToView;
+    }
+
+    public void setAllowedToView(String allowedToView) {
+        this.allowedToView = allowedToView;
+        allowedToViewSet = parseCommaSeparatedList(allowedToView);
+    }
+
+    public String getAllowedToComment() {
+        return allowedToComment;
+    }
+
+    public void setAllowedToComment(String allowedToComment) {
+        this.allowedToComment = allowedToComment;
+        allowedToCommentSet = parseCommaSeparatedList(allowedToComment);
+    }
+
+    public String getAllowedToAdd() {
+        return allowedToAdd;
+    }
+
+    public void setAllowedToAdd(String allowedToAdd) {
+        this.allowedToAdd = allowedToAdd;
+        allowedToAddSet = parseCommaSeparatedList(allowedToAdd);
+    }
+
+    public String getAllowedToAdminister() {
+        return allowedToAdminister;
+    }
+
+    public void setAllowedToAdminister(String allowedToAdminister) {
+        this.allowedToAdminister = allowedToAdminister;
+        allowedToAdministerSet = parseCommaSeparatedList(allowedToAdminister);
+    }
+}

Added: labs/shotoku/trunk/shotoku-blog/src/java/org/jboss/blog/service/permissions/BlogPermissionsService.java
===================================================================
--- labs/shotoku/trunk/shotoku-blog/src/java/org/jboss/blog/service/permissions/BlogPermissionsService.java	2006-10-04 17:12:04 UTC (rev 6593)
+++ labs/shotoku/trunk/shotoku-blog/src/java/org/jboss/blog/service/permissions/BlogPermissionsService.java	2006-10-04 17:27:09 UTC (rev 6594)
@@ -0,0 +1,22 @@
+package org.jboss.blog.service.permissions;
+
+import org.jboss.blog.BlogName;
+
+/**
+ * A service which enables to check, if a given user can view/ edit/ comment/
+ * etc blogs.
+ * @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.
+     */
+    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);
+}

Added: labs/shotoku/trunk/shotoku-blog/src/java/org/jboss/blog/tools/SetWithoutBottom.java
===================================================================
--- labs/shotoku/trunk/shotoku-blog/src/java/org/jboss/blog/tools/SetWithoutBottom.java	2006-10-04 17:12:04 UTC (rev 6593)
+++ labs/shotoku/trunk/shotoku-blog/src/java/org/jboss/blog/tools/SetWithoutBottom.java	2006-10-04 17:27:09 UTC (rev 6594)
@@ -0,0 +1,62 @@
+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];
+    }
+}




More information about the jboss-svn-commits mailing list