[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