[jboss-cvs] JBossBlog SVN: r303 - in trunk: resources/WEB-INF and 13 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed May 7 10:39:18 EDT 2008
Author: adamw
Date: 2008-05-07 10:39:17 -0400 (Wed, 07 May 2008)
New Revision: 303
Added:
trunk/src/action/org/jboss/blog/session/security/SecurityUserKeys.java
trunk/view/security/account.xhtml
Removed:
trunk/src/model/org/jboss/blog/model/security/RestrictedMode.java
Modified:
trunk/resources/META-INF/security.drl
trunk/resources/WEB-INF/pages.xml
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/IndividualPostsFeedDao.java
trunk/src/action/org/jboss/blog/session/feed/dao/RemoteFeedDao.java
trunk/src/action/org/jboss/blog/session/feed/posts/AggregatedFeedPosts.java
trunk/src/action/org/jboss/blog/session/security/Authenticator.java
trunk/src/action/org/jboss/blog/session/security/FeedsIdentity.java
trunk/src/action/org/jboss/blog/session/security/RestrictedKeyGenerator.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/velocity/VelocityXmlService.java
trunk/src/model/org/jboss/blog/model/security/SecurityUser.java
trunk/src/services/org/jboss/blog/service/FeedsService.java
trunk/src/shotoku/org/jboss/blog/session/feed/dao/ShotokuFeedDao.java
trunk/view/layout/template.xhtml
trunk/view/manage/feed_mod.xhtml
Log:
Modified: trunk/resources/META-INF/security.drl
===================================================================
--- trunk/resources/META-INF/security.drl 2008-05-07 11:41:36 UTC (rev 302)
+++ trunk/resources/META-INF/security.drl 2008-05-07 14:39:17 UTC (rev 303)
@@ -179,6 +179,14 @@
c.grant();
end;
+rule CanViewUserAccount
+when
+ c: PermissionCheck(name == "useraccount", action == "view") and
+ FeedsCombinedRole(role == FeedsSecurityRole.VIEW)
+then
+ c.grant();
+end;
+
rule CanAddAnyFeed
when
c: PermissionCheck(name == "feed", action == "add_any") and
Modified: trunk/resources/WEB-INF/pages.xml
===================================================================
--- trunk/resources/WEB-INF/pages.xml 2008-05-07 11:41:36 UTC (rev 302)
+++ trunk/resources/WEB-INF/pages.xml 2008-05-07 14:39:17 UTC (rev 303)
@@ -32,6 +32,8 @@
</navigation>
</page>
+ <page view-id="/security/account.xhtml" login-required="true" />
+
<!-- View feeds -->
<page view-id="/home.xhtml" />
Modified: trunk/src/action/org/jboss/blog/session/feed/FeedsServiceImpl.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/feed/FeedsServiceImpl.java 2008-05-07 11:41:36 UTC (rev 302)
+++ trunk/src/action/org/jboss/blog/session/feed/FeedsServiceImpl.java 2008-05-07 14:39:17 UTC (rev 303)
@@ -4,7 +4,6 @@
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;
@@ -78,31 +77,29 @@
}
public List<? extends RestrictedPost> getPosts(RestrictedFeed feed, int from, int to) {
- RestrictedMode restricted = RestrictedMode.IGNORE;
+ boolean restricted = false;
// 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,
- RestrictedMode.CHECK_AND_INCLUDE)) {
- restricted = RestrictedMode.CHECK_AND_INCLUDE;
+ if (identity.isLoggedIn() && feed.getRestricted() && FeedSecurityTools.canViewFeed(feed, true)) {
+ restricted = true;
}
return getPosts(feed, from, to, restricted);
}
- public List<? extends RestrictedPost> getPosts(RestrictedFeed feed, int from, int to, RestrictedMode restricted) {
+ 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 = RestrictedMode.IGNORE;
+ 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 == RestrictedMode.IGNORE && isFeedRestricted) ||
- (restricted != RestrictedMode.IGNORE && isFeedRestricted &&
+ 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>();
Modified: trunk/src/action/org/jboss/blog/session/feed/dao/AggregatedFeedDao.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/feed/dao/AggregatedFeedDao.java 2008-05-07 11:41:36 UTC (rev 302)
+++ trunk/src/action/org/jboss/blog/session/feed/dao/AggregatedFeedDao.java 2008-05-07 14:39:17 UTC (rev 303)
@@ -4,7 +4,6 @@
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;
@@ -24,7 +23,7 @@
this.aggregatedFeed = aggregatedFeed;
}
- public List<? extends RestrictedPost> getPosts(int from, int to, RestrictedMode restricted) {
+ public List<? extends RestrictedPost> getPosts(int from, int to, boolean 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-05-07 11:41:36 UTC (rev 302)
+++ trunk/src/action/org/jboss/blog/session/feed/dao/FeedDao.java 2008-05-07 14:39:17 UTC (rev 303)
@@ -2,7 +2,6 @@
import org.jboss.blog.model.RestrictedPost;
import org.jboss.blog.session.update.UpdateException;
-import org.jboss.blog.model.security.RestrictedMode;
import java.util.List;
@@ -10,7 +9,7 @@
* @author Adam Warski (adam at warski dot org)
*/
public interface FeedDao {
- public List<? extends RestrictedPost> getPosts(int from, int to, RestrictedMode restricted);
+ public List<? extends RestrictedPost> getPosts(int from, int to, boolean 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-05-07 11:41:36 UTC (rev 302)
+++ trunk/src/action/org/jboss/blog/session/feed/dao/HighlightsFeedDao.java 2008-05-07 14:39:17 UTC (rev 303)
@@ -6,7 +6,6 @@
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;
@@ -27,7 +26,7 @@
this.highlightsFeed = highlightsFeed;
}
- public List<? extends RestrictedPost> getPosts(int from, int to, RestrictedMode restricted) {
+ public List<? extends RestrictedPost> getPosts(int from, int to, boolean 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/IndividualPostsFeedDao.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/feed/dao/IndividualPostsFeedDao.java 2008-05-07 11:41:36 UTC (rev 302)
+++ trunk/src/action/org/jboss/blog/session/feed/dao/IndividualPostsFeedDao.java 2008-05-07 14:39:17 UTC (rev 303)
@@ -6,7 +6,6 @@
import org.jboss.blog.session.feed.type.FeedType;
import org.jboss.blog.session.feed.update.IndividualPostsFeedUpdate;
import org.jboss.blog.session.update.UpdateException;
-import org.jboss.blog.model.security.RestrictedMode;
import org.jboss.seam.Component;
import java.util.List;
@@ -26,7 +25,7 @@
this.individualPostsFeed = individualPostsFeed;
}
- public List<? extends RestrictedPost> getPosts(int from, int to, RestrictedMode restricted) {
+ public List<? extends RestrictedPost> getPosts(int from, int to, boolean restricted) {
return ((DatabaseFeedPosts) Component.getInstance("databaseFeedPosts")).getPosts(
individualPostsFeed, from, to);
}
Modified: trunk/src/action/org/jboss/blog/session/feed/dao/RemoteFeedDao.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/feed/dao/RemoteFeedDao.java 2008-05-07 11:41:36 UTC (rev 302)
+++ trunk/src/action/org/jboss/blog/session/feed/dao/RemoteFeedDao.java 2008-05-07 14:39:17 UTC (rev 303)
@@ -2,7 +2,6 @@
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;
@@ -26,7 +25,7 @@
this.remoteFeed = remoteFeed;
}
- public List<? extends RestrictedPost> getPosts(int from, int to, RestrictedMode restricted) {
+ public List<? extends RestrictedPost> getPosts(int from, int to, boolean restricted) {
return ((DatabaseFeedPosts) Component.getInstance("databaseFeedPosts")).getPosts(
remoteFeed, from, to);
}
Modified: trunk/src/action/org/jboss/blog/session/feed/posts/AggregatedFeedPosts.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/feed/posts/AggregatedFeedPosts.java 2008-05-07 11:41:36 UTC (rev 302)
+++ trunk/src/action/org/jboss/blog/session/feed/posts/AggregatedFeedPosts.java 2008-05-07 14:39:17 UTC (rev 303)
@@ -4,7 +4,6 @@
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;
@@ -34,7 +33,7 @@
@SuppressWarnings("unchecked")
public List<? extends RestrictedPost> getPosts(AggregatedFeed aggregatedFeed, int from, int to,
- RestrictedMode restricted) {
+ boolean restricted) {
if (aggregatedFeedStack.contains(aggregatedFeed)) {
return null;
}
@@ -51,7 +50,7 @@
feedsAndFilters.put(feedInGroup, groupFilter);
}
- if (restricted != RestrictedMode.IGNORE) {
+ if (restricted) {
for (Feed feedInGroup : groupsService.restrictedFeeds(group)) {
feedsAndFilters.put(feedInGroup, groupFilter);
}
Modified: trunk/src/action/org/jboss/blog/session/security/Authenticator.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/security/Authenticator.java 2008-05-07 11:41:36 UTC (rev 302)
+++ trunk/src/action/org/jboss/blog/session/security/Authenticator.java 2008-05-07 14:39:17 UTC (rev 303)
@@ -32,9 +32,11 @@
identity.removeAllFeedsRoles();
- addFeedRolesFromMappings(user.getMappings());
- for (SecurityGroup securityGroup : externalSecurityService.getGroupsOfUser(user)) {
- addFeedRolesFromMappings(securityGroup.getMappings());
+ if (user != null) {
+ addFeedRolesFromMappings(user.getMappings());
+ for (SecurityGroup securityGroup : externalSecurityService.getGroupsOfUser(user)) {
+ addFeedRolesFromMappings(securityGroup.getMappings());
+ }
}
}
Modified: trunk/src/action/org/jboss/blog/session/security/FeedsIdentity.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/security/FeedsIdentity.java 2008-05-07 11:41:36 UTC (rev 302)
+++ trunk/src/action/org/jboss/blog/session/security/FeedsIdentity.java 2008-05-07 14:39:17 UTC (rev 303)
@@ -23,6 +23,10 @@
@Startup
@AutoCreate
public class FeedsIdentity extends RuleBasedIdentity {
+ public FeedsIdentity() {
+ System.out.println("NEW FEEDS IDENTITY");
+ }
+
private SecurityUser securityUser;
private boolean pretendedLogin;
@@ -127,4 +131,9 @@
addFeedsRole(FeedsSecurityRole.ADMIN);
}
+
+ public void loginAs(SecurityUser su) {
+ setSecurityUser(su);
+ pretendedLogin = true;
+ }
}
Modified: trunk/src/action/org/jboss/blog/session/security/RestrictedKeyGenerator.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/security/RestrictedKeyGenerator.java 2008-05-07 11:41:36 UTC (rev 302)
+++ trunk/src/action/org/jboss/blog/session/security/RestrictedKeyGenerator.java 2008-05-07 14:39:17 UTC (rev 303)
@@ -25,7 +25,7 @@
return false;
}
- List results = entityManager.createQuery("select f from Feed f where f.restrictedKey = ?1")
+ List results = entityManager.createQuery("select su from SecurityUser su where su.restrictedKey = ?1")
.setParameter(1, key).getResultList();
if (results.size() == 0) {
Added: trunk/src/action/org/jboss/blog/session/security/SecurityUserKeys.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/security/SecurityUserKeys.java (rev 0)
+++ trunk/src/action/org/jboss/blog/session/security/SecurityUserKeys.java 2008-05-07 14:39:17 UTC (rev 303)
@@ -0,0 +1,62 @@
+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 org.jboss.blog.tools.StringTools;
+import org.jboss.blog.model.security.SecurityUser;
+
+import javax.persistence.EntityManager;
+import javax.persistence.NoResultException;
+
+/**
+ * @author Adam Warski (adam at warski dot org)
+ */
+ at Name("securityUserKeys")
+ at Scope(ScopeType.STATELESS)
+ at AutoCreate
+public class SecurityUserKeys {
+ @In
+ private FeedsIdentity identity;
+
+ @In
+ private RestrictedKeyGenerator restrictedKeyGenerator;
+
+ @In
+ private EntityManager entityManager;
+
+ public void generateKeyForCurrentUser() {
+ SecurityUser su = identity.getSecurityUser();
+ su = entityManager.merge(su);
+
+ su.setRestrictedKey(restrictedKeyGenerator.generate());
+ identity.setSecurityUser(su);
+
+ entityManager.flush();
+ }
+
+ public String getKeyOfCurrentUser() {
+ if (identity.getSecurityUser() == null) {
+ return null;
+ }
+
+ if (StringTools.isEmpty(identity.getSecurityUser().getRestrictedKey())) {
+ generateKeyForCurrentUser();
+ }
+
+ return identity.getSecurityUser().getRestrictedKey();
+ }
+
+ public SecurityUser seachForSecurityUserByKey(String key) {
+ try {
+ return (SecurityUser) entityManager
+ .createQuery("select su from SecurityUser su where su.restrictedKey = ?1")
+ .setParameter(1, key)
+ .getSingleResult();
+ } catch (NoResultException e) {
+ return null;
+ }
+ }
+}
Modified: trunk/src/action/org/jboss/blog/session/security/tools/FeedSecurityTools.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/security/tools/FeedSecurityTools.java 2008-05-07 11:41:36 UTC (rev 302)
+++ trunk/src/action/org/jboss/blog/session/security/tools/FeedSecurityTools.java 2008-05-07 14:39:17 UTC (rev 303)
@@ -1,7 +1,6 @@
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;
@@ -9,19 +8,15 @@
* @author Adam Warski (adam at warski dot org)
*/
public class FeedSecurityTools {
- public static boolean canViewFeed(RestrictedFeed feed, RestrictedMode restricted) {
+ public static boolean canViewFeed(RestrictedFeed feed, boolean restricted) {
if (!feed.getRestricted()) {
return true;
}
- if (restricted == RestrictedMode.IGNORE) {
+ if (!restricted) {
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-05-07 11:41:36 UTC (rev 302)
+++ trunk/src/action/org/jboss/blog/session/view/LinkServiceImpl.java 2008-05-07 14:39:17 UTC (rev 303)
@@ -4,9 +4,11 @@
import org.jboss.blog.model.Post;
import org.jboss.blog.model.XmlType;
import org.jboss.blog.service.LinkService;
+import org.jboss.blog.session.security.SecurityUserKeys;
import org.jboss.seam.annotations.AutoCreate;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;
+import org.jboss.seam.annotations.In;
import org.jboss.seam.ScopeType;
/**
@@ -16,6 +18,9 @@
@Scope(ScopeType.STATELESS)
@Name("linkService")
public class LinkServiceImpl implements LinkService {
+ @In
+ private SecurityUserKeys securityUserKeys;
+
private String serverAddress;
private String contextName;
@@ -40,8 +45,7 @@
+ "?type=" + type.toString().toLowerCase();
if (feed.getRestricted()) {
- // TODO
- return "";
+ return base + "&key=" + securityUserKeys.getKeyOfCurrentUser();
} else {
return base;
}
Modified: trunk/src/action/org/jboss/blog/session/xml/velocity/VelocityXmlService.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/xml/velocity/VelocityXmlService.java 2008-05-07 11:41:36 UTC (rev 302)
+++ trunk/src/action/org/jboss/blog/session/xml/velocity/VelocityXmlService.java 2008-05-07 14:39:17 UTC (rev 303)
@@ -16,7 +16,10 @@
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.session.security.SecurityUserKeys;
+import org.jboss.blog.session.security.FeedsIdentity;
+import org.jboss.blog.session.security.Authenticator;
+import org.jboss.blog.model.security.SecurityUser;
import org.jboss.blog.tools.GeneralTools;
import org.jboss.seam.annotations.*;
import org.jboss.seam.log.Log;
@@ -46,6 +49,15 @@
@In
private PostToToolsBean postToTools;
+ @In
+ private SecurityUserKeys securityUserKeys;
+
+ @In
+ private Authenticator authenticator;
+
+ @In
+ private FeedsIdentity identity;
+
@Logger
private Log log;
@@ -88,14 +100,23 @@
Feed feed = feedsService.getFeed(feedName);
boolean isRestricted = feed.getRestricted();
- // TODO: key
+ if (isRestricted) {
+ SecurityUser su = securityUserKeys.seachForSecurityUserByKey(feedKey);
+ if (su == null) {
+ throw new FeedNotFoundException();
+ } else {
+ // "Loggging in" the found user
+ identity.loginAs(su);
+ authenticator.flushRoles();
+ }
+ }
+
if (feed.getTemplates().get(xmlType) == null) {
throw new InvalidTemplateTypeException();
}
- List<? extends RestrictedPost> posts = feedsService.getPosts(feed, 0, feed.getMaxPostsInFeed(),
- RestrictedMode.INCLUDE);
+ List<? extends RestrictedPost> posts = feedsService.getPosts(feed, 0, feed.getMaxPostsInFeed(), true);
inCache.setContentType(xmlType.contentType());
inCache.setCharacterEncoding("utf-8");
Deleted: trunk/src/model/org/jboss/blog/model/security/RestrictedMode.java
===================================================================
--- trunk/src/model/org/jboss/blog/model/security/RestrictedMode.java 2008-05-07 11:41:36 UTC (rev 302)
+++ trunk/src/model/org/jboss/blog/model/security/RestrictedMode.java 2008-05-07 14:39:17 UTC (rev 303)
@@ -1,10 +0,0 @@
-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/model/org/jboss/blog/model/security/SecurityUser.java
===================================================================
--- trunk/src/model/org/jboss/blog/model/security/SecurityUser.java 2008-05-07 11:41:36 UTC (rev 302)
+++ trunk/src/model/org/jboss/blog/model/security/SecurityUser.java 2008-05-07 14:39:17 UTC (rev 303)
@@ -15,10 +15,11 @@
@Column(updatable = false)
private Integer id;
- @Column
@NotNull
private String externalId;
+ private String restrictedKey;
+
@ManyToMany(mappedBy = "users")
private List<SecurityMapping> mappings;
@@ -64,6 +65,14 @@
this.mappings = mappings;
}
+ 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 SecurityUser)) return false;
Modified: trunk/src/services/org/jboss/blog/service/FeedsService.java
===================================================================
--- trunk/src/services/org/jboss/blog/service/FeedsService.java 2008-05-07 11:41:36 UTC (rev 302)
+++ trunk/src/services/org/jboss/blog/service/FeedsService.java 2008-05-07 14:39:17 UTC (rev 303)
@@ -4,7 +4,6 @@
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;
@@ -23,10 +22,10 @@
* @param feed Feed of which posts to get.
* @param from Starting post.
* @param to Ending post.
- * @param restricted How restricted posts should be handled.
+ * @param restricted Should restricted posts be included.
* @return A list of posts of the given feed, of length max. to-from.
*/
- List<? extends RestrictedPost> getPosts(RestrictedFeed feed, int from, int to, RestrictedMode restricted);
+ List<? extends RestrictedPost> getPosts(RestrictedFeed feed, int from, int to, boolean 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-05-07 11:41:36 UTC (rev 302)
+++ trunk/src/shotoku/org/jboss/blog/session/feed/dao/ShotokuFeedDao.java 2008-05-07 14:39:17 UTC (rev 303)
@@ -1,7 +1,6 @@
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;
@@ -26,7 +25,7 @@
this.shotokuFeed = shotokuFeed;
}
- public List<? extends RestrictedPost> getPosts(int from, int to, RestrictedMode restricted) {
+ public List<? extends RestrictedPost> getPosts(int from, int to, boolean restricted) {
return ((DatabaseFeedPosts) Component.getInstance("databaseFeedPosts")).getPosts(
shotokuFeed, from, to);
}
Modified: trunk/view/layout/template.xhtml
===================================================================
--- trunk/view/layout/template.xhtml 2008-05-07 11:41:36 UTC (rev 302)
+++ trunk/view/layout/template.xhtml 2008-05-07 14:39:17 UTC (rev 303)
@@ -5,7 +5,8 @@
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:s="http://jboss.com/products/seam/taglib"
- xmlns:a="http://richfaces.org/a4j">
+ xmlns:mamut="http://mamut.net.pl/jsf"
+ xmlns:a="http://richfaces.org/a4j">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>JBoss.ORG Feeds</title>
@@ -22,12 +23,22 @@
<div id="contentcontainer">
<div id="ORGContent">
<div id='orgprojectdetailstriple'>
- <s:fragment rendered="#{identity.hasPermission('management', 'view')}">
- <div class="adminlinks">
- <s:link view="/home.xhtml" value="Feeds home" propagation="none" />   
- <s:link view="/manage/index.xhtml" value="Manage home" propagation="none" />
- </div>
- </s:fragment>
+ <mamut:let var="canViewManagement" value="#{identity.hasPermission('management', 'view')}">
+ <s:fragment rendered="#{canViewManagement}">
+ <div class="adminlinks">
+ <s:fragment rendered="#{identity.hasPermission('useraccount', 'view')}">
+ <s:link view="/security/account.xhtml" value="User account" propagation="none" />   
+ </s:fragment>
+ <s:link view="/home.xhtml" value="Feeds home" propagation="none" />   
+ <s:link view="/manage/index.xhtml" value="Manage home" propagation="none" />
+ </div>
+ </s:fragment>
+ <s:fragment rendered="#{identity.hasPermission('useraccount', 'view') and !canViewManagement}">
+ <div class="adminlinks">
+ <s:link view="/security/account.xhtml" value="User account" propagation="none" />
+ </div>
+ </s:fragment>
+ </mamut:let>
<h3 id="majorsectiontitle" style="margin-bottom: 0"><ui:insert name="header"/></h3>
</div>
Modified: trunk/view/manage/feed_mod.xhtml
===================================================================
--- trunk/view/manage/feed_mod.xhtml 2008-05-07 11:41:36 UTC (rev 302)
+++ trunk/view/manage/feed_mod.xhtml 2008-05-07 14:39:17 UTC (rev 303)
@@ -146,24 +146,9 @@
This is a restricted feed, viewable only by authorized users:
</h:outputLabel>
<h:panelGroup rendered="#{advanced}">
- <h:selectBooleanCheckbox id="restricted" value="#{feedMod.feed.restricted}">
- <a:support event="onclick" reRender="restrictedKeyLabel,restrictedKeyForm" ajaxSingle="true" />
- </h:selectBooleanCheckbox>
+ <h:selectBooleanCheckbox id="restricted" value="#{feedMod.feed.restricted}" />
</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}">
- #{feedMod.feed.restrictedKey} 
- <a:commandLink value="Generate new key" action="#{feedMod.reGenerateFeedKey}" reRender="restrictedKeyForm"
- ajaxSingle="true" bypassUpdates="true"/>
- </s:div>
-</h:panelGroup>
-
<!--<h:outputLabel><span class="required">*</span> Xml templates:</h:outputLabel>
<h:panelGroup>
<h:dataTable var="templateType" value="#{feedMod.templateTypes}">
Added: trunk/view/security/account.xhtml
===================================================================
--- trunk/view/security/account.xhtml (rev 0)
+++ trunk/view/security/account.xhtml 2008-05-07 14:39:17 UTC (rev 303)
@@ -0,0 +1,44 @@
+<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<ui:composition xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:s="http://jboss.com/products/seam/taglib"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:rich="http://richfaces.org/rich"
+ template="../layout/template.xhtml">
+ <ui:define name="header">
+ Account for user #{identity.username}
+ </ui:define>
+
+ <ui:define name="body">
+ <div class="TwoColumnBlogSubnav">
+ <h4>Tips</h4>
+ <ul>
+ <li class="last">
+ The security key is used to view restricted feeds, without the need to log in.
+ Don't distribute it, or addresses to restricted feeds viewed using this key!
+ </li>
+ </ul>
+ </div>
+
+ <div class="adminforms">
+ <h:form>
+ <h:panelGrid columns="2">
+ <h:outputLabel for="username">Security key:</h:outputLabel>
+ <h:inputText id="username" value="#{identity.securityUser.restrictedKey}" disabled="true" />
+ </h:panelGrid>
+
+ <div class="formbuttons">
+ <ul>
+ <li>
+ <h:commandButton value="Re-generate the security key"
+ action="#{securityUserKeys.generateKeyForCurrentUser()}"
+ styleClass="submit" />
+ </li>
+ </ul>
+ </div>
+ </h:form>
+ </div>
+ </ui:define>
+</ui:composition>
More information about the jboss-cvs-commits
mailing list