[seam-commits] Seam SVN: r13319 - in modules/security/trunk: examples/idmconsole/src/main/webapp/style and 3 other directories.

seam-commits at lists.jboss.org seam-commits at lists.jboss.org
Tue Jun 29 09:07:53 EDT 2010


Author: shane.bryzak at jboss.com
Date: 2010-06-29 09:07:52 -0400 (Tue, 29 Jun 2010)
New Revision: 13319

Added:
   modules/security/trunk/examples/idmconsole/src/main/webapp/manageusers.xhtml
   modules/security/trunk/examples/idmconsole/src/main/webapp/style/btn_newuser.png
Modified:
   modules/security/trunk/examples/idmconsole/src/main/webapp/home.xhtml
   modules/security/trunk/examples/idmconsole/src/main/webapp/menu.xhtml
   modules/security/trunk/examples/idmconsole/src/main/webapp/style/default.css
   modules/security/trunk/impl/src/main/java/org/jboss/seam/security/IdentityImpl.java
   modules/security/trunk/impl/src/main/java/org/jboss/seam/security/management/IdentityManagerImpl.java
   modules/security/trunk/impl/src/main/java/org/jboss/seam/security/management/JpaIdentityStore.java
   modules/security/trunk/impl/src/main/java/org/jboss/seam/security/management/action/UserSearch.java
Log:
implement user search


Modified: modules/security/trunk/examples/idmconsole/src/main/webapp/home.xhtml
===================================================================
--- modules/security/trunk/examples/idmconsole/src/main/webapp/home.xhtml	2010-06-29 13:03:17 UTC (rev 13318)
+++ modules/security/trunk/examples/idmconsole/src/main/webapp/home.xhtml	2010-06-29 13:07:52 UTC (rev 13319)
@@ -31,8 +31,10 @@
 
       <div class="buttons">
         <h:commandButton id="login" value="LOGIN" action="#{identity.login}" styleClass="loginButton"/>
-      </div>
+      </div>      
     </h:form>    
+    
+    <br style="clear:both"/>
      
   </ui:define>
 </ui:composition>

Added: modules/security/trunk/examples/idmconsole/src/main/webapp/manageusers.xhtml
===================================================================
--- modules/security/trunk/examples/idmconsole/src/main/webapp/manageusers.xhtml	                        (rev 0)
+++ modules/security/trunk/examples/idmconsole/src/main/webapp/manageusers.xhtml	2010-06-29 13:07:52 UTC (rev 13319)
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui:composition xmlns="http://www.w3.org/1999/xhtml"
+   xmlns:ui="http://java.sun.com/jsf/facelets"
+   xmlns:f="http://java.sun.com/jsf/core"
+   xmlns:h="http://java.sun.com/jsf/html"
+   template="/WEB-INF/templates/default.xhtml">
+  
+  <ui:define name="sidebar"> 
+    <ui:include src="menu.xhtml"/>
+  </ui:define>
+   
+  <ui:define name="content">
+    <h3>Manage Users</h3>
+   
+    <h:button id="newUser" action="#{userAction.createUser}" styleClass="newuser" rendered="#{identity.hasPermission('seam.account', 'create')}"/>
+  	    
+    <h:dataTable 
+      id="threads"
+      value="#{userSearch.users}" 
+      var="user" 
+      styleClass="security"
+      cellspacing="0"
+      headerClass="header"
+      rowClasses="odd,even"
+      columnClasses=",,enabled,action">
+      <h:column width="auto">
+        <f:facet name="header">
+          User name
+        </f:facet>
+        #{user}
+      </h:column>
+      <h:column id="enabled" width="auto">
+        <f:facet name="header">
+          Enabled
+        </f:facet>
+        <div class="#{identityManager.isUserEnabled(user) ? 'checkmark' : 'cross'}"/>
+      </h:column>
+      <h:column id="action" width="auto">
+        <f:facet name="header">
+          Action
+        </f:facet>
+      
+        <ui:fragment rendered="#{identity.hasPermission('seam.user', 'update')}">
+          <h:link id="edit" value="Edit" action="#{userAction.editUser(userSearch.selectedUser)}"/><span> | </span>
+        </ui:fragment>
+        <h:link id="delete" value="Delete" action="#{identityManager.deleteUser(userSearch.selectedUser)}" 
+                rendered="#{identity.hasPermission('seam.user', 'delete')}"
+                onclick="return confirmDelete()"/>
+      </h:column>
+    </h:dataTable>
+    
+    <br style="clear:both"/>
+     
+  </ui:define>
+</ui:composition>

