FC-239 - implement ReviewMgl.assignedUsers roleConstraints
diff --git a/src/main/java/org/apache/directory/fortress/rest/FortressService.java b/src/main/java/org/apache/directory/fortress/rest/FortressService.java
index 4e825bb..cbfc710 100644
--- a/src/main/java/org/apache/directory/fortress/rest/FortressService.java
+++ b/src/main/java/org/apache/directory/fortress/rest/FortressService.java
@@ -2749,6 +2749,40 @@
 
 
     /**
+     * This method returns the data set of all users who are assigned the given role constraint.  This searches the User data set for
+     * RoleConstraint relationship.  This method does NOT search for hierarchical RBAC Roles relationships.
+     * <h3></h3>
+     * <h4>required parameters</h4>
+     * <ul>
+     *  <li>
+     *    {@link FortRequest#entity} - contains a reference to {@link org.apache.directory.fortress.core.model.RoleConstraint} entity
+     *  </li>
+     * </ul>
+     * <ul style="list-style-type:none">
+     *   <li>
+     *     <ul style="list-style-type:none">
+     *       <li>
+     *         <h5>{@link org.apache.directory.fortress.core.model.RoleConstraint} required parameters</h5>
+     *         <ul>
+     *           <li>
+     *             {@link org.apache.directory.fortress.core.model.RoleConstraint#key} - contains the name to use for the Role
+     *             {@link org.apache.directory.fortress.core.model.RoleConstraint#value} - contains the name to use for the Role
+     *             targeted for search.
+     *           </li>
+     *         </ul>
+     *       </li>
+     *     </ul>
+     *   </li>
+     * </ul>
+     *
+     * @param request contains a reference to {@code FortRequest}
+     * @return reference to {@code FortResponse}, {@link FortResponse#entities} contains a reference to a List of type
+     * {@link org.apache.directory.fortress.core.model.User}
+     */
+    FortResponse assignedUsersConstraints( FortRequest request );
+
+
+    /**
      * This function returns the set of roles assigned to a given user. The function is valid if and
      * only if the user is a member of the USERS data set.
      * <h3></h3>
diff --git a/src/main/java/org/apache/directory/fortress/rest/FortressServiceImpl.java b/src/main/java/org/apache/directory/fortress/rest/FortressServiceImpl.java
index 5a8b696..04d7694 100644
--- a/src/main/java/org/apache/directory/fortress/rest/FortressServiceImpl.java
+++ b/src/main/java/org/apache/directory/fortress/rest/FortressServiceImpl.java
@@ -816,6 +816,19 @@
      * {@inheritDoc}
      */
     @POST
+    @Path("/" + HttpIds.USER_ASGNED_CONSTRAINTS + "/")
+    @RolesAllowed({SUPER_USER, REVIEW_MGR_USER})
+    @Override
+    public FortResponse assignedUsersConstraints( FortRequest request )
+    {
+        return reviewMgrImpl.assignedUsersConstraints( request );
+    }
+
+
+    /**
+     * {@inheritDoc}
+     */
+    @POST
     @Path("/" + HttpIds.ROLE_ASGNED + "/")
     @RolesAllowed({SUPER_USER, REVIEW_MGR_USER})
     @Override
diff --git a/src/main/java/org/apache/directory/fortress/rest/ReviewMgrImpl.java b/src/main/java/org/apache/directory/fortress/rest/ReviewMgrImpl.java
index d1e6051..a80e174 100644
--- a/src/main/java/org/apache/directory/fortress/rest/ReviewMgrImpl.java
+++ b/src/main/java/org/apache/directory/fortress/rest/ReviewMgrImpl.java
@@ -316,7 +316,6 @@
             {
                 List<User> users = reviewMgr.assignedUsers( inRole );
                 response.setEntities( users );
-                response.setEntities( users );
             }
         }
         catch ( SecurityException se )
@@ -328,6 +327,28 @@
     }
 
     
+    /* No qualifier */  FortResponse assignedUsersConstraints( FortRequest request )
+    {
+        FortResponse response = createResponse();
+
+        try
+        {
+            ReviewMgr reviewMgr = ReviewMgrFactory.createInstance( request.getContextId() );
+            reviewMgr.setAdmin( request.getSession() );
+            Role inRole = (Role) request.getEntity();
+            RoleConstraint inConstraint = (RoleConstraint) request.getEntity2();
+            List<User> users = reviewMgr.assignedUsers( inRole, inConstraint );
+            response.setEntities( users );
+        }
+        catch ( SecurityException se )
+        {
+            createError( response, LOG, se );
+        }
+
+        return response;
+    }
+
+
     /* No qualifier */  FortResponse assignedRolesM( FortRequest request )
     {
         FortResponse response = createResponse();