[seam-commits] Seam SVN: r7552 - trunk/src/main/org/jboss/seam/security/permission.

seam-commits at lists.jboss.org seam-commits at lists.jboss.org
Thu Mar 13 02:38:14 EDT 2008


Author: shane.bryzak at jboss.com
Date: 2008-03-13 02:38:14 -0400 (Thu, 13 Mar 2008)
New Revision: 7552

Added:
   trunk/src/main/org/jboss/seam/security/permission/AccountPermission.java
   trunk/src/main/org/jboss/seam/security/permission/JPAPermissionStore.java
   trunk/src/main/org/jboss/seam/security/permission/PermissionStore.java
Modified:
   trunk/src/main/org/jboss/seam/security/permission/DynamicPermissionResolver.java
Log:
groundwork for dynamic permissions

Added: trunk/src/main/org/jboss/seam/security/permission/AccountPermission.java
===================================================================
--- trunk/src/main/org/jboss/seam/security/permission/AccountPermission.java	                        (rev 0)
+++ trunk/src/main/org/jboss/seam/security/permission/AccountPermission.java	2008-03-13 06:38:14 UTC (rev 7552)
@@ -0,0 +1,24 @@
+package org.jboss.seam.security.permission;
+
+/**
+ * Abstract base class for persistence of user/role permissions.  This class should be extended
+ * to create a concrete JPA/Hibernate implementation. 
+ *  
+ * @author Shane Bryzak
+ */
+public abstract class AccountPermission
+{
+   public enum AccountType {user, role}
+   
+   public abstract String getTarget();
+   public abstract void setTarget(String target);
+   
+   public abstract String getAction();
+   public abstract void setAction(String action);
+   
+   public abstract String getAccount();
+   public abstract void setAccount(String account);
+   
+   public abstract AccountType getAccountType();
+   public abstract void setAccountType(AccountType accountType);
+}

Modified: trunk/src/main/org/jboss/seam/security/permission/DynamicPermissionResolver.java
===================================================================
--- trunk/src/main/org/jboss/seam/security/permission/DynamicPermissionResolver.java	2008-03-13 06:28:43 UTC (rev 7551)
+++ trunk/src/main/org/jboss/seam/security/permission/DynamicPermissionResolver.java	2008-03-13 06:38:14 UTC (rev 7552)
@@ -26,6 +26,6 @@
 {   
    public boolean hasPermission(Object target, String action)
    {
-      return true;  
+      return false;  
    }
 }

Added: trunk/src/main/org/jboss/seam/security/permission/JPAPermissionStore.java
===================================================================
--- trunk/src/main/org/jboss/seam/security/permission/JPAPermissionStore.java	                        (rev 0)
+++ trunk/src/main/org/jboss/seam/security/permission/JPAPermissionStore.java	2008-03-13 06:38:14 UTC (rev 7552)
@@ -0,0 +1,42 @@
+package org.jboss.seam.security.permission;
+
+import static org.jboss.seam.ScopeType.APPLICATION;
+
+import java.util.List;
+
+import org.jboss.seam.annotations.Scope;
+import org.jboss.seam.annotations.intercept.BypassInterceptors;
+import org.jboss.seam.security.permission.AccountPermission.AccountType;
+
+/**
+ * A permission store implementation that uses JPA as its persistence mechanism.
+ * 
+ * @author Shane Bryzak
+ */
+ at Scope(APPLICATION)
+ at BypassInterceptors
+public class JPAPermissionStore implements PermissionStore
+{
+   public boolean grantPermission(String target, String action, String account,
+         AccountType accountType) 
+   {
+      return false;
+   }
+
+   public List<AccountPermission> listPermissions(String target, String action) 
+   {
+      return null;
+   }
+
+   public List<AccountPermission> listPermissions(String target) 
+   {
+      return null;
+   }
+
+   public boolean revokePermission(String target, String action,
+         String account, AccountType accountType) 
+   {
+      return false;
+   }
+
+}

Added: trunk/src/main/org/jboss/seam/security/permission/PermissionStore.java
===================================================================
--- trunk/src/main/org/jboss/seam/security/permission/PermissionStore.java	                        (rev 0)
+++ trunk/src/main/org/jboss/seam/security/permission/PermissionStore.java	2008-03-13 06:38:14 UTC (rev 7552)
@@ -0,0 +1,19 @@
+package org.jboss.seam.security.permission;
+
+import java.util.List;
+
+import org.jboss.seam.security.permission.AccountPermission.AccountType;
+
+/**
+ * Persistent store for user/role permissions
+ *  
+ * @author Shane Bryzak
+ */
+public interface PermissionStore
+{
+   List<AccountPermission> listPermissions(String target, String action);
+   List<AccountPermission> listPermissions(String target);
+   
+   boolean grantPermission(String target, String action, String account, AccountType accountType);
+   boolean revokePermission(String target, String action, String account, AccountType accountType);
+}




More information about the seam-commits mailing list