latest, greatest UI.
authorblk <blk@ab3bd59b-922f-494d-bb5f-6f0a3c29deca>
Mon, 28 Oct 2002 01:30:34 +0000 (01:30 +0000)
committerblk <blk@ab3bd59b-922f-494d-bb5f-6f0a3c29deca>
Mon, 28 Oct 2002 01:30:34 +0000 (01:30 +0000)
git-svn-id: https://subversion.switch.ch/svn/shibboleth/java-idp/trunk@333 ab3bd59b-922f-494d-bb5f-6f0a3c29deca

src/edu/internet2/middleware/shibboleth/ui/UI.java
src/edu/internet2/middleware/shibboleth/ui/UIedit.jsp
src/edu/internet2/middleware/shibboleth/ui/UIfilter.jsp

index 4fc3864..4e64f70 100755 (executable)
@@ -90,6 +90,12 @@ public class UI extends HttpServlet {
            arpFactory = ArpRepositoryFactory.getInstance("edu.internet2.middleware.shibboleth.aa.FileArpRepository", props);
            responder = new AAResponder(arpFactory, getDirCtx(), 
                                        getInitParameter("domain"));
+           adminArp = arpFactory.lookupArp(adminArpName, true);
+           if(adminArp ==  null) {
+               log.error("Admin ARP not found in Arp Repository ("+arpFactory+")");
+               throw new ServletException("Unable to load admin ARP.");
+       }
+
        } catch (Exception ex) {
            throw new ServletException(ex);
        }
@@ -115,11 +121,6 @@ public class UI extends HttpServlet {
        throws ServletException, IOException
     {
        String username = req.getParameter("username");
-        adminArp = arpFactory.lookupArp(adminArpName, true);
-       if(adminArp ==  null) {
-          log.error("Admin ARP not found in Arp Repository ("+arpFactory+")");
-          throw new UIException("Unable to load admin ARP.");
-       }
 
        req.setAttribute("username", username);
        req.setAttribute("requestURL", req.getRequestURI().toString());
@@ -366,6 +367,7 @@ public class UI extends HttpServlet {
        try{ 
            Arp arp = arpFactory.lookupArp(username, false);
            String []subAttrs = req.getParameterValues("attr");
+           String []admAttrs = req.getParameterValues("adminAttrs");
            ArpShar s = arp.getShar(resource);
            if (s==null) 
                s = new ArpShar(resource, false); 
@@ -386,6 +388,17 @@ public class UI extends HttpServlet {
                    }
                }
            }
+           if (admAttrs!=null){
+               for (int i = 0; i < admAttrs.length; i++) {
+                   ArpAttribute a = r.getAttribute(admAttrs[i]);
+                   if (a!=null) 
+                       nr.addAnAttribute(a);
+                   else {
+                       a = new ArpAttribute(admAttrs[i], false);
+                       nr.addAnAttribute(a);
+                   }
+               }
+           }
            s.addAResource(nr, true);
            arp.addAShar(s);
            arpFactory.update(arp);
index 62e3979..edac6c4 100755 (executable)
@@ -91,7 +91,8 @@ function formCancel()
 
 <%
       for (int i=0; i<allAttrs.length; i++) {
-       ArpAttribute adminAttr = getAdminAttr(adminArp, resource, allAttrs[i]);
+       ArpAttribute adminAttr = getAdminAttr(adminArp, resource.getName(), 
+                                               allAttrs[i]);
        ArpAttribute aAttr = new ArpAttribute(allAttrs[i], false);
        Attribute dAttr = aAttr.getDirAttribute(userCtx, true);
        if (dAttr != null && dAttr.size() > 0) {
@@ -124,7 +125,10 @@ function formCancel()
          out.println("</td><td>");
 
          String checkoption = "";
+         String adminInput = "";
          if (adminAttr != null) {
+           adminInput = "<input type=hidden name=\"adminAttrs\" value=\""+
+            allAttrs[i]+"\">";
            if (adminAttr.mustExclude())
              checkoption = "NO";
            else 
@@ -143,6 +147,7 @@ function formCancel()
 <% } %>
        </td>
        <td>
+         <%=adminInput%>
          <%=checkoption%>
        </td>
 
@@ -158,6 +163,7 @@ function formCancel()
        
       <hr>
        <input type="hidden" name="username" value="<bean:write name="username"/>">     
+
       <input type="submit" name="Submit" value="Save" onClick="return formSubmit();">&nbsp;&nbsp;
 
        <input type="submit" name="Submit" value="Cancel" onClick="return formCancel();" >
@@ -165,14 +171,14 @@ function formCancel()
     <hr>
 <%!
 public ArpAttribute getAdminAttr(Arp admin, 
-                       ArpResource resource, String attr) {
-    ArpShar s = admin.getShar(resource.getName());
+                       String resource, String attr) {
+    ArpShar s = admin.getShar(resource);
     if (s == null) {
        s = admin.getDefaultShar();
     }
     if (s == null)
        return null;
-    ArpResource r = s.bestFit(resource.getName());
+    ArpResource r = s.bestFit(resource);
     if (r == null)
        return null;
     ArpAttribute a = r.getAttribute(attr);
index d60f6d9..9837a51 100755 (executable)
@@ -39,7 +39,8 @@
        
 <% 
     ArpAttribute adminAttr = getAdminAttr(adminArp, resource, userAttr.getName());
-    ArpFilter filter = combineFilters(adminAttr, userAttr);
+    ArpFilter admFilter = adminAttr.getFilter();
+    ArpFilter filter = userAttr.getFilter();
 
     Attribute dAttr = attr.getDirAttribute(userCtx, true);
 
       String checked = "";
       if (filter != null) {
        ArpFilterValue afv = new ArpFilterValue(dAttr.get(j), false);
-       ArpFilterValue[] afva = filter.getFilterValues();       
-       for (int k=0;k<afva.length;k++) { 
-         if (afva[k].equals(afv))  
-           checked = "checked";
+       ArpFilterValue afvt = new ArpFilterValue(dAttr.get(j), true);
+       ArpFilterValue[] afva = filter.getFilterValues();
+       if (filter.contains(afv)) {
+           checked = "<input type=\"checkbox\" name=\"filterval\" value=\""+dAttr.get(j)+"\" checked> Yes";
+       } else {
+           checked = "<input type=\"checkbox\" name=\"filterval\" value=\""+dAttr.get(j)+"\"> Yes";
+       }
+       ArpFilterValue[] afvi = admFilter.getFilterValues();
+       for (int k=0;k<afvi.length;k++) {
+           if (afvi[k].equals(afv) && (afvi[k].mustInclude() == false)) {
+               checked = "<i>filtered</i>";
+           }
+           if (afvi[k].equals(afvt) && (afvi[k].mustInclude())) {
+               checked = "<i>released</i>";
+           }
        }
       }
 
       out.println("<tr><td>"+dAttr.get(j)+"</td>");
-      out.println("<td><input type=\"checkbox\" name=\"filterval\" value=\""+dAttr.get(j)+"\" "+checked+">&nbsp;Yes</td></tr>");
+      out.println("<td>"+checked+"</td></tr>");
     } 
   }
 %>