[jboss-cvs] JBossBlog SVN: r297 - in trunk: docs and 17 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Apr 30 08:50:33 EDT 2008
Author: adamw
Date: 2008-04-30 08:50:33 -0400 (Wed, 30 Apr 2008)
New Revision: 297
Added:
trunk/src/action/org/jboss/blog/session/security/RestrictedKeyGenerator.java
trunk/src/model/org/jboss/blog/model/security/RestrictedMode.java
Modified:
trunk/blog.iml
trunk/docs/tutorial.html
trunk/src/action/org/jboss/blog/servlet/FeedsServlet.java
trunk/src/action/org/jboss/blog/session/feed/FeedsServiceImpl.java
trunk/src/action/org/jboss/blog/session/feed/dao/AggregatedFeedDao.java
trunk/src/action/org/jboss/blog/session/feed/dao/FeedDao.java
trunk/src/action/org/jboss/blog/session/feed/dao/HighlightsFeedDao.java
trunk/src/action/org/jboss/blog/session/feed/dao/RemoteFeedDao.java
trunk/src/action/org/jboss/blog/session/feed/mod/FeedModBean.java
trunk/src/action/org/jboss/blog/session/feed/posts/AggregatedFeedPosts.java
trunk/src/action/org/jboss/blog/session/security/tools/FeedSecurityTools.java
trunk/src/action/org/jboss/blog/session/view/LinkServiceImpl.java
trunk/src/action/org/jboss/blog/session/xml/XmlService.java
trunk/src/action/org/jboss/blog/session/xml/velocity/VelocityXmlService.java
trunk/src/model/org/jboss/blog/model/feed/Feed.java
trunk/src/services/org/jboss/blog/service/FeedsService.java
trunk/src/shotoku/org/jboss/blog/session/feed/dao/ShotokuFeedDao.java
trunk/src/test/org/jboss/blog/session/feed/posts/AggregatedFeedPostsTest.java
trunk/src/tools/org/jboss/blog/tools/StringTools.java
trunk/view/manage/feed_mod.xhtml
Log:
Modified: trunk/blog.iml
===================================================================
--- trunk/blog.iml 2008-04-29 11:27:13 UTC (rev 296)
+++ trunk/blog.iml 2008-04-30 12:50:33 UTC (rev 297)
@@ -540,15 +540,6 @@
<SOURCES />
</library>
</orderEntry>
- <orderEntry type="module-library">
- <library>
- <CLASSES>
- <root url="jar://$MODULE_DIR$/lib/log4j.jar!/" />
- </CLASSES>
- <JAVADOC />
- <SOURCES />
- </library>
- </orderEntry>
<orderEntryProperties />
</component>
</module>
Modified: trunk/docs/tutorial.html
===================================================================
--- trunk/docs/tutorial.html 2008-04-29 11:27:13 UTC (rev 296)
+++ trunk/docs/tutorial.html 2008-04-30 12:50:33 UTC (rev 297)
@@ -4,7 +4,7 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>JBoss.ORG Feeds tutorial</title>
- <link rel="stylesheet" href="http://labs.jboss.com/files/portletcontainer/docs/2.0.0.CR1/css/jbossorg.css" type="text/css"/>
+ <link rel="stylesheet" href="http://www.jboss.org/files/portletcontainer/docs/2.0.0.CR1/css/jbossorg.css" type="text/css"/>
</head>
<body>
<p id="title">
Modified: trunk/src/action/org/jboss/blog/servlet/FeedsServlet.java
===================================================================
--- trunk/src/action/org/jboss/blog/servlet/FeedsServlet.java 2008-04-29 11:27:13 UTC (rev 296)
+++ trunk/src/action/org/jboss/blog/servlet/FeedsServlet.java 2008-04-30 12:50:33 UTC (rev 297)
@@ -41,6 +41,7 @@
throws ServletException, IOException {
String feedType = request.getParameter("type");
String feedName = request.getParameter("name");
+ String feedKey = request.getParameter("key");
UserTransaction tx = null;
boolean txStarted = false;
@@ -56,7 +57,7 @@
ContentResponse contentResponse = new ServletResponseContentResponse(response);
XmlService xmlService = (XmlService) Component.getInstance("xmlService");
- xmlService.writeXml(feedType, feedName, contentResponse);
+ xmlService.writeXml(feedType, feedName, feedKey, contentResponse);
response.getWriter().flush();
if (txStarted) {
Modified: trunk/src/action/org/jboss/blog/session/feed/FeedsServiceImpl.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/feed/FeedsServiceImpl.java 2008-04-29 11:27:13 UTC (rev 296)
+++ trunk/src/action/org/jboss/blog/session/feed/FeedsServiceImpl.java 2008-04-30 12:50:33 UTC (rev 297)
@@ -4,6 +4,7 @@
import org.jboss.blog.model.feed.RestrictedFeed;
import org.jboss.blog.model.Post;
import org.jboss.blog.model.RestrictedPost;
+import org.jboss.blog.model.security.RestrictedMode;
import org.jboss.blog.service.FeedNotFoundException;
import org.jboss.blog.service.FeedsService;
import org.jboss.blog.service.PostNotFoundException;
@@ -77,30 +78,32 @@
}
public List<? extends RestrictedPost> getPosts(RestrictedFeed feed, int from, int to) {
- boolean restricted = false;
+ RestrictedMode restricted = RestrictedMode.IGNORE;
// We want to get restricted feeds, if we are logged in, the current feed is restricted and
// we have sufficient permissions to view the feed.
- if (identity.isLoggedIn() && feed.getRestricted() && FeedSecurityTools.canViewFeed(feed, true)) {
- restricted = true;
+ if (identity.isLoggedIn() && feed.getRestricted() && FeedSecurityTools.canViewFeed(feed,
+ RestrictedMode.CHECK_AND_INCLUDE)) {
+ restricted = RestrictedMode.CHECK_AND_INCLUDE;
}
return getPosts(feed, from, to, restricted);
}
- public List<? extends RestrictedPost> getPosts(RestrictedFeed feed, int from, int to, boolean restricted) {
+ public List<? extends RestrictedPost> getPosts(RestrictedFeed feed, int from, int to, RestrictedMode restricted) {
boolean isFeedRestricted = feed.getRestricted();
// If the feed isn't restricted, then we set the flag not to include restricted posts.
if (!isFeedRestricted) {
- restricted = false;
+ restricted = RestrictedMode.IGNORE;
}
// We return an empty list if:
// - we don't want restricted posts, but this feed is restricted
// - we want restricted posts, this feed is restricted, but we can't view it.
- if ((!restricted && isFeedRestricted) ||
- (restricted && isFeedRestricted && !FeedSecurityTools.canViewFeed(feed, restricted))) {
+ if ((restricted == RestrictedMode.IGNORE && isFeedRestricted) ||
+ (restricted != RestrictedMode.IGNORE && isFeedRestricted &&
+ !FeedSecurityTools.canViewFeed(feed, restricted))) {
log.debug("Reading restricted feed '#0', returning an empty list.", feed.getName());
return new ArrayList<RestrictedPost>();
}
Modified: trunk/src/action/org/jboss/blog/session/feed/dao/AggregatedFeedDao.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/feed/dao/AggregatedFeedDao.java 2008-04-29 11:27:13 UTC (rev 296)
+++ trunk/src/action/org/jboss/blog/session/feed/dao/AggregatedFeedDao.java 2008-04-30 12:50:33 UTC (rev 297)
@@ -4,6 +4,7 @@
import org.jboss.blog.model.RestrictedPost;
import org.jboss.blog.session.feed.posts.AggregatedFeedPosts;
import org.jboss.blog.session.feed.type.FeedType;
+import org.jboss.blog.model.security.RestrictedMode;
import org.jboss.seam.Component;
import java.util.List;
@@ -23,7 +24,7 @@
this.aggregatedFeed = aggregatedFeed;
}
- public List<? extends RestrictedPost> getPosts(int from, int to, boolean restricted) {
+ public List<? extends RestrictedPost> getPosts(int from, int to, RestrictedMode restricted) {
return ((AggregatedFeedPosts) Component.getInstance("aggregatedFeedPosts")).getPosts(
aggregatedFeed, from, to, restricted);
}
Modified: trunk/src/action/org/jboss/blog/session/feed/dao/FeedDao.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/feed/dao/FeedDao.java 2008-04-29 11:27:13 UTC (rev 296)
+++ trunk/src/action/org/jboss/blog/session/feed/dao/FeedDao.java 2008-04-30 12:50:33 UTC (rev 297)
@@ -2,6 +2,7 @@
import org.jboss.blog.model.RestrictedPost;
import org.jboss.blog.session.update.UpdateException;
+import org.jboss.blog.model.security.RestrictedMode;
import java.util.List;
@@ -9,7 +10,7 @@
* @author Adam Warski (adam at warski dot org)
*/
public interface FeedDao {
- public List<? extends RestrictedPost> getPosts(int from, int to, boolean restricted);
+ public List<? extends RestrictedPost> getPosts(int from, int to, RestrictedMode restricted);
public void update() throws UpdateException;
}
Modified: trunk/src/action/org/jboss/blog/session/feed/dao/HighlightsFeedDao.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/feed/dao/HighlightsFeedDao.java 2008-04-29 11:27:13 UTC (rev 296)
+++ trunk/src/action/org/jboss/blog/session/feed/dao/HighlightsFeedDao.java 2008-04-30 12:50:33 UTC (rev 297)
@@ -6,6 +6,7 @@
import org.jboss.blog.session.feed.type.FeedType;
import org.jboss.blog.session.update.UpdateException;
import org.jboss.blog.session.security.tools.FeedSecurityTools;
+import org.jboss.blog.model.security.RestrictedMode;
import org.jboss.blog.tools.GeneralTools;
import java.util.List;
@@ -26,7 +27,7 @@
this.highlightsFeed = highlightsFeed;
}
- public List<? extends RestrictedPost> getPosts(int from, int to, boolean restricted) {
+ public List<? extends RestrictedPost> getPosts(int from, int to, RestrictedMode restricted) {
List<Post> posts = GeneralTools.subList(highlightsFeed.getSelectedPosts(), from, to);
List<Post> ret = new ArrayList<Post>();
Modified: trunk/src/action/org/jboss/blog/session/feed/dao/RemoteFeedDao.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/feed/dao/RemoteFeedDao.java 2008-04-29 11:27:13 UTC (rev 296)
+++ trunk/src/action/org/jboss/blog/session/feed/dao/RemoteFeedDao.java 2008-04-30 12:50:33 UTC (rev 297)
@@ -2,6 +2,7 @@
import org.jboss.blog.model.feed.RemoteFeed;
import org.jboss.blog.model.RestrictedPost;
+import org.jboss.blog.model.security.RestrictedMode;
import org.jboss.blog.session.feed.posts.DatabaseFeedPosts;
import org.jboss.blog.session.feed.type.FeedType;
import org.jboss.blog.session.feed.update.RemoteFeedUpdate;
@@ -9,7 +10,6 @@
import org.jboss.seam.Component;
import java.util.List;
-import java.util.ArrayList;
/**
* @author Adam Warski (adam at warski dot org)
@@ -26,7 +26,7 @@
this.remoteFeed = remoteFeed;
}
- public List<? extends RestrictedPost> getPosts(int from, int to, boolean restricted) {
+ public List<? extends RestrictedPost> getPosts(int from, int to, RestrictedMode restricted) {
return ((DatabaseFeedPosts) Component.getInstance("databaseFeedPosts")).getPosts(
remoteFeed, from, to);
}
Modified: trunk/src/action/org/jboss/blog/session/feed/mod/FeedModBean.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/feed/mod/FeedModBean.java 2008-04-29 11:27:13 UTC (rev 296)
+++ trunk/src/action/org/jboss/blog/session/feed/mod/FeedModBean.java 2008-04-30 12:50:33 UTC (rev 297)
@@ -9,6 +9,7 @@
import org.jboss.blog.session.feed.lock.FeedsLocksBean;
import org.jboss.blog.session.update.UpdateHandlerAsync;
import org.jboss.blog.session.xml.velocity.TemplateServiceBean;
+import org.jboss.blog.session.security.RestrictedKeyGenerator;
import org.jboss.seam.ScopeType;
import org.jboss.seam.core.Events;
import org.jboss.seam.annotations.*;
@@ -52,6 +53,9 @@
@In
private Events events;
+ @In
+ private RestrictedKeyGenerator restrictedKeyGenerator;
+
public void initNewFeed(Feed feed) {
this.feed = feed;
feed.setMaxPostsInFeed(10);
@@ -60,6 +64,7 @@
feed.setAccepted(true);
feed.setPosts(new ArrayList<Post>());
feed.setPostAuthorType(PostAuthorType.BLOG_AUTHOR_IF_MISSING);
+ feed.setRestrictedKey(restrictedKeyGenerator.generate());
feed.getTemplates().put(XmlType.ATOM, templateService.templatesOfType(XmlType.ATOM).get(0));
}
@@ -70,12 +75,20 @@
public void setFeed(Feed feed) {
this.feed = feed;
+
+ if (feed.getRestrictedKey() == null) {
+ reGenerateFeedKey();
+ }
}
public XmlType[] getTemplateTypes() {
return new XmlType[] { XmlType.ATOM };
}
+ public void reGenerateFeedKey() {
+ feed.setRestrictedKey(restrictedKeyGenerator.generate());
+ }
+
@Observer("org.jboss.blog.feed.accept")
public void acceptFeed() {
feed.setAccepted(true);
Modified: trunk/src/action/org/jboss/blog/session/feed/posts/AggregatedFeedPosts.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/feed/posts/AggregatedFeedPosts.java 2008-04-29 11:27:13 UTC (rev 296)
+++ trunk/src/action/org/jboss/blog/session/feed/posts/AggregatedFeedPosts.java 2008-04-30 12:50:33 UTC (rev 297)
@@ -4,6 +4,7 @@
import org.jboss.blog.model.feed.Feed;
import org.jboss.blog.model.RestrictedPost;
import org.jboss.blog.model.Group;
+import org.jboss.blog.model.security.RestrictedMode;
import org.jboss.blog.service.FeedsService;
import org.jboss.blog.service.GroupsService;
import org.jboss.blog.tools.GeneralTools;
@@ -33,7 +34,7 @@
@SuppressWarnings("unchecked")
public List<? extends RestrictedPost> getPosts(AggregatedFeed aggregatedFeed, int from, int to,
- boolean restricted) {
+ RestrictedMode restricted) {
if (aggregatedFeedStack.contains(aggregatedFeed)) {
return null;
}
@@ -50,7 +51,7 @@
feedsAndFilters.put(feedInGroup, groupFilter);
}
- if (restricted) {
+ if (restricted != RestrictedMode.IGNORE) {
for (Feed feedInGroup : groupsService.restrictedFeeds(group)) {
feedsAndFilters.put(feedInGroup, groupFilter);
}
Added: trunk/src/action/org/jboss/blog/session/security/RestrictedKeyGenerator.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/security/RestrictedKeyGenerator.java (rev 0)
+++ trunk/src/action/org/jboss/blog/session/security/RestrictedKeyGenerator.java 2008-04-30 12:50:33 UTC (rev 297)
@@ -0,0 +1,49 @@
+package org.jboss.blog.session.security;
+
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Scope;
+import org.jboss.seam.annotations.In;
+import org.jboss.seam.annotations.AutoCreate;
+import org.jboss.seam.ScopeType;
+
+import javax.persistence.EntityManager;
+import java.util.Random;
+import java.util.List;
+
+/**
+ * @author Adam Warski (adam at warski dot org)
+ */
+ at Name("restrictedKeyGenerator")
+ at Scope(ScopeType.STATELESS)
+ at AutoCreate
+public class RestrictedKeyGenerator {
+ @In
+ private EntityManager entityManager;
+
+ private boolean keyValid(String key) {
+ if (key.length() < 8) {
+ return false;
+ }
+
+ List results = entityManager.createQuery("select f from Feed f where f.restrictedKey = ?1")
+ .setParameter(1, key).getResultList();
+
+ if (results.size() == 0) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ public String generate() {
+ Random random = new Random();
+
+ String key;
+ do {
+ key = Long.toString(Math.abs(random.nextLong()), 36);
+ } while (!keyValid(key));
+
+ return key;
+ }
+}
+
Modified: trunk/src/action/org/jboss/blog/session/security/tools/FeedSecurityTools.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/security/tools/FeedSecurityTools.java 2008-04-29 11:27:13 UTC (rev 296)
+++ trunk/src/action/org/jboss/blog/session/security/tools/FeedSecurityTools.java 2008-04-30 12:50:33 UTC (rev 297)
@@ -1,6 +1,7 @@
package org.jboss.blog.session.security.tools;
import org.jboss.blog.model.feed.RestrictedFeed;
+import org.jboss.blog.model.security.RestrictedMode;
import org.jboss.seam.security.Identity;
import org.jboss.seam.Component;
@@ -8,15 +9,19 @@
* @author Adam Warski (adam at warski dot org)
*/
public class FeedSecurityTools {
- public static boolean canViewFeed(RestrictedFeed feed, boolean restricted) {
+ public static boolean canViewFeed(RestrictedFeed feed, RestrictedMode restricted) {
if (!feed.getRestricted()) {
return true;
}
- if (!restricted) {
+ if (restricted == RestrictedMode.IGNORE) {
return false;
}
+ if (restricted == RestrictedMode.INCLUDE) {
+ return true;
+ }
+
Identity identity = (Identity) Component.getInstance(Identity.class);
return identity.hasPermission("feed", "view", feed);
}
Modified: trunk/src/action/org/jboss/blog/session/view/LinkServiceImpl.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/view/LinkServiceImpl.java 2008-04-29 11:27:13 UTC (rev 296)
+++ trunk/src/action/org/jboss/blog/session/view/LinkServiceImpl.java 2008-04-30 12:50:33 UTC (rev 297)
@@ -36,7 +36,14 @@
}
public String generateFeedLink(Feed feed, XmlType type) {
- return serverAddress + "/" + contextName + "/xml/" + feed.getName() + "?type=" + type.toString().toLowerCase();
+ String base = serverAddress + "/" + contextName + "/xml/" + feed.getName()
+ + "?type=" + type.toString().toLowerCase();
+
+ if (feed.getRestricted()) {
+ return base + "&key=" + feed.getRestrictedKey();
+ } else {
+ return base;
+ }
}
public String generateFeedPageLink(Feed feed) {
Modified: trunk/src/action/org/jboss/blog/session/xml/XmlService.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/xml/XmlService.java 2008-04-29 11:27:13 UTC (rev 296)
+++ trunk/src/action/org/jboss/blog/session/xml/XmlService.java 2008-04-30 12:50:33 UTC (rev 297)
@@ -6,6 +6,6 @@
* @author Adam Warski (adam at warski dot org)
*/
public interface XmlService {
- void writeXml(String feedType, String feedName, ContentResponse response)
+ void writeXml(String feedType, String feedName, String feedKey, ContentResponse response)
throws Exception;
}
Modified: trunk/src/action/org/jboss/blog/session/xml/velocity/VelocityXmlService.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/xml/velocity/VelocityXmlService.java 2008-04-29 11:27:13 UTC (rev 296)
+++ trunk/src/action/org/jboss/blog/session/xml/velocity/VelocityXmlService.java 2008-04-30 12:50:33 UTC (rev 297)
@@ -7,6 +7,7 @@
import org.jboss.blog.model.XmlType;
import org.jboss.blog.model.RestrictedPost;
import org.jboss.blog.service.FeedsService;
+import org.jboss.blog.service.FeedNotFoundException;
import org.jboss.blog.session.xml.XmlService;
import org.jboss.blog.session.xml.content.ContentResponse;
import org.jboss.blog.session.xml.content.InMemoryContentResponse;
@@ -15,6 +16,7 @@
import org.jboss.blog.session.xml.velocity.tools.Rss2XmlTools;
import org.jboss.blog.session.cache.CacheManager;
import org.jboss.blog.session.tools.PostToToolsBean;
+import org.jboss.blog.model.security.RestrictedMode;
import org.jboss.blog.tools.GeneralTools;
import org.jboss.seam.annotations.*;
import org.jboss.seam.log.Log;
@@ -67,7 +69,7 @@
}
}
- public void writeXml(String feedType, String feedName, ContentResponse response)
+ public void writeXml(String feedType, String feedName, String feedKey, ContentResponse response)
throws Exception {
InMemoryContentResponse inCache = cacheManager.getFeedXml(feedName, feedType);
@@ -85,11 +87,17 @@
Feed feed = feedsService.getFeed(feedName);
+ boolean isRestricted = feed.getRestricted();
+ if (isRestricted && !GeneralTools.objectsEqual(feed.getRestrictedKey(), feedKey)) {
+ throw new FeedNotFoundException();
+ }
+
if (feed.getTemplates().get(xmlType) == null) {
throw new InvalidTemplateTypeException();
}
- List<? extends RestrictedPost> posts = feedsService.getPosts(feed, 0, feed.getMaxPostsInFeed());
+ List<? extends RestrictedPost> posts = feedsService.getPosts(feed, 0, feed.getMaxPostsInFeed(),
+ RestrictedMode.INCLUDE);
inCache.setContentType(xmlType.contentType());
inCache.setCharacterEncoding("utf-8");
@@ -104,7 +112,9 @@
Template template = engine.getTemplate(feed.getTemplates().get(xmlType).getName());
template.merge(context, inCache.getWriter());
- cacheManager.putFeedXml(feedName, feedType, inCache);
+ if (!isRestricted) {
+ cacheManager.putFeedXml(feedName, feedType, inCache);
+ }
}
response.setCharacterEncoding(inCache.getCharacterEncoding());
Modified: trunk/src/model/org/jboss/blog/model/feed/Feed.java
===================================================================
--- trunk/src/model/org/jboss/blog/model/feed/Feed.java 2008-04-29 11:27:13 UTC (rev 296)
+++ trunk/src/model/org/jboss/blog/model/feed/Feed.java 2008-04-30 12:50:33 UTC (rev 297)
@@ -84,6 +84,9 @@
@Column
private Boolean restricted;
+ @Column
+ private String restrictedKey;
+
public Integer getId() {
return id;
}
@@ -220,6 +223,14 @@
this.restricted = restricted;
}
+ public String getRestrictedKey() {
+ return restrictedKey;
+ }
+
+ public void setRestrictedKey(String restrictedKey) {
+ this.restrictedKey = restrictedKey;
+ }
+
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof Feed)) return false;
Added: trunk/src/model/org/jboss/blog/model/security/RestrictedMode.java
===================================================================
--- trunk/src/model/org/jboss/blog/model/security/RestrictedMode.java (rev 0)
+++ trunk/src/model/org/jboss/blog/model/security/RestrictedMode.java 2008-04-30 12:50:33 UTC (rev 297)
@@ -0,0 +1,10 @@
+package org.jboss.blog.model.security;
+
+/**
+ * @author Adam Warski (adam at warski dot org)
+ */
+public enum RestrictedMode {
+ CHECK_AND_INCLUDE,
+ INCLUDE,
+ IGNORE
+}
Modified: trunk/src/services/org/jboss/blog/service/FeedsService.java
===================================================================
--- trunk/src/services/org/jboss/blog/service/FeedsService.java 2008-04-29 11:27:13 UTC (rev 296)
+++ trunk/src/services/org/jboss/blog/service/FeedsService.java 2008-04-30 12:50:33 UTC (rev 297)
@@ -4,6 +4,7 @@
import org.jboss.blog.model.feed.RestrictedFeed;
import org.jboss.blog.model.Post;
import org.jboss.blog.model.RestrictedPost;
+import org.jboss.blog.model.security.RestrictedMode;
import java.util.List;
@@ -22,10 +23,10 @@
* @param feed Feed of which posts to get.
* @param from Starting post.
* @param to Ending post.
- * @param restricted Should restricted posts be included?
+ * @param restricted How restricted posts should be handled.
* @return A list of posts of the given feed, of length max. to-from.
*/
- List<? extends RestrictedPost> getPosts(RestrictedFeed feed, int from, int to, boolean restricted);
+ List<? extends RestrictedPost> getPosts(RestrictedFeed feed, int from, int to, RestrictedMode restricted);
List<? extends RestrictedPost> getPosts(int from, int to);
}
Modified: trunk/src/shotoku/org/jboss/blog/session/feed/dao/ShotokuFeedDao.java
===================================================================
--- trunk/src/shotoku/org/jboss/blog/session/feed/dao/ShotokuFeedDao.java 2008-04-29 11:27:13 UTC (rev 296)
+++ trunk/src/shotoku/org/jboss/blog/session/feed/dao/ShotokuFeedDao.java 2008-04-30 12:50:33 UTC (rev 297)
@@ -1,6 +1,7 @@
package org.jboss.blog.session.feed.dao;
import org.jboss.blog.model.RestrictedPost;
+import org.jboss.blog.model.security.RestrictedMode;
import org.jboss.blog.model.shotoku.ShotokuFeed;
import org.jboss.blog.session.feed.posts.DatabaseFeedPosts;
import org.jboss.blog.session.feed.type.FeedType;
@@ -9,7 +10,6 @@
import org.jboss.seam.Component;
import java.util.List;
-import java.util.ArrayList;
/**
* @author Adam Warski (adam at warski dot org)
@@ -26,7 +26,7 @@
this.shotokuFeed = shotokuFeed;
}
- public List<? extends RestrictedPost> getPosts(int from, int to, boolean restricted) {
+ public List<? extends RestrictedPost> getPosts(int from, int to, RestrictedMode restricted) {
return ((DatabaseFeedPosts) Component.getInstance("databaseFeedPosts")).getPosts(
shotokuFeed, from, to);
}
Modified: trunk/src/test/org/jboss/blog/session/feed/posts/AggregatedFeedPostsTest.java
===================================================================
--- trunk/src/test/org/jboss/blog/session/feed/posts/AggregatedFeedPostsTest.java 2008-04-29 11:27:13 UTC (rev 296)
+++ trunk/src/test/org/jboss/blog/session/feed/posts/AggregatedFeedPostsTest.java 2008-04-30 12:50:33 UTC (rev 297)
@@ -8,6 +8,7 @@
import org.jboss.blog.model.feed.Feed;
import org.jboss.blog.model.Post;
import org.jboss.blog.model.RestrictedPost;
+import org.jboss.blog.model.security.RestrictedMode;
import org.jboss.blog.model.post.PostFilter;
import org.jboss.blog.service.FeedsService;
import org.jboss.blog.tools.TestTools;
@@ -102,7 +103,7 @@
// Test
replay(mockFeedsService);
- List<? extends RestrictedPost> posts = aggFeedPosts.getPosts(aggFeed1, 0, 2, false);
+ List<? extends RestrictedPost> posts = aggFeedPosts.getPosts(aggFeed1, 0, 2, RestrictedMode.IGNORE);
// Check
verify(mockFeedsService);
@@ -123,7 +124,7 @@
// Test
replay(mockFeedsService);
- List<? extends RestrictedPost> posts = aggFeedPosts.getPosts(aggFeed1, 0, 10, false);
+ List<? extends RestrictedPost> posts = aggFeedPosts.getPosts(aggFeed1, 0, 10, RestrictedMode.IGNORE);
// Check
verify(mockFeedsService);
@@ -147,7 +148,7 @@
// Test
replay(mockFeedsService);
- List<? extends RestrictedPost> posts = aggFeedPosts.getPosts(aggFeed2, 0, 2, false);
+ List<? extends RestrictedPost> posts = aggFeedPosts.getPosts(aggFeed2, 0, 2, RestrictedMode.IGNORE);
// Check
verify(mockFeedsService);
Modified: trunk/src/tools/org/jboss/blog/tools/StringTools.java
===================================================================
--- trunk/src/tools/org/jboss/blog/tools/StringTools.java 2008-04-29 11:27:13 UTC (rev 296)
+++ trunk/src/tools/org/jboss/blog/tools/StringTools.java 2008-04-30 12:50:33 UTC (rev 297)
@@ -6,7 +6,7 @@
import org.xml.sax.InputSource;
import org.xml.sax.ErrorHandler;
import org.xml.sax.SAXParseException;
-import org.apache.log4j.Logger;
+import org.jboss.seam.log.Logging;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
@@ -18,8 +18,6 @@
* @author Adam Warski (adam at warski dot org)
*/
public class StringTools {
- private final static Logger log = Logger.getLogger(StringTools.class);
-
public static boolean isEmpty(String s) {
return s == null || "".equals(s);
}
@@ -84,7 +82,7 @@
try {
builder = factory.newDocumentBuilder();
} catch (ParserConfigurationException e) {
- log.error(e);
+ Logging.getLog(StringTools.class).error(e);
return false;
}
@@ -100,7 +98,7 @@
} catch (SAXException e) {
return false;
} catch (IOException e) {
- log.error(e);
+ Logging.getLog(StringTools.class).error(e);
return false;
}
}
Modified: trunk/view/manage/feed_mod.xhtml
===================================================================
--- trunk/view/manage/feed_mod.xhtml 2008-04-29 11:27:13 UTC (rev 296)
+++ trunk/view/manage/feed_mod.xhtml 2008-04-30 12:50:33 UTC (rev 297)
@@ -146,9 +146,28 @@
This is a restricted feed, viewable only by authorized users:
</h:outputLabel>
<h:panelGroup rendered="#{advanced}">
- <h:selectBooleanCheckbox id="restricted" value="#{feedMod.feed.restricted}" />
+ <h:selectBooleanCheckbox id="restricted" value="#{feedMod.feed.restricted}">
+ <a:support event="onclick" reRender="restrictedKeyLabel,restrictedKeyForm" ajaxSingle="true" />
+ </h:selectBooleanCheckbox>
</h:panelGroup>
+<h:panelGroup rendered="#{advanced}" id="restrictedKeyLabel">
+ <s:div rendered="#{feedMod.feed.restricted}">
+ Key to view the atom feed:
+ </s:div>
+</h:panelGroup>
+<h:panelGroup rendered="#{advanced}" id="restrictedKeyForm">
+ <s:div rendered="#{feedMod.feed.restricted}">
+ <h:inputText id="restrictedKey" value="#{feedMod.feed.restrictedKey}" size="26" disabled="true" />
+
+ <div>
+ <a:commandLink value="Generate new key" action="#{feedMod.reGenerateFeedKey}" reRender="restrictedKey"
+ ajaxSingle="true" bypassUpdates="true"/>
+ <br />
+ </div>
+ </s:div>
+</h:panelGroup>
+
<!--<h:outputLabel><span class="required">*</span> Xml templates:</h:outputLabel>
<h:panelGroup>
<h:dataTable var="templateType" value="#{feedMod.templateTypes}">
More information about the jboss-cvs-commits
mailing list