%! struct icm_auth_status_type { boolean active; string perm_file; string auth_file; string filt_profile; string filt_pattern; }; %> <% int rule_count = 0; int rule_len, rule_last; int nr, rc, row; string what, hdlsel, browser, fld, is_checked, opstr; string rule, passwd, afile; string rules[]; boolean is_admin; string token; string msg; string icon; struct icm_auth_status_type icm_auth_status; is_admin = __icm_get_system_property ("is_admin"); browser = __icm_get_browser_type(); what = anumenc(__icm_get_form_field ("what")); hdlsel = anumenc(__icm_get_form_field ("hdlsel")); afile = anumenc(__icm_get_form_field ("afile")); fld = anumenc(__icm_get_form_field ("row_selected")); if (fld == "") row = 0; else row = fld; rc = __icm_auth_hdl (1, hdlsel, icm_auth_status); if(rc == 0 && 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; } 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++; } } } %>
Information | |||
<%=msg%> |
|||
|
<% } else if ((what == "do_change_rule") || (what == "do_del_rule")) { string newrule = b64dec(urldec(__icm_get_form_field ("ruleenc"))); string token = __icm_get_form_field ("token"); string pattern; if (what == "do_change_rule") { opstr = "changed"; if(newrule != "") { if(rule_count > 1) { int i=0; for(; i < rule_count; i++) { if(i==row) { rules [i] = newrule; } if(i==0) { pattern = "(" + rules[i] + ")|("; } else if(i+1 < rule_count) { pattern = pattern + rules [i] + ")|("; } else if( i+1 == rule_count ) { pattern = pattern + rules [i] + ")"; } } } else { pattern = newrule; } } } else { opstr = "deleted"; if(rule_count > 1 && newrule != "" && row <= rule_count) { int i=0; rules [row] = ""; if(rule_count > 2) { if(row+1 == rule_count) rule_count = rule_count - 1; for(; i < rule_count; i++) { if(rules[i] == "") continue; if(pattern == "") { pattern = "(" + rules[i] + ")|("; } else if(i+1 < rule_count) { pattern = pattern + rules [i] + ")|("; } else if( i+1 == rule_count ) { pattern = pattern + rules [i] + ")"; } } } else { for(; i < rule_count; i++) { if(rules[i] != "") pattern = rules[i]; } } } } rc = __icm_auth_hdl (6, 0, pattern, token); if (rc == 0) { msg = "Rule successfully " + opstr; icon = "s_m_info.gif"; } else if (rc == -11) { msg = "Session timeout. Please retry operation."; icon = "s_m_warn.gif"; } else { msg = "Rule could not be " + opstr + ":" + __icm_get_error_text(rc) + "(" + rc + ")"; icon = "s_m_erro.gif"; } %>
Information | |||
<%=msg%> |
|||
|
<% } else if (what == "del_rule") { if( rule_count > 0 ) rule = rules[row]; else rule = ""; token = __icm_get_token(406); %>
<% } else { token = __icm_get_token(406); %> <% } %>