FC-239 - Some additional methods to manage role constraints.
diff --git a/src/main/java/org/apache/directory/fortress/rest/AdminMgrImpl.java b/src/main/java/org/apache/directory/fortress/rest/AdminMgrImpl.java
index 6258795..df1110d 100644
--- a/src/main/java/org/apache/directory/fortress/rest/AdminMgrImpl.java
+++ b/src/main/java/org/apache/directory/fortress/rest/AdminMgrImpl.java
@@ -1052,6 +1052,46 @@
     }
 
 
+    /* No qualifier */ FortResponse enableRoleConstraint( FortRequest request )
+    {
+        FortResponse response = createResponse();
+
+        try
+        {
+            AdminMgr adminMgr = AdminMgrFactory.createInstance( request.getContextId() );
+            adminMgr.setAdmin( request.getSession() );
+            Role inRole = (Role) request.getEntity();
+            RoleConstraint inConstraint = (RoleConstraint) request.getEntity2();
+            adminMgr.enableRoleConstraint( inRole, inConstraint );
+        }
+        catch ( SecurityException se )
+        {
+            createError( response, log, se );
+        }
+        return response;
+    }
+
+
+    /* No qualifier */ FortResponse disableRoleConstraint( FortRequest request )
+    {
+        FortResponse response = createResponse();
+
+        try
+        {
+            AdminMgr adminMgr = AdminMgrFactory.createInstance( request.getContextId() );
+            adminMgr.setAdmin( request.getSession() );
+            Role inRole = (Role) request.getEntity();
+            RoleConstraint inConstraint = (RoleConstraint) request.getEntity2();
+            adminMgr.disableRoleConstraint( inRole, inConstraint );
+        }
+        catch ( SecurityException se )
+        {
+            createError( response, log, se );
+        }
+        return response;
+    }
+
+
     /* No qualifier */ FortResponse addPermissionAttributeToSet( FortRequest request )
     {
         FortResponse response = createResponse();
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 769d3f3..f1f3a62 100644
--- a/src/main/java/org/apache/directory/fortress/rest/FortressService.java
+++ b/src/main/java/org/apache/directory/fortress/rest/FortressService.java
@@ -2303,7 +2303,114 @@
      */
     FortResponse setDsdSetCardinality( FortRequest request );
 
-    
+
+    /**
+     * This command enables a role to be constained by attributes.
+     * <p>
+     * The command is valid if and only if:
+     * <ul>
+     *   <li>The role exists.</li>
+     * </ul>
+     * <h3></h3>
+     * <h4>required parameters</h4>
+     * <ul>
+     *   <li>
+     *     {@link FortRequest#entity} - contains a reference to {@link org.apache.directory.fortress.core.model.Role} object
+     *   </li>
+     * </ul>
+     * <ul style="list-style-type:none">
+     *   <li>
+     *     <ul style="list-style-type:none">
+     *       <li>
+     *         <h5>Role required parameters</h5>
+     *         <ul>
+     *           <li>
+     *             {@link org.apache.directory.fortress.core.model.Role#name} - contains the name to use for the Role to
+     *             be created.
+     *           </li>
+     *         </ul>
+     *       </li>
+     *     </ul>
+     *   </li>
+     * </ul>
+     * <ul>
+     *   <li>
+     *     {@link FortRequest#entity2} - contains a reference to {@link org.apache.directory.fortress.core.model.RoleConstraint} object
+     *   </li>
+     * </ul>
+     * <ul style="list-style-type:none">
+     *   <li>
+     *     <ul style="list-style-type:none">
+     *       <li>
+     *         <h5>Role required parameters</h5>
+     *         <ul>
+     *           <li>
+     *             {@link org.apache.directory.fortress.core.model.RoleConstraint#key} - contains the name of the constraint being set onto role.
+     *           </li>
+     *         </ul>
+     *       </li>
+     *     </ul>
+     *   </li>
+     * </ul>
+     *
+     * @param request contains a reference to {@code FortRequest}
+     * @return reference to {@code FortResponse}, {@link FortResponse#entity}
+     */
+    FortResponse enableRoleConstraint( FortRequest request );
+
+    /**
+     * This command enables a role to be removed from being constained by attributes.
+     * <p>
+     * The command is valid if and only if:
+     * <ul>
+     *   <li>The role exists.</li>
+     * </ul>
+     * <h3></h3>
+     * <h4>required parameters</h4>
+     * <ul>
+     *   <li>
+     *     {@link FortRequest#entity} - contains a reference to {@link org.apache.directory.fortress.core.model.Role} object
+     *   </li>
+     * </ul>
+     * <ul style="list-style-type:none">
+     *   <li>
+     *     <ul style="list-style-type:none">
+     *       <li>
+     *         <h5>Role required parameters</h5>
+     *         <ul>
+     *           <li>
+     *             {@link org.apache.directory.fortress.core.model.Role#name} - contains the name to use for the Role to removed.
+     *           </li>
+     *         </ul>
+     *       </li>
+     *     </ul>
+     *   </li>
+     * </ul>
+     * <ul>
+     *   <li>
+     *     {@link FortRequest#entity2} - contains a reference to {@link org.apache.directory.fortress.core.model.RoleConstraint} object
+     *   </li>
+     * </ul>
+     * <ul style="list-style-type:none">
+     *   <li>
+     *     <ul style="list-style-type:none">
+     *       <li>
+     *         <h5>Role required parameters</h5>
+     *         <ul>
+     *           <li>
+     *             {@link org.apache.directory.fortress.core.model.RoleConstraint#key} - contains the name of the constraint being set onto role.
+     *           </li>
+     *         </ul>
+     *       </li>
+     *     </ul>
+     *   </li>
+     * </ul>
+     *
+     * @param request contains a reference to {@code FortRequest}
+     * @return reference to {@code FortResponse}, {@link FortResponse#entity}
+     */
+    FortResponse disableRoleConstraint( FortRequest request );
+
     //------------ ReviewMgr ----------------------------------------------------------------------------------------------
     /**
      * This method returns a matching permission entity to caller.
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 a54e172..0f802d9 100644
--- a/src/main/java/org/apache/directory/fortress/rest/FortressServiceImpl.java
+++ b/src/main/java/org/apache/directory/fortress/rest/FortressServiceImpl.java
@@ -678,6 +678,32 @@
 
 
     /**
+     * {@inheritDoc}
+     */
+    @POST
+    @Path("/" + HttpIds.ROLE_ENABLE_CONSTRAINT + "/")
+    @RolesAllowed({SUPER_USER, REVIEW_MGR_USER})
+    @Override
+    public FortResponse enableRoleConstraint( FortRequest request )
+    {
+        return adminMgrImpl.enableRoleConstraint( request );
+    }
+
+
+    /**
+     * {@inheritDoc}
+     */
+    @POST
+    @Path("/" + HttpIds.ROLE_DISABLE_CONSTRAINT + "/")
+    @RolesAllowed({SUPER_USER, REVIEW_MGR_USER})
+    @Override
+    public FortResponse disableRoleConstraint( FortRequest request )
+    {
+        return adminMgrImpl.disableRoleConstraint( request );
+    }
+
+
+    /**
      * ************************************************************************************************************************************
      * BEGIN REVIEWMGR
      * **************************************************************************************************************************************