[seam-commits] Seam SVN: r8110 - in trunk/examples/seamspace: resources/WEB-INF and 2 other directories.
seam-commits at lists.jboss.org
seam-commits at lists.jboss.org
Sun May 4 03:33:26 EDT 2008
Author: shane.bryzak at jboss.com
Date: 2008-05-04 03:33:26 -0400 (Sun, 04 May 2008)
New Revision: 8110
Added:
trunk/examples/seamspace/src/org/jboss/seam/example/seamspace/AccountPermission.java
trunk/examples/seamspace/view/permissionmanager.xhtml
Modified:
trunk/examples/seamspace/resources/META-INF/security-rules.drl
trunk/examples/seamspace/resources/WEB-INF/components.xml
trunk/examples/seamspace/resources/WEB-INF/pages.xml
trunk/examples/seamspace/src/org/jboss/seam/example/seamspace/MemberImage.java
trunk/examples/seamspace/src/org/jboss/seam/example/seamspace/PictureSearch.java
trunk/examples/seamspace/view/pictures.xhtml
Log:
more permission management stuff
Modified: trunk/examples/seamspace/resources/META-INF/security-rules.drl
===================================================================
--- trunk/examples/seamspace/resources/META-INF/security-rules.drl 2008-05-04 07:33:03 UTC (rev 8109)
+++ trunk/examples/seamspace/resources/META-INF/security-rules.drl 2008-05-04 07:33:26 UTC (rev 8110)
@@ -116,6 +116,17 @@
check.grant();
end
+rule ManageImagePermissions
+ no-loop
+ activation-group "permissions"
+when
+ img: MemberImage()
+ check: PermissionCheck(target == img, action == "seam.read-permissions", granted == false)
+ Role(name == "admin")
+then
+ check.grant();
+end
+
rule InsertMemberBlog
no-loop
activation-group "permissions"
Modified: trunk/examples/seamspace/resources/WEB-INF/components.xml
===================================================================
--- trunk/examples/seamspace/resources/WEB-INF/components.xml 2008-05-04 07:33:03 UTC (rev 8109)
+++ trunk/examples/seamspace/resources/WEB-INF/components.xml 2008-05-04 07:33:26 UTC (rev 8110)
@@ -4,6 +4,7 @@
xmlns:persistence="http://jboss.com/products/seam/persistence"
xmlns:security="http://jboss.com/products/seam/security"
xmlns:identity-management="http://jboss.com/products/seam/security/management"
+ xmlns:permission-management="http://jboss.com/products/seam/security/permission"
xmlns:drools="http://jboss.com/products/seam/drools"
xmlns:captcha="http://jboss.com/products/seam/captcha"
xmlns:web="http://jboss.com/products/seam/web"
@@ -49,7 +50,7 @@
enabled-attribute="enabled"
/>
- <security:jpa-permission-store name="permissionStore" permission-class="org.jboss.seam.example.seamspace.Permission"/>
+ <permission-management:jpa-permission-store user-permission-class="org.jboss.seam.example.seamspace.AccountPermission"/>
<drools:rule-base name="securityRules">
<drools:rule-files>
Modified: trunk/examples/seamspace/resources/WEB-INF/pages.xml
===================================================================
--- trunk/examples/seamspace/resources/WEB-INF/pages.xml 2008-05-04 07:33:03 UTC (rev 8109)
+++ trunk/examples/seamspace/resources/WEB-INF/pages.xml 2008-05-04 07:33:26 UTC (rev 8110)
@@ -111,7 +111,7 @@
</navigation>
</page>
- <page view-id="/pictureupload.xhtml">
+ <page view-id="/pictureupload.xhtml" login-required="true">
<navigation from-action="#{pictureAction.savePicture}">
<redirect view-id="/pictures.xhtml">
<param name="name" value="#{authenticatedMember.memberName}"/>
Added: trunk/examples/seamspace/src/org/jboss/seam/example/seamspace/AccountPermission.java
===================================================================
--- trunk/examples/seamspace/src/org/jboss/seam/example/seamspace/AccountPermission.java (rev 0)
+++ trunk/examples/seamspace/src/org/jboss/seam/example/seamspace/AccountPermission.java 2008-05-04 07:33:26 UTC (rev 8110)
@@ -0,0 +1,81 @@
+package org.jboss.seam.example.seamspace;
+
+import java.io.Serializable;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+
+import org.jboss.seam.annotations.security.permission.PermissionAction;
+import org.jboss.seam.annotations.security.permission.PermissionDiscriminator;
+import org.jboss.seam.annotations.security.permission.PermissionRole;
+import org.jboss.seam.annotations.security.permission.PermissionTarget;
+import org.jboss.seam.annotations.security.permission.PermissionUser;
+
+ at Entity
+public class AccountPermission implements Serializable
+{
+ private static final long serialVersionUID = -5628863031792429938L;
+
+ private Integer permissionId;
+ private String recipient;
+ private String target;
+ private String action;
+ private String discriminator;
+
+ @Id @GeneratedValue
+ public Integer getPermissionId()
+ {
+ return permissionId;
+ }
+
+ public void setPermissionId(Integer permissionId)
+ {
+ this.permissionId = permissionId;
+ }
+
+ @PermissionUser
+ @PermissionRole
+ public String getRecipient()
+ {
+ return recipient;
+ }
+
+ public void setRecipient(String recipient)
+ {
+ this.recipient = recipient;
+ }
+
+ @PermissionTarget
+ public String getTarget()
+ {
+ return target;
+ }
+
+ public void setTarget(String target)
+ {
+ this.target = target;
+ }
+
+ @PermissionAction
+ public String getAction()
+ {
+ return action;
+ }
+
+ public void setAction(String action)
+ {
+ this.action = action;
+ }
+
+ @PermissionDiscriminator
+ public String getDiscriminator()
+ {
+ return discriminator;
+ }
+
+ public void setDiscriminator(String discriminator)
+ {
+ this.discriminator = discriminator;
+ }
+}
Modified: trunk/examples/seamspace/src/org/jboss/seam/example/seamspace/MemberImage.java
===================================================================
--- trunk/examples/seamspace/src/org/jboss/seam/example/seamspace/MemberImage.java 2008-05-04 07:33:03 UTC (rev 8109)
+++ trunk/examples/seamspace/src/org/jboss/seam/example/seamspace/MemberImage.java 2008-05-04 07:33:26 UTC (rev 8110)
@@ -8,10 +8,8 @@
import javax.persistence.JoinColumn;
import javax.persistence.Lob;
import javax.persistence.ManyToOne;
-import javax.persistence.PostLoad;
import org.jboss.seam.annotations.Name;
-import org.jboss.seam.annotations.security.Restrict;
@Entity
@Name("memberImage")
Modified: trunk/examples/seamspace/src/org/jboss/seam/example/seamspace/PictureSearch.java
===================================================================
--- trunk/examples/seamspace/src/org/jboss/seam/example/seamspace/PictureSearch.java 2008-05-04 07:33:03 UTC (rev 8109)
+++ trunk/examples/seamspace/src/org/jboss/seam/example/seamspace/PictureSearch.java 2008-05-04 07:33:26 UTC (rev 8110)
@@ -11,6 +11,7 @@
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Out;
import org.jboss.seam.annotations.Scope;
+import org.jboss.seam.annotations.web.RequestParameter;
@Name("pictureSearch")
@Scope(EVENT)
@@ -26,6 +27,9 @@
@Out(required = false)
private List<MemberImage> memberImages;
+ @RequestParameter
+ private Integer imageId;
+
public String getMemberName()
{
return memberName;
@@ -36,6 +40,11 @@
this.memberName = memberName;
}
+ public MemberImage lookupImage()
+ {
+ return entityManager.find(MemberImage.class, imageId);
+ }
+
@SuppressWarnings("unchecked")
public void loadMemberPictures()
{
Added: trunk/examples/seamspace/view/permissionmanager.xhtml
===================================================================
--- trunk/examples/seamspace/view/permissionmanager.xhtml (rev 0)
+++ trunk/examples/seamspace/view/permissionmanager.xhtml 2008-05-04 07:33:26 UTC (rev 8110)
@@ -0,0 +1,33 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:s="http://jboss.com/products/seam/taglib">
+
+ <ui:composition template="template.xhtml">
+
+ <ui:define name="head">
+ <link href="style/security.css" rel="stylesheet" type="text/css"/>
+ </ui:define>
+
+ <ui:define name="content">
+
+ <script type="text/javascript">
+ function confirmDelete()
+ {
+ return confirm("Are you sure you wish to delete this permission? This action cannot be undone.");
+ }
+ </script>
+
+ <div id="contentMain">
+
+ <h2>Permission Manager</h2>
+
+
+ </div>
+
+ </ui:define>
+
+ </ui:composition>
+</html>
Modified: trunk/examples/seamspace/view/pictures.xhtml
===================================================================
--- trunk/examples/seamspace/view/pictures.xhtml 2008-05-04 07:33:03 UTC (rev 8109)
+++ trunk/examples/seamspace/view/pictures.xhtml 2008-05-04 07:33:26 UTC (rev 8110)
@@ -45,7 +45,9 @@
<a href="content/images?id=#{img.imageId}" rel="lightbox[pictureset]" title="#{img.caption}">
<h:graphicImage value="/content/images?id=#{img.imageId}&width=90" border="0"/>
</a>
- <s:button view="/permissions.seam" styleClass="padlock"/>
+ <s:button view="/permissionmanager.seam" action="#{permissionSearch.loadPermissions(pictureSearch.lookupImage())}" styleClass="padlock">
+ <f:param name="imageId" value="#{img.imageId}"/>
+ </s:button>
<s:button styleClass="trash"/>
</div>
More information about the seam-commits
mailing list