Modified: modules/security/trunk/examples/idmconsole/src/main/webapp/menu.xhtml
===================================================================
--- modules/security/trunk/examples/idmconsole/src/main/webapp/menu.xhtml	2010-06-29 13:03:17 UTC (rev 13318)
+++ modules/security/trunk/examples/idmconsole/src/main/webapp/menu.xhtml	2010-06-29 13:07:52 UTC (rev 13319)
@@ -7,8 +7,16 @@
 	<ui:composition>
 
     <div class="menuitem">
-      Manage users
+      <a href="manageusers.jsf">Manage users</a>
     </div>		
+    
+    <div class="menuitem">
+      <a href="managegroups.jsf">Manage groups</a>
+    </div>
+    
+    <div class="menuitem">
+      <a href="manageroletypes.jsf">Manage role types</a>
+    </div>
 			
 	</ui:composition>
 

Added: modules/security/trunk/examples/idmconsole/src/main/webapp/style/btn_newuser.png
===================================================================
(Binary files differ)


Property changes on: modules/security/trunk/examples/idmconsole/src/main/webapp/style/btn_newuser.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Modified: modules/security/trunk/examples/idmconsole/src/main/webapp/style/default.css
===================================================================
--- modules/security/trunk/examples/idmconsole/src/main/webapp/style/default.css	2010-06-29 13:03:17 UTC (rev 13318)
+++ modules/security/trunk/examples/idmconsole/src/main/webapp/style/default.css	2010-06-29 13:07:52 UTC (rev 13319)
@@ -41,4 +41,17 @@
   margin-left: 180px;
 }
 
+div.menuitem a {
+  font-weight: bold;
+  text-decoration: none;
+}
 
+input.newuser {
+  background: url(btn_newuser.png) top left no-repeat;
+  height: 39px;
+  width: 113px;
+  margin: 4px 4px 4px 4px;
+  border: 0px;
+  cursor: pointer;  
+}
+

Modified: modules/security/trunk/impl/src/main/java/org/jboss/seam/security/IdentityImpl.java
===================================================================
--- modules/security/trunk/impl/src/main/java/org/jboss/seam/security/IdentityImpl.java	2010-06-29 13:03:17 UTC (rev 13318)
+++ modules/security/trunk/impl/src/main/java/org/jboss/seam/security/IdentityImpl.java	2010-06-29 13:07:52 UTC (rev 13319)
@@ -637,12 +637,14 @@
    
    public boolean hasPermission(Object target, String action)
    {
+      return true;
+      /*
       if (!securityEnabled) return true;
       if (systemOp != null && Boolean.TRUE.equals(systemOp.get())) return true;
       if (permissionMapper == null) return false;
       if (target == null) return false;
       
-      return permissionMapper.resolvePermission(target, action);
+      return permissionMapper.resolvePermission(target, action);*/
    }
      
    public String getJaasConfigName()

Modified: modules/security/trunk/impl/src/main/java/org/jboss/seam/security/management/IdentityManagerImpl.java
===================================================================
--- modules/security/trunk/impl/src/main/java/org/jboss/seam/security/management/IdentityManagerImpl.java	2010-06-29 13:03:17 UTC (rev 13318)
+++ modules/security/trunk/impl/src/main/java/org/jboss/seam/security/management/IdentityManagerImpl.java	2010-06-29 13:07:52 UTC (rev 13319)
@@ -1,6 +1,8 @@
 package org.jboss.seam.security.management;
 
 import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Collection;
 import java.util.List;
 
 import javax.enterprise.inject.Model;
@@ -14,6 +16,9 @@
 import org.picketlink.idm.api.IdentityType;
 import org.picketlink.idm.api.Role;
 import org.picketlink.idm.api.User;
+import org.picketlink.idm.api.query.QueryException;
+import org.picketlink.idm.api.query.UserQuery;
+import org.picketlink.idm.api.query.UserQueryBuilder;
 import org.picketlink.idm.common.exception.IdentityException;
 import org.picketlink.idm.impl.api.model.SimpleUser;
 import org.slf4j.Logger;
