latest bugfixes
[java-idp.git] / src / edu / internet2 / middleware / shibboleth / ui / UIfilter.jsp
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE html 
3         PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
4         "DTD/xhtml1-strict.dtd">
5         <%@ page import="edu.internet2.middleware.shibboleth.aa.*" %>
6         <%@ page import="javax.naming.*" %>
7         <%@ page import="javax.naming.directory.*" %>
8         <%@ page import="java.util.*" %>
9         <%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %>
10         <%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %>
11         <jsp:useBean id="requestURL" scope="request" class="java.lang.String"/>
12         <jsp:useBean id="username" scope="request" class="java.lang.String"/>
13         <jsp:useBean id="userCtx" scope="request" class="javax.naming.directory.DirContext"/>
14         <jsp:useBean id="attr" scope="request" class="edu.internet2.middleware.shibboleth.aa.ArpAttribute"/>
15         <jsp:useBean id="userAttr" scope="request" class="edu.internet2.middleware.shibboleth.aa.ArpAttribute"/>
16         <jsp:useBean id="resource" scope="request" class="java.lang.String"/>
17         <jsp:useBean id="close" scope="request" class="java.lang.String"/>
18         <jsp:useBean id="adminArp" scope="request" class="edu.internet2.middleware.shibboleth.aa.Arp"/>
19 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
20   <head>
21         <link rel="stylesheet" type="text/css" href="main.css" />
22         <title>Shibboleth ARP</title>
23
24   </head>
25
26 <body
27 <% 
28  if (close.equals("true")) 
29         out.println(" onLoad=window.close()");
30 %>
31 >
32         
33     <p><b>Editing filter for attribute <bean:write name="attr" /></b></p>
34     
35      Select values for this attribute that should <b>not</b> be released:
36
37     <p><form name="filter_form" action="<bean:write name="requestURL" />" method="POST">
38         <table>
39         
40 <% 
41     ArpAttribute adminAttr = getAdminAttr(adminArp, resource, userAttr.getName());
42     if (adminAttr == null) {
43         adminAttr = new ArpAttribute(attr.getName(), false);
44     }
45     ArpFilter admFilter = adminAttr.getFilter();
46   
47     ArpFilter filter = userAttr.getFilter();
48
49     Attribute dAttr = attr.getDirAttribute(userCtx, true);
50
51     if (dAttr != null && dAttr.size() > 0) {
52     for (int j=0; j < dAttr.size(); j++)  {
53       String checked = "";
54       if (filter != null) {
55         ArpFilterValue afv = new ArpFilterValue(dAttr.get(j), false);
56         if (filter.contains(afv)) {
57             checked = "<input type=\"checkbox\" name=\"filterval\" value=\""+dAttr.get(j)+"\" checked> Yes";
58         } else {
59             checked = "<input type=\"checkbox\" name=\"filterval\" value=\""+dAttr.get(j)+"\"> Yes";
60         }
61         if (admFilter != null) {
62         ArpFilterValue[] afvi = admFilter.getFilterValues();
63         for (int k=0;k<afvi.length;k++) {
64             if (afvi[k].equals(afv) && (afvi[k].mustInclude() == false)) {
65                 checked = "<i>filtered</i>";
66             }
67             if (afvi[k].equals(afv) && (afvi[k].mustInclude())) {
68                 checked = "<i>released</i>";
69             }
70         }
71         }
72       } else {
73          checked = "<input type=\"checkbox\" name=\"filterval\" value=\""+dAttr.get(j)+"\"> Yes";
74         }
75
76       out.println("<tr><td>"+dAttr.get(j)+"</td>");
77       out.println("<td>"+checked+"</td></tr>");
78     } 
79   }
80 %>
81
82         </table>
83       <p>
84       <input type=hidden name="Attr" value="<jsp:getProperty name="attr" property="name"/>">
85       <input type=hidden name="username" value="<bean:write name="username"/>">
86       <input type=hidden name="Resource" value="<bean:write name="resource"/>"> 
87       <input type=submit name="Submit" value="Save Filter">
88       <input type=submit name="Submit" value="Cancel" onClick="javascript:window.close();">
89   </form>
90   
91 <%!
92 public ArpAttribute getAdminAttr(Arp admin, 
93                         String resource, String attr) {
94     ArpShar s = admin.getShar(resource);
95     if (s == null) {
96         s = admin.getDefaultShar();
97     }
98     if (s == null)
99         return null;
100     ArpResource r = s.bestFit(resource);
101     if (r == null)
102         return null;
103     ArpAttribute a = r.getAttribute(attr);
104     return a;
105 }
106
107 %>      
108   </body>       
109 </html>   
110