[jboss-cvs] JBossBlog SVN: r224 - trunk/src/action/org/jboss/blog/session/security.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Feb 26 11:34:15 EST 2008


Author: adamw
Date: 2008-02-26 11:34:15 -0500 (Tue, 26 Feb 2008)
New Revision: 224

Modified:
   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/SecurityModBean.java
   trunk/src/action/org/jboss/blog/session/security/SecurityObserver.java
Log:


Modified: trunk/src/action/org/jboss/blog/session/security/Authenticator.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/security/Authenticator.java	2008-02-26 16:11:12 UTC (rev 223)
+++ trunk/src/action/org/jboss/blog/session/security/Authenticator.java	2008-02-26 16:34:15 UTC (rev 224)
@@ -38,22 +38,14 @@
             return false;
         }
 
+        identity.setSecurityUser(user);
+
         List<SecurityGroup> securityGroups = externalSecurityService.getGroupsOfUser(user);
 
         addFeedRolesFromMappings(user.getMappings());
         for (SecurityGroup securityGroup : securityGroups) {
             addFeedRolesFromMappings(securityGroup.getMappings());
         }
-
-        /*if ("admin".equals(identity.getUsername())) {
-            identity.addFeedsRole(FeedsSecurityRole.ADMIN);
-        }
-        if ("bobs_group".equals(identity.getUsername())) {
-            identity.addFeedsRole(FeedsSecurityRole.GROUP_ADMIN, 6);
-        }
-        if ("sacha".equals(identity.getUsername())) {
-            identity.addFeedsRole(FeedsSecurityRole.FEED_ADMIN, 34);
-        }*/
         
         return true;
     }

Modified: trunk/src/action/org/jboss/blog/session/security/FeedsIdentity.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/security/FeedsIdentity.java	2008-02-26 16:11:12 UTC (rev 223)
+++ trunk/src/action/org/jboss/blog/session/security/FeedsIdentity.java	2008-02-26 16:34:15 UTC (rev 224)
@@ -9,6 +9,7 @@
 import org.jboss.seam.annotations.intercept.BypassInterceptors;
 import static org.jboss.seam.ScopeType.SESSION;
 import org.jboss.blog.model.security.FeedsSecurityRole;
+import org.jboss.blog.model.security.SecurityUser;
 import org.drools.StatefulSession;
 import org.drools.FactHandle;
 import org.drools.base.ClassObjectFilter;
@@ -24,6 +25,16 @@
 @Install(precedence = APPLICATION)
 @Startup
 public class FeedsIdentity extends RuleBasedIdentity {
+    private SecurityUser securityUser;
+
+    public SecurityUser getSecurityUser() {
+        return securityUser;
+    }
+
+    public void setSecurityUser(SecurityUser securityUser) {
+        this.securityUser = securityUser;
+    }
+
     public boolean addFeedsRole(FeedsSecurityRole role) {
         return addFeedsRole(role, null);
     }

Modified: trunk/src/action/org/jboss/blog/session/security/SecurityModBean.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/security/SecurityModBean.java	2008-02-26 16:11:12 UTC (rev 223)
+++ trunk/src/action/org/jboss/blog/session/security/SecurityModBean.java	2008-02-26 16:34:15 UTC (rev 224)
@@ -93,6 +93,7 @@
             SecurityMapping mapping = new SecurityMapping();
             mapping.setRole(role);
             mapping.setIdForRole(idForRole);
+            mapping.setUsers(new ArrayList<SecurityUser>());
             mapping.setGroups(new ArrayList<SecurityGroup>());
             entityManager.persist(mapping);
 

Modified: trunk/src/action/org/jboss/blog/session/security/SecurityObserver.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/security/SecurityObserver.java	2008-02-26 16:11:12 UTC (rev 223)
+++ trunk/src/action/org/jboss/blog/session/security/SecurityObserver.java	2008-02-26 16:34:15 UTC (rev 224)
@@ -6,8 +6,10 @@
 import org.jboss.blog.model.Group;
 import org.jboss.blog.model.feed.Feed;
 import org.jboss.blog.model.security.FeedsSecurityRole;
+import org.jboss.blog.model.security.SecurityMapping;
 
 import javax.persistence.EntityManager;
+import java.util.List;
 
 /**
  * @author <a href="mailto:adam at warski.org">Adam Warski</a>
@@ -20,33 +22,56 @@
     @In
     private EntityManager entityManager;
 
+    @In
+    private SecurityModBean securityMod;
+
     @Observer({"org.jboss.blog.group.updated"})
     public void groupUpdated(Group group) { }
 
     @Observer({"org.jboss.blog.group.added"})
     public void groupAdded(Group group) {
+        securityMod.setRole(FeedsSecurityRole.GROUP_ADMIN);
+        securityMod.setGroup(group);
+        securityMod.setRestrictedSecurityUser(identity.getSecurityUser());
 
+        securityMod.addSecurityUser();
+
+        entityManager.flush();
     }
 
     @Observer({"org.jboss.blog.group.deleted"})
     public void groupDeleted(Group group) {
-        entityManager.createQuery("delete from SecurityMapping sm where sm.idForRole = ?1 and sm.role = ?2")
-                .setParameter(1, group.getId()).setParameter(2, FeedsSecurityRole.GROUP_ADMIN)
-                .executeUpdate();
+        //noinspection unchecked
+        List<SecurityMapping> mappings =
+                entityManager.createQuery("select sm from SecurityMapping sm where sm.idForRole = ?1 and sm.role = ?2")
+                        .setParameter(1, group.getId()).setParameter(2, FeedsSecurityRole.GROUP_ADMIN)
+                        .getResultList();
+
+        for (SecurityMapping mapping : mappings) {
+            entityManager.remove(mapping);
+        }
+
+        entityManager.flush();
     }
 
     @Observer({"org.jboss.blog.feed.updated"})
     public void feedUpdated(Feed feed) { }
 
     @Observer({"org.jboss.blog.feed.added"})
-    public void feedAdded(Feed feed) {
+    public void feedAdded(Feed feed) { }
 
-    }
-
     @Observer({"org.jboss.blog.feed.deleted"})
     public void feedDeleted(Feed feed) {
-        entityManager.createQuery("delete from SecurityMapping sm where sm.idForRole = ?1 and sm.role = ?2")
-                .setParameter(1, feed.getId()).setParameter(2, FeedsSecurityRole.FEED_ADMIN)
-                .executeUpdate();
+        //noinspection unchecked
+        List<SecurityMapping> mappings =
+                entityManager.createQuery("select sm from SecurityMapping sm where sm.idForRole = ?1 and sm.role = ?2")
+                        .setParameter(1, feed.getId()).setParameter(2, FeedsSecurityRole.FEED_ADMIN)
+                        .getResultList();
+
+        for (SecurityMapping mapping : mappings) {
+            entityManager.remove(mapping);
+        }
+
+        entityManager.flush();
     }
 }




More information about the jboss-cvs-commits mailing list