[jboss-cvs] JBossBlog SVN: r294 - in trunk: lib and 7 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Mon Apr 28 08:59:58 EDT 2008
Author: adamw
Date: 2008-04-28 08:59:58 -0400 (Mon, 28 Apr 2008)
New Revision: 294
Added:
trunk/lib/let-tag.jar
Modified:
trunk/blog.iml
trunk/build.xml
trunk/src/action/org/jboss/blog/session/feed/FeedsServiceImpl.java
trunk/src/action/org/jboss/blog/session/feed/posts/AggregatedFeedPosts.java
trunk/src/action/org/jboss/blog/session/security/FeedsIdentity.java
trunk/src/action/org/jboss/blog/session/update/UpdateHandler.java
trunk/src/services/org/jboss/blog/service/GroupsService.java
trunk/view/home.xhtml
trunk/view/manage/index.xhtml
Log:
Modified: trunk/blog.iml
===================================================================
--- trunk/blog.iml 2008-04-26 10:11:18 UTC (rev 293)
+++ trunk/blog.iml 2008-04-28 12:59:58 UTC (rev 294)
@@ -531,6 +531,15 @@
<SOURCES />
</library>
</orderEntry>
+ <orderEntry type="module-library">
+ <library>
+ <CLASSES>
+ <root url="jar://$MODULE_DIR$/lib/let-tag.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES />
+ </library>
+ </orderEntry>
<orderEntryProperties />
</component>
</module>
Modified: trunk/build.xml
===================================================================
--- trunk/build.xml 2008-04-26 10:11:18 UTC (rev 293)
+++ trunk/build.xml 2008-04-28 12:59:58 UTC (rev 294)
@@ -270,6 +270,8 @@
<include name="lib/urlrewritefilter.jar" />
<include name="lib/jboss-seam-*.jar" />
<exclude name="lib/jboss-seam-gen.jar" />
+
+ <include name="lib/let-tag.jar" />
</fileset>
</copy>
<copy todir="${ear.dir}/META-INF">
Added: trunk/lib/let-tag.jar
===================================================================
(Binary files differ)
Property changes on: trunk/lib/let-tag.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: trunk/src/action/org/jboss/blog/session/feed/FeedsServiceImpl.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/feed/FeedsServiceImpl.java 2008-04-26 10:11:18 UTC (rev 293)
+++ trunk/src/action/org/jboss/blog/session/feed/FeedsServiceImpl.java 2008-04-28 12:59:58 UTC (rev 294)
@@ -91,11 +91,17 @@
public List<? extends RestrictedPost> getPosts(RestrictedFeed feed, int from, int to, boolean 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;
+ }
+
// 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))) {
+ log.debug("Reading restricted feed '#0', returning an empty list.", feed.getName());
return new ArrayList<RestrictedPost>();
}
@@ -111,7 +117,8 @@
List<? extends RestrictedPost> posts;
try {
- log.debug("Reading feed '#0' posts from the DB, from #1 to #2.", feed.getName(), from, to);
+ log.debug("Reading feed '#0' posts from the DB, from #1 to #2, restricted = #3.", feed.getName(), from, to,
+ restricted);
posts = feedTypes.getFeedDao(feed).getPosts(from, to, restricted);
} catch (InvalidFeedTypeException e) {
log.error(e);
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-26 10:11:18 UTC (rev 293)
+++ trunk/src/action/org/jboss/blog/session/feed/posts/AggregatedFeedPosts.java 2008-04-28 12:59:58 UTC (rev 294)
@@ -4,13 +4,11 @@
import org.jboss.blog.model.feed.Feed;
import org.jboss.blog.model.RestrictedPost;
import org.jboss.blog.model.Group;
-import org.jboss.blog.model.Post;
import org.jboss.blog.service.FeedsService;
import org.jboss.blog.service.GroupsService;
import org.jboss.blog.tools.GeneralTools;
import org.jboss.blog.tools.PostFilterTools;
import org.jboss.blog.model.post.PostFilter;
-import org.jboss.blog.session.security.tools.FeedSecurityTools;
import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Name;
@@ -41,7 +39,7 @@
}
// Adding this feed to the stack, so it's posts won't be read again.
- aggregatedFeedStack.push(aggregatedFeed);
+ aggregatedFeedStack.push(aggregatedFeed);
Map<Feed, PostFilter> feedsAndFilters = new HashMap<Feed, PostFilter>(aggregatedFeed.getFeeds());
@@ -51,9 +49,15 @@
for (Feed feedInGroup : groupsService.acceptedFeeds(group)) {
feedsAndFilters.put(feedInGroup, groupFilter);
}
+
+ if (restricted) {
+ for (Feed feedInGroup : groupsService.restrictedFeeds(group)) {
+ feedsAndFilters.put(feedInGroup, groupFilter);
+ }
+ }
}
- PostFilter globalFilter = aggregatedFeed.getGlobalFilter();
+ PostFilter globalFilter = aggregatedFeed.getGlobalFilter();
// Initial list of aggregated feeds.
Set<Feed> availableFeeds = feedsAndFilters.keySet();
Modified: trunk/src/action/org/jboss/blog/session/security/FeedsIdentity.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/security/FeedsIdentity.java 2008-04-26 10:11:18 UTC (rev 293)
+++ trunk/src/action/org/jboss/blog/session/security/FeedsIdentity.java 2008-04-28 12:59:58 UTC (rev 294)
@@ -26,6 +26,7 @@
@Startup
public class FeedsIdentity extends RuleBasedIdentity {
private SecurityUser securityUser;
+ private boolean pretendedLogin;
public SecurityUser getSecurityUser() {
return securityUser;
@@ -112,4 +113,20 @@
return super.hasPermission(s, s1, newObjects);
}
+
+ public boolean isLoggedIn() {
+ if (pretendedLogin) {
+ return true;
+ } else {
+ return super.isLoggedIn();
+ }
+ }
+
+ public void loginAsAdmin() {
+ preAuthenticate();
+ pretendedLogin = true;
+ postAuthenticate();
+
+ addFeedsRole(FeedsSecurityRole.ADMIN);
+ }
}
Modified: trunk/src/action/org/jboss/blog/session/update/UpdateHandler.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/update/UpdateHandler.java 2008-04-26 10:11:18 UTC (rev 293)
+++ trunk/src/action/org/jboss/blog/session/update/UpdateHandler.java 2008-04-28 12:59:58 UTC (rev 294)
@@ -5,6 +5,7 @@
import org.jboss.blog.model.Group;
import org.jboss.blog.service.GroupsService;
import org.jboss.blog.session.feed.type.FeedTypes;
+import org.jboss.blog.session.security.FeedsIdentity;
import org.jboss.seam.annotations.AutoCreate;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Name;
@@ -29,20 +30,30 @@
@In
private UpdateManager updateManager;
+ @In(create = true)
+ private FeedsIdentity identity;
+
public void update() {
+ identity.loginAsAdmin();
for (Group group : groupsService.getAllGroups()) {
for (Feed feed : groupsService.acceptedFeeds(group)) {
update(feed);
}
+
+ for (Feed feed : groupsService.restrictedFeeds(group)) {
+ update(feed);
+ }
}
}
public void update(RestrictedFeed feed) {
+ identity.loginAsAdmin();
try {
feedTypes.getFeedDao(feed).update();
} catch (UpdateException e) {
updateManager.addFeedUpdateException(feed.getName(), e);
} catch (Exception e) {
+ //noinspection ThrowableInstanceNeverThrown
updateManager.addFeedUpdateException(feed.getName(), new UpdateException(e));
}
}
Modified: trunk/src/services/org/jboss/blog/service/GroupsService.java
===================================================================
--- trunk/src/services/org/jboss/blog/service/GroupsService.java 2008-04-26 10:11:18 UTC (rev 293)
+++ trunk/src/services/org/jboss/blog/service/GroupsService.java 2008-04-28 12:59:58 UTC (rev 294)
@@ -14,4 +14,6 @@
List<Feed> acceptedFeeds(Group group);
List<Feed> unacceptedFeeds(Group group);
+
+ List<Feed> restrictedFeeds(Group group);
}
Modified: trunk/view/home.xhtml
===================================================================
--- trunk/view/home.xhtml 2008-04-26 10:11:18 UTC (rev 293)
+++ trunk/view/home.xhtml 2008-04-28 12:59:58 UTC (rev 294)
@@ -6,6 +6,7 @@
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:rich="http://richfaces.org/rich"
+ xmlns:mamut="http://mamut.net.pl/jsf"
template="layout/template.xhtml">
<ui:define name="header">
JBoss.ORG Feeds home
@@ -35,35 +36,15 @@
<div id="columnleftBLOG">
<ui:repeat var="group" value="#{groupsService.allGroups}">
- <s:fragment rendered="#{groupsService.acceptedFeeds(group).size() > 0}">
- <h4>#{group.displayName}</h4>
- <table cellspacing="5" class="laundrytable" width="75%">
- <tr>
- <th width="200px">Feed Author</th>
- <th width="480px">Feed Title</th>
- </tr>
- <ui:repeat var="feed" value="#{groupsService.acceptedFeeds(group)}">
- <tr>
- <td>#{feed.author}</td>
- <td>
- <s:link view="/view/feed.xhtml" value="#{feed.title}" propagation="none">
- <f:param name="name" value="#{feed.name}"/>
- </s:link>
- </td>
- </tr>
- </ui:repeat>
- </table>
- </s:fragment>
-
- <s:fragment rendered="#{identity.loggedIn}">
- <s:fragment rendered="#{feedsSecurity.filterViewableFeeds(groupsService.restrictedFeeds(group)).size() > 0}">
- <h4>#{group.displayName} (restricted)</h4>
+ <mamut:let var="acceptedFeeds" value="#{groupsService.acceptedFeeds(group)}">
+ <s:fragment rendered="#{acceptedFeeds.size() > 0}">
+ <h4>#{group.displayName}</h4>
<table cellspacing="5" class="laundrytable" width="75%">
<tr>
<th width="200px">Feed Author</th>
<th width="480px">Feed Title</th>
</tr>
- <ui:repeat var="feed" value="#{feedsSecurity.filterViewableFeeds(groupsService.restrictedFeeds(group))}">
+ <ui:repeat var="feed" value="#{acceptedFeeds}">
<tr>
<td>#{feed.author}</td>
<td>
@@ -75,6 +56,31 @@
</ui:repeat>
</table>
</s:fragment>
+ </mamut:let>
+
+ <s:fragment rendered="#{identity.loggedIn}">
+ <mamut:let var="restrictedFeeds"
+ value="#{feedsSecurity.filterViewableFeeds(groupsService.restrictedFeeds(group))}">
+ <s:fragment rendered="#{restrictedFeeds.size() > 0}">
+ <h4>#{group.displayName} (restricted)</h4>
+ <table cellspacing="5" class="laundrytable" width="75%">
+ <tr>
+ <th width="200px">Feed Author</th>
+ <th width="480px">Feed Title</th>
+ </tr>
+ <ui:repeat var="feed" value="#{restrictedFeeds}">
+ <tr>
+ <td>#{feed.author}</td>
+ <td>
+ <s:link view="/view/feed.xhtml" value="#{feed.title}" propagation="none">
+ <f:param name="name" value="#{feed.name}"/>
+ </s:link>
+ </td>
+ </tr>
+ </ui:repeat>
+ </table>
+ </s:fragment>
+ </mamut:let>
</s:fragment>
</ui:repeat>
</div>
Modified: trunk/view/manage/index.xhtml
===================================================================
--- trunk/view/manage/index.xhtml 2008-04-26 10:11:18 UTC (rev 293)
+++ trunk/view/manage/index.xhtml 2008-04-28 12:59:58 UTC (rev 294)
@@ -7,6 +7,7 @@
xmlns:h="http://java.sun.com/jsf/html"
xmlns:rich="http://richfaces.org/rich"
xmlns:a="http://richfaces.org/a4j"
+ xmlns:mamut="http://mamut.net.pl/jsf"
template="../layout/template.xhtml">
<ui:define name="header">
Manage feeds
@@ -86,73 +87,83 @@
</tr>
<ui:repeat var="group" value="#{groupsService.allGroups}">
- <s:fragment rendered="#{groupsService.acceptedFeeds(group).size() > 0 and
- identity.hasPermission('management_group', 'view', group, groupsService.acceptedFeeds(group))}">
- <tr>
- <td colspan="7" class="categoryRow">#{group.displayName}</td>
- </tr>
+ <mamut:let var="acceptedFeeds" value="#{groupsService.acceptedFeeds(group)}">
+ <s:fragment rendered="#{acceptedFeeds.size() > 0 and
+ identity.hasPermission('management_group', 'view', group, acceptedFeeds)}">
+ <tr>
+ <td colspan="7" class="categoryRow">#{group.displayName}</td>
+ </tr>
- <a:repeat var="feed" value="#{groupsService.acceptedFeeds(group)}" rowKeyVar="rowNumber">
- <s:fragment rendered="#{identity.hasPermission('feed', 'edit', feed, group) ||
+ <a:repeat var="feed" value="#{acceptedFeeds}" rowKeyVar="rowNumber">
+ <s:fragment rendered="#{identity.hasPermission('feed', 'edit', feed, group) ||
identity.hasPermission('feed', 'delete', feed, group)}">
- <tr class="#{(rowNumber%2 == 0) ? 'evenRow' : 'oddRow'}">
- <td class="rowlinefirst" style="font-weight:bold;">#{feed.title}</td>
- <td class="rowline">#{feed.name}</td>
- <td class="rowline">#{feedTypes.getFeedType(feed).name()}</td>
- <td class="rowline">
- <s:link view="/manage/feed_edit.xhtml" value="Edit common"
- rendered="#{identity.hasPermission('feed', 'edit', feed, group)}">
- <f:param name="name" value="#{feed.name}" />
- </s:link>
- </td>
- <td class="rowline">
- <s:link view="#{feedTypes.getFeedType(feed).editPage()}" value="Edit specific"
- rendered="#{identity.hasPermission('feed', 'edit', feed, group)}">
- <f:param name="name" value="#{feed.name}" />
- </s:link>
- </td>
- <td class="rowline">
- <s:link view="/manage/feed_delete.xhtml" action="#{feedMod.delete}" value="Delete"
- onclick="if (!confirm('Are you sure you want to delete this feed?')) return false"
- rendered="#{identity.hasPermission('feed', 'delete', feed, group)}">
- <f:param name="name" value="#{feed.name}" />
- </s:link>
- </td>
- </tr>
- </s:fragment>
- </a:repeat>
+ <tr class="#{(rowNumber%2 == 0) ? 'evenRow' : 'oddRow'}">
+ <td class="rowlinefirst" style="font-weight:bold;">#{feed.title}</td>
+ <td class="rowline">#{feed.name}</td>
+ <td class="rowline">#{feedTypes.getFeedType(feed).name()}</td>
+ <td class="rowline">
+ <s:link view="/manage/feed_edit.xhtml" value="Edit common"
+ rendered="#{identity.hasPermission('feed', 'edit', feed, group)}">
+ <f:param name="name" value="#{feed.name}" />
+ </s:link>
+ </td>
+ <td class="rowline">
+ <s:link view="#{feedTypes.getFeedType(feed).editPage()}" value="Edit specific"
+ rendered="#{identity.hasPermission('feed', 'edit', feed, group)}">
+ <f:param name="name" value="#{feed.name}" />
+ </s:link>
+ </td>
+ <td class="rowline">
+ <s:link view="/manage/feed_delete.xhtml" action="#{feedMod.delete}" value="Delete"
+ onclick="if (!confirm('Are you sure you want to delete this feed?')) return false"
+ rendered="#{identity.hasPermission('feed', 'delete', feed, group)}">
+ <f:param name="name" value="#{feed.name}" />
+ </s:link>
+ </td>
+ </tr>
+ </s:fragment>
+ </a:repeat>
+ </s:fragment>
+ </mamut:let>
+ <mamut:let var="restrictedFeeds" value="#{feedsSecurity.filterViewableFeeds(groupsService.restrictedFeeds(group))}">
+ <s:fragment rendered="#{restrictedFeeds.size() > 0 and
+ identity.hasPermission('management_group', 'view', group, restrictedFeeds)}">
+ <tr>
+ <td colspan="7" class="categoryRow">#{group.displayName} (restricted)</td>
+ </tr>
- <a:repeat var="feed" value="#{groupsService.restrictedFeeds(group)}">
- <s:fragment rendered="#{(identity.hasPermission('feed', 'edit', feed, group) ||
+ <a:repeat var="feed" value="#{restrictedFeeds}">
+ <s:fragment rendered="#{(identity.hasPermission('feed', 'edit', feed, group) ||
identity.hasPermission('feed', 'delete', feed, group)) and
identity.hasPermission('feed', 'view', feed)}">
- <tr class="evenRow">
- <td class="rowlinefirst" style="font-weight:bold;">#{feed.title} (restricted)</td>
- <td class="rowline">#{feed.name}</td>
- <td class="rowline">#{feedTypes.getFeedType(feed).name()}</td>
- <td class="rowline">
- <s:link view="/manage/feed_edit.xhtml" value="Edit common"
- rendered="#{identity.hasPermission('feed', 'edit', feed, group)}">
- <f:param name="name" value="#{feed.name}" />
- </s:link>
- </td>
- <td class="rowline">
- <s:link view="#{feedTypes.getFeedType(feed).editPage()}" value="Edit specific"
- rendered="#{identity.hasPermission('feed', 'edit', feed, group)}">
- <f:param name="name" value="#{feed.name}" />
- </s:link>
- </td>
- <td class="rowline">
- <s:link view="/manage/feed_delete.xhtml" action="#{feedMod.delete}" value="Delete"
- onclick="if (!confirm('Are you sure you want to delete this feed?')) return false"
- rendered="#{identity.hasPermission('feed', 'delete', feed, group)}">
- <f:param name="name" value="#{feed.name}" />
- </s:link>
- </td>
- </tr>
- </s:fragment>
- </a:repeat>
- </s:fragment>
+ <tr class="evenRow">
+ <td class="rowlinefirst" style="font-weight:bold;">#{feed.title} (restricted)</td>
+ <td class="rowline">#{feed.name}</td>
+ <td class="rowline">#{feedTypes.getFeedType(feed).name()}</td>
+ <td class="rowline">
+ <s:link view="/manage/feed_edit.xhtml" value="Edit common"
+ rendered="#{identity.hasPermission('feed', 'edit', feed, group)}">
+ <f:param name="name" value="#{feed.name}" />
+ </s:link>
+ </td>
+ <td class="rowline">
+ <s:link view="#{feedTypes.getFeedType(feed).editPage()}" value="Edit specific"
+ rendered="#{identity.hasPermission('feed', 'edit', feed, group)}">
+ <f:param name="name" value="#{feed.name}" />
+ </s:link>
+ </td>
+ <td class="rowline">
+ <s:link view="/manage/feed_delete.xhtml" action="#{feedMod.delete}" value="Delete"
+ onclick="if (!confirm('Are you sure you want to delete this feed?')) return false"
+ rendered="#{identity.hasPermission('feed', 'delete', feed, group)}">
+ <f:param name="name" value="#{feed.name}" />
+ </s:link>
+ </td>
+ </tr>
+ </s:fragment>
+ </a:repeat>
+ </s:fragment>
+ </mamut:let>
</ui:repeat>
</table>
</ui:define>
More information about the jboss-cvs-commits
mailing list