<%! /********************************************************************** ** ** SAP AG Walldorf ** (C) Copyright SAP AG 1999-2010 ** ***********************************************************************/ #include "publicincl/http_subhdl.inc" #include "publicincl/tools.inc" struct icm_auth_status_type { boolean active; string perm_file; string auth_file; string filt_profile; string filt_pattern; }; struct icm_perm_type { int no; string prefix; string virt_host; string logon_group; string user; string group; string clientip; string serverip; string perm; int flags; }; %> <% int i, count, nr, rc, dir, user_count, max; int rule_count, rule_len, rule_last; string hdlsel, what, browser, fld, lastControlID; string sstr, prefix; string filter_param, rules[]; string tab_hdlsel[]; boolean is_admin; struct icm_http_subhdl icm_subhdl_tab[]; struct icm_sort_type sort_tab[]; struct icm_user_type icm_user_info[]; struct icm_auth_status_type icm_auth_status; struct icm_perm_type icm_perm_tab[]; const string ssort = "../public/images/sort.gif"; const string sasc = "../public/images/sortasc.gif"; const string sdesc = "../public/images/sortdesc.gif"; sort_tab[0].header = "Permission"; sort_tab[0].tool = "Sort by permission flag"; sort_tab[0].ffield = "perm"; sort_tab[1].header = "URL Prefix"; sort_tab[1].tool = "Sort by URL prefix"; sort_tab[1].ffield = "prefix"; sort_tab[2].header = "Logon Group"; sort_tab[2].tool = "Sort by Logon Group specification"; sort_tab[2].ffield = "logon_group"; sort_tab[3].header = "User"; sort_tab[3].tool = "Sort by user name"; sort_tab[3].ffield = "user"; sort_tab[4].header = "Group"; sort_tab[4].tool = "Sort by group name"; sort_tab[4].ffield = "group"; sort_tab[5].header = "Client IP"; sort_tab[5].tool = "Sort by client IP address"; sort_tab[5].ffield = "clientip"; sort_tab[6].header = "Server IP"; sort_tab[6].tool = "Sort by server IP address"; sort_tab[6].ffield = "serverip"; max = arraylen(sort_tab); for (i=0; i < max;i++){ sort_tab[i].url = ssort; sort_tab[i].dir = 0; } is_admin = __icm_get_system_property ("is_admin"); browser = __icm_get_browser_type(); lastControlID = htmlenc(__icm_get_form_field ("lastControlID")); what = anumenc(__icm_get_form_field ("what")); filter_param = __icm_get_param ("csi/enable"); count = __icm_http_hdl (2,icm_subhdl_tab,11); for (i = 0; i < count; i++) { tab_hdlsel[i] = ""; } hdlsel = anumenc(__icm_get_form_field ("hdlsel")); if (hdlsel != "") tab_hdlsel[hdlsel] = "selected"; rc = __icm_auth_hdl (1,hdlsel,icm_auth_status); rc = __icm_auth_hdl (2,hdlsel,icm_perm_tab); max = arraylen(icm_perm_tab); for (nr = 0; nr < max; nr++) { icm_perm_tab[nr].no = nr; if ((icm_perm_tab[nr].flags & 3) == 1) icm_perm_tab[nr].perm = "Permit"; if ((icm_perm_tab[nr].flags & 3) == 2) icm_perm_tab[nr].perm = "Deny"; if ((icm_perm_tab[nr].flags & 3) == 3) icm_perm_tab[nr].perm = "Secure"; } user_count = 0; if ((rc == 0) && (icm_auth_status.auth_file != "")) user_count = __icm_get_user_info(icm_auth_status.auth_file, icm_user_info); dir = __icm_get_form_field ("dir"); sstr = __icm_get_form_field ("sstr"); if (sstr != "") sort (icm_perm_tab, dir, sstr); max = arraylen(sort_tab); for (i=0; i < max;i++){ if (sstr == sort_tab[i].ffield){ if (dir == 1) { sort_tab[i].url = sdesc; sort_tab[i].dir = -1; } else if (dir == -1) { sort_tab[i].url = sasc; sort_tab[i].dir = 1; } else sort_tab[i].dir = 1; } else sort_tab[i].dir = 1; } %> Access Handler
<% if (icm_auth_status.active) { %>
Deactivate Handler

Close Menu
<% } else { %>
Activate Handler

Close Menu
<% } %>
<% if (filter_param == "FALSE" || icm_auth_status.filt_profile == "") { %>
Activate Content Filter
<% } else { %>
Deactivate Content Filter
<% } if(icm_auth_status.filt_profile != "") { %>
Change Content Filter
<% } %>
Close Menu
Reload Permission File

