[seam-commits] Seam SVN: r8116 - in trunk/examples/seamspace: resources/META-INF and 3 other directories.

seam-commits at lists.jboss.org seam-commits at lists.jboss.org
Mon May 5 09:55:04 EDT 2008


Author: shane.bryzak at jboss.com
Date: 2008-05-05 09:55:04 -0400 (Mon, 05 May 2008)
New Revision: 8116

Added:
   trunk/examples/seamspace/view/permissiondetail.xhtml
   trunk/examples/seamspace/view/permissionmanager.page.xml
   trunk/examples/seamspace/view/roledetail.page.xml
   trunk/examples/seamspace/view/rolemanager.page.xml
   trunk/examples/seamspace/view/userdetail.page.xml
   trunk/examples/seamspace/view/usermanager.page.xml
Modified:
   trunk/examples/seamspace/resources/META-INF/security-rules.drl
   trunk/examples/seamspace/resources/WEB-INF/pages.xml
   trunk/examples/seamspace/resources/import.sql
   trunk/examples/seamspace/src/org/jboss/seam/example/seamspace/MemberImage.java
   trunk/examples/seamspace/view/permissionmanager.xhtml
   trunk/examples/seamspace/view/pictures.xhtml
Log:
extract user/permission management .page.xml files from pages.xml for easier distribution

Modified: trunk/examples/seamspace/resources/META-INF/security-rules.drl
===================================================================
--- trunk/examples/seamspace/resources/META-INF/security-rules.drl	2008-05-05 13:53:54 UTC (rev 8115)
+++ trunk/examples/seamspace/resources/META-INF/security-rules.drl	2008-05-05 13:55:04 UTC (rev 8116)
@@ -28,6 +28,19 @@
   check.grant();
 end
 
+# This rule allows members to revoke permissions on their images to other users/roles
+
+rule RevokeImagePermissions
+  no-loop
+  activation-group "permissions"
+when
+  acct: MemberAccount()
+  image: MemberImage(mbr : member -> (mbr.memberId.equals(acct.member.memberId)))
+  check: PermissionCheck(target == image, action == "seam.revoke-permission", granted == false)
+then
+  check.grant();
+end
+
 rule ViewProfileImage
   no-loop
   activation-group "permissions"

Modified: trunk/examples/seamspace/resources/WEB-INF/pages.xml
===================================================================
--- trunk/examples/seamspace/resources/WEB-INF/pages.xml	2008-05-05 13:53:54 UTC (rev 8115)
+++ trunk/examples/seamspace/resources/WEB-INF/pages.xml	2008-05-05 13:55:04 UTC (rev 8116)
@@ -63,46 +63,6 @@
 
     </page>
     
-    <page view-id="/usermanager.xhtml" action="#{userSearch.loadUsers}">
-      <restrict>#{s:hasPermission('seam.user', 'read')}</restrict>    
-      
-      <navigation from-action="#{userAction.createUser}">
-        <redirect view-id="/userdetail.xhtml"/>
-      </navigation>
-      
-      <navigation from-action="#{userAction.editUser(userSearch.selectedUser)}">
-        <redirect view-id="/userdetail.xhtml"/>
-      </navigation>      
-    </page>
-    
-    <page view-id="/rolemanager.xhtml" action="#{roleSearch.loadRoles}">
-      <restrict>#{s:hasPermission('seam.role', 'read')}</restrict>    
-      
-      <navigation from-action="#{roleAction.createRole}">
-        <redirect view-id="/roledetail.xhtml"/>
-      </navigation>
-      
-      <navigation from-action="#{roleAction.editRole(roleSearch.selectedRole)}">
-        <redirect view-id="/roledetail.xhtml"/>
-      </navigation>          
-    </page>
-    
-    <page view-id="/userdetail.xhtml">
-        <navigation from-action="#{userAction.save}">
-          <rule if-outcome="success">
-              <redirect view-id="/usermanager.xhtml"/>
-          </rule>
-        </navigation>
-    </page>
-    
-    <page view-id="/roledetail.xhtml">
-        <navigation from-action="#{roleAction.save}">
-            <rule if-outcome="success">
-                <redirect view-id="/rolemanager.xhtml"/>
-            </rule>
-        </navigation>
-    </page>
-    
     <page view-id="/profile.xhtml">
       <param name="name" value="#{selectedMember.memberName}"/>
     

Modified: trunk/examples/seamspace/resources/import.sql
===================================================================
--- trunk/examples/seamspace/resources/import.sql	2008-05-05 13:53:54 UTC (rev 8115)
+++ trunk/examples/seamspace/resources/import.sql	2008-05-05 13:55:04 UTC (rev 8116)
@@ -33,6 +33,8 @@
 update Member set picture_id = 3 where memberid = 3;
 update Member set picture_id = 4 where memberid = 4;
 