@@ -207,9 +212,26 @@
    public List<String> findUsers(String filter)
    {
       identity.checkPermission(USER_PERMISSION_NAME, PERMISSION_READ);
-      //List<String> users = identityStore.findUsers(filter);
+      UserQueryBuilder builder = identitySession.createUserQueryBuilder();
+      UserQuery userQuery = builder.createQuery();
       
-      return null;
+      try
+      {
+         Collection<User> users = identitySession.execute(userQuery);
+         
+         List<String> userList = new ArrayList<String>();
+         
+         for (User user : users)
+         {
+            userList.add(user.getId());
+         }
+         
+         return userList;
+      }
+      catch (QueryException ex)
+      {
+         throw new RuntimeException("Error querying users", ex);
+      }
    }
    
    public List<String> listRoleTypes()

Modified: modules/security/trunk/impl/src/main/java/org/jboss/seam/security/management/JpaIdentityStore.java
===================================================================
--- modules/security/trunk/impl/src/main/java/org/jboss/seam/security/management/JpaIdentityStore.java	2010-06-29 13:03:17 UTC (rev 13318)
+++ modules/security/trunk/impl/src/main/java/org/jboss/seam/security/management/JpaIdentityStore.java	2010-06-29 13:07:52 UTC (rev 13319)
@@ -1117,13 +1117,51 @@
    }
 
    public Collection<IdentityObject> findIdentityObject(
-         IdentityStoreInvocationContext invocationCtx,
-         IdentityObjectType identityType, IdentityObjectSearchCriteria criteria)
+         IdentityStoreInvocationContext ctx,
+         IdentityObjectType identityType, IdentityObjectSearchCriteria searchCriteria)
          throws IdentityException
    {
+      List<IdentityObject> objs = new ArrayList<IdentityObject>();
       
+      EntityManager em = getEntityManager(ctx);
+      
+      CriteriaBuilder builder = em.getCriteriaBuilder();
+      CriteriaQuery<?> criteria = builder.createQuery(identityClass);
+      Root<?> root = criteria.from(identityClass);
+      
+      List<Predicate> predicates = new ArrayList<Predicate>();
+      //predicates.add(builder.equal(root.get(credentialIdentity.getName()), 
+            //lookupIdentity(identityObject, em)));
+      
+      criteria.where(predicates.toArray(new Predicate[0]));
+      
+      List<?> results = em.createQuery(criteria).getResultList();
+      
+      Property<?> identityNameProp = modelProperties.get(PROPERTY_IDENTITY_NAME);
+      
+      Property<?> typeProp = modelProperties.get(PROPERTY_IDENTITY_TYPE);
+      Property<?> typeNameProp = modelProperties.get(PROPERTY_IDENTITY_TYPE_NAME);
+      
+      for (Object result : results)
+      {
+         String name = (String) identityNameProp.getValue(result);
+         String typeName;
+         
+         if (typeNameProp != null)
+         {
+            typeName = (String) typeNameProp.getValue(typeProp.getValue(result));
+         }
+         else
+         {
+            typeName = (String) typeProp.getValue(result);
+         }
+         
+         IdentityObjectType type = new IdentityObjectTypeImpl(typeName);
+         objs.add(new IdentityObjectImpl(name, name, type));
+      }
+      
       // TODO Auto-generated method stub
-      return null;
+      return objs;
    }
 
    public Collection<IdentityObject> findIdentityObject(
@@ -1131,8 +1169,10 @@
          IdentityObjectRelationshipType relationshipType, boolean parent,
          IdentityObjectSearchCriteria criteria) throws IdentityException
    {
+      List<IdentityObject> objs = new ArrayList<IdentityObject>();
+      
       // TODO Auto-generated method stub
-      return null;
+      return objs;
    }
 
    public String getId()

Modified: modules/security/trunk/impl/src/main/java/org/jboss/seam/security/management/action/UserSearch.java
===================================================================
--- modules/security/trunk/impl/src/main/java/org/jboss/seam/security/management/action/UserSearch.java	2010-06-29 13:03:17 UTC (rev 13318)
+++ modules/security/trunk/impl/src/main/java/org/jboss/seam/security/management/action/UserSearch.java	2010-06-29 13:07:52 UTC (rev 13319)
@@ -22,7 +22,7 @@
    
    @Inject IdentityManager identityManager;
    
-   public void loadUsers()
+   @Inject public void loadUsers()
    {
       users = identityManager.findUsers(null);
    }



More information about the seam-commits mailing list