Close Menu
for     Refresh
Access Handler Status <% if (icm_auth_status.active) { if (is_admin) { __output("active"); __output(" "); } else { __output("active"); } __output(" \"green\""); } else { if (is_admin) { __output("inactive"); __output(" "); } else { __output("inactive"); } __output(" \"red\""); } %>  
Name of Authentication File: <%=icm_auth_status.auth_file%> <% if (is_admin && (icm_auth_status.auth_file != "")) { %> <% } %>  
Name of Permission File: <% if (is_admin && (icm_auth_status.perm_file != "")) { %> <%=icm_auth_status.perm_file%>   <% } else __output (icm_auth_status.perm_file); %>  
Content Filter: <% if (icm_auth_status.filt_profile != "") { if (is_admin) { %> <%=htmlenc(icm_auth_status.filt_profile)%>   <% } else __output (htmlenc(icm_auth_status.filt_profile)); } if (icm_auth_status.filt_profile == "") { %> yellow
Filter-adapter library (CSA_LIB) not loaded <% } else { if (filter_param == "FALSE") { %> red <% } else { %> green <% } } %>
 
 
<% if (icm_auth_status.filt_profile != "") { rule_count = 0; if(icm_auth_status.filt_pattern != "") { rule_len = strlen(icm_auth_status.filt_pattern); if(strsub(icm_auth_status.filt_pattern,0,1) == "(" && strsub(icm_auth_status.filt_pattern,rule_len-1,rule_len) == ")") { nr = 1; } else { nr = 0; } } for (;nr < rule_len; nr++) { if(nr > 1 && strsub(icm_auth_status.filt_pattern,nr-1,nr) == ")" && strsub(icm_auth_status.filt_pattern,nr,nr+1) == "|" && strsub(icm_auth_status.filt_pattern,nr+1,nr+2) == "(") { rules[rule_count] = strsub(icm_auth_status.filt_pattern,rule_last+1,nr-1); rule_last = nr+1; rule_count++; } } if(rule_len > 0 ) { if(strsub(icm_auth_status.filt_pattern,rule_len-1,rule_len) == ")" ) { rules[rule_count] = strsub(icm_auth_status.filt_pattern,rule_last+1,rule_len-1); rule_count++; } if(rule_count == 0) { rules[0] = icm_auth_status.filt_pattern; rule_count++; } } %> <% if( rule_count == 0 ) { __output(""); } else { %> <% for (nr = 0; nr < rule_count; nr++) { %> <% } } %>
Content Filter <% if (is_admin && (icm_auth_status.filt_profile != "")) { %> <%=htmlenc(icm_auth_status.filt_profile)%>   <% } else __output (htmlenc(icm_auth_status.filt_profile)); %> Reload Rules
no rule
  Rule
  <%=htmlenc(rules[nr])%>

<% } %> <% max = arraylen(sort_tab); for (i=0;i < max;i++) { %> <% } %> <% max = arraylen(icm_perm_tab); for (nr = 0; nr < max; nr++) { prefix = ""; if (icm_perm_tab[nr].flags & 4) prefix = "*" + icm_perm_tab[nr].prefix; else if (!(icm_perm_tab[nr].flags & 8)) prefix = icm_perm_tab[nr].prefix + "*"; else prefix = icm_perm_tab[nr].prefix; %> <% } %>
Access Filter Reload File
Index <%=sort_tab[i].header%>
<%=icm_perm_tab[nr].no%> <%=icm_perm_tab[nr].perm%> <%=prefix%> <%=icm_perm_tab[nr].logon_group%> <%=icm_perm_tab[nr].user%> <%=icm_perm_tab[nr].group%> <%=icm_perm_tab[nr].clientip%> <%=icm_perm_tab[nr].serverip%>

<% for (nr = 0; nr < user_count; nr++) { %> <% } %>
Users in file <%=icm_auth_status.auth_file%> <% if (is_admin && (icm_auth_status.auth_file != "")) { %> Edit Users <% } else __output(" "); %>
  Name Group Client Certificate Data Password Attributes
<%=nr%> <%=icm_user_info[nr].user%> <%=icm_user_info[nr].group%> <%=icm_user_info[nr].cert%> set <% if (icm_user_info[nr].locked) __output("\"value"); else __output(" "); %>