+insert into AccountPermission (permissionId, recipient, target, action, discriminator) values (1, 'friends', 'MemberImage:5', 'view', 'role');
+
 insert into MemberBlog (blogid, member_id, entrydate, title, text) values (1, 1, '2007-01-05', 'My first blog entry!', '*Lorem ipsum* dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.');
 insert into MemberBlog (blogid, member_id, entrydate, title, text) values (2, 1, '2007-01-07', 'I love latin', 'Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?');
 

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-05 13:53:54 UTC (rev 8115)
+++ trunk/examples/seamspace/src/org/jboss/seam/example/seamspace/MemberImage.java	2008-05-05 13:55:04 UTC (rev 8116)
@@ -9,10 +9,7 @@
 import javax.persistence.Lob;
 import javax.persistence.ManyToOne;
 
-import org.jboss.seam.annotations.Name;
-
 @Entity
- at Name("memberImage")
 public class MemberImage implements Serializable
 {
    private static final long serialVersionUID = -8088455267213832920L;

Added: trunk/examples/seamspace/view/permissiondetail.xhtml
===================================================================
--- trunk/examples/seamspace/view/permissiondetail.xhtml	                        (rev 0)
+++ trunk/examples/seamspace/view/permissiondetail.xhtml	2008-05-05 13:55:04 UTC (rev 8116)
@@ -0,0 +1,63 @@
+<!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:rich="http://richfaces.org/rich"       
+    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">
+        
+      <div id="contentMain">
+
+  	    <h2>Permission Details</h2>  
+  	    
+  	    <h:messages globalOnly="true"/>
+  	    
+  	    <h3>Granting permissions for: #{permissionSearch.target}</h3>
+  	    
+  	    <h:form>
+  	    
+          <div class="formRow">
+            <h:outputLabel for="recipient" value="Recipient" styleClass="formLabel"/>
+            <h:inputText id="recipient" value="#{permissionAction.recipient}"/>
+            <div class="validationError"><h:message for="recipient"/></div>
+          </div>  
+          
+          <div class="formRow">
+            <h:outputLabel for="action" value="Action" styleClass="formLabel"/>
+            <h:inputText id="action" value="#{permissionAction.action}"/>
+            <div class="validationError"><h:message for="action"/></div>
+          </div>            
+                            
+          <div class="formRow">            
+            <h:outputLabel for="actions" value="Allowable actions" styleClass="formLabel"/>
+            <div class="selectMany">
+              <h:selectManyCheckbox id="actions" value="#{permissionAction.actions}" layout="pageDirection" styleClass="roles">
+                <s:selectItems value="#{permissionManager.listAvailableActions(permissionAction.target)}" var="action" label="#{action}"/>
+              </h:selectManyCheckbox>
+            </div>
+            <div class="validationError"><h:message for="actions"/></div>
+          </div>
+                                                
+          <div class="formButtons">
+            <h:commandButton value="Save" action="#{permissionAction.save}" styleClass="formButton"/>
+            <s:button view="/permissionmanager.xhtml" value="Cancel" propagation="end" styleClass="formButton"/>
+          </div>
+    
+          <br class="clear"/>
+  	    
+  	    </h:form>
+
+	    </div>
+	    
+    </ui:define>
+    
+  </ui:composition>
+</html>

Added: trunk/examples/seamspace/view/permissionmanager.page.xml
===================================================================
--- trunk/examples/seamspace/view/permissionmanager.page.xml	                        (rev 0)
+++ trunk/examples/seamspace/view/permissionmanager.page.xml	2008-05-05 13:55:04 UTC (rev 8116)
@@ -0,0 +1,7 @@
+<!DOCTYPE page PUBLIC
+          "-//JBoss/Seam Pages Configuration DTD 1.2//EN"
+          "http://jboss.com/products/seam/pages-1.2.dtd">
+
+<page action="#{permissionSearch.refresh}">
+
+</page>
\ No newline at end of file

Modified: trunk/examples/seamspace/view/permissionmanager.xhtml
===================================================================
--- trunk/examples/seamspace/view/permissionmanager.xhtml	2008-05-05 13:53:54 UTC (rev 8115)
+++ trunk/examples/seamspace/view/permissionmanager.xhtml	2008-05-05 13:55:04 UTC (rev 8116)
@@ -16,7 +16,7 @@
       <script type="text/javascript">
         function confirmDelete()
         {
-          return confirm("Are you sure you wish to delete this permission? This action cannot be undone.");
+          return confirm("Are you sure you wish to revoke this permission? This action cannot be undone.");
         }
       </script>
 
@@ -55,8 +55,7 @@
             <f:facet name="header">
               Action
             </f:facet>
-          
-            <s:link value="Delete" action="#{permissionManager.revokePermission(permissionSearch.selectedPermission)}" 
+            <s:link value="Revoke" action="#{permissionManager.revokePermission(permissionSearch.selectedPermission)}" 
                     rendered="#{s:hasPermission(permissionSearch.target, 'seam.revoke-permission')}"
                     onclick="return confirmDelete()"/>
           </h:column>

Modified: trunk/examples/seamspace/view/pictures.xhtml
===================================================================
--- trunk/examples/seamspace/view/pictures.xhtml	2008-05-05 13:53:54 UTC (rev 8115)
+++ trunk/examples/seamspace/view/pictures.xhtml	2008-05-05 13:55:04 UTC (rev 8116)
@@ -45,7 +45,7 @@
               <a href="content/images?id=#{img.imageId}" rel="lightbox[pictureset]" title="#{img.caption}">
                 <h:graphicImage value="/content/images?id=#{img.imageId}&amp;width=90" border="0"/>
               </a>
-              <s:button view="/permissionmanager.seam" action="#{permissionSearch.loadPermissions(pictureSearch.lookupImage())}" styleClass="padlock">
+              <s:button view="/permissionmanager.seam" action="#{permissionSearch.search(pictureSearch.lookupImage())}" styleClass="padlock">
                 <f:param name="imageId" value="#{img.imageId}"/>
               </s:button>
               <s:button styleClass="trash"/>

Added: trunk/examples/seamspace/view/roledetail.page.xml
===================================================================
--- trunk/examples/seamspace/view/roledetail.page.xml	                        (rev 0)
+++ trunk/examples/seamspace/view/roledetail.page.xml	2008-05-05 13:55:04 UTC (rev 8116)
@@ -0,0 +1,11 @@
+<!DOCTYPE page PUBLIC
+          "-//JBoss/Seam Pages Configuration DTD 1.2//EN"
+          "http://jboss.com/products/seam/pages-1.2.dtd">
+          
+<page>
+    <navigation from-action="#{roleAction.save}">
+        <rule if-outcome="success">
+            <redirect view-id="/rolemanager.xhtml"/>
+        </rule>
+    </navigation>
+</page>
\ No newline at end of file

Added: trunk/examples/seamspace/view/rolemanager.page.xml
===================================================================
--- trunk/examples/seamspace/view/rolemanager.page.xml	                        (rev 0)
+++ trunk/examples/seamspace/view/rolemanager.page.xml	2008-05-05 13:55:04 UTC (rev 8116)
@@ -0,0 +1,15 @@
+<!DOCTYPE page PUBLIC
+          "-//JBoss/Seam Pages Configuration DTD 1.2//EN"
+          "http://jboss.com/products/seam/pages-1.2.dtd">
+
+<page action="#{roleSearch.loadRoles}">
+  <restrict>#{s:hasPermission('seam.role', 'read')}</restrict>    
+  
+  <navigation from-action="#{roleAction.createRole}">
+    <redirect view-id="/roledetail.xhtml"/>
+  </navigation>
+  
+  <navigation from-action="#{roleAction.editRole(roleSearch.selectedRole)}">
+    <redirect view-id="/roledetail.xhtml"/>
+  </navigation>          
+</page>
\ No newline at end of file

Added: trunk/examples/seamspace/view/userdetail.page.xml
===================================================================
--- trunk/examples/seamspace/view/userdetail.page.xml	                        (rev 0)
+++ trunk/examples/seamspace/view/userdetail.page.xml	2008-05-05 13:55:04 UTC (rev 8116)
@@ -0,0 +1,11 @@
+<!DOCTYPE page PUBLIC
+          "-//JBoss/Seam Pages Configuration DTD 1.2//EN"
+          "http://jboss.com/products/seam/pages-1.2.dtd">
+          
+<page>
+    <navigation from-action="#{userAction.save}">
+      <rule if-outcome="success">
+          <redirect view-id="/usermanager.xhtml"/>
+      </rule>
+    </navigation>
+</page>          
\ No newline at end of file

Added: trunk/examples/seamspace/view/usermanager.page.xml
===================================================================
--- trunk/examples/seamspace/view/usermanager.page.xml	                        (rev 0)
+++ trunk/examples/seamspace/view/usermanager.page.xml	2008-05-05 13:55:04 UTC (rev 8116)
@@ -0,0 +1,15 @@
+<!DOCTYPE page PUBLIC
+          "-//JBoss/Seam Pages Configuration DTD 1.2//EN"
+          "http://jboss.com/products/seam/pages-1.2.dtd">
+
+<page action="#{userSearch.loadUsers}">
+  <restrict>#{s:hasPermission('seam.user', 'read')}</restrict>    
+  
+  <navigation from-action="#{userAction.createUser}">
+    <redirect view-id="/userdetail.xhtml"/>
+  </navigation>
+  
+  <navigation from-action="#{userAction.editUser(userSearch.selectedUser)}">
+    <redirect view-id="/userdetail.xhtml"/>
+  </navigation>      
+</page>
\ No newline at end of file




More information about the seam-commits mailing list