示例#1
0
文件: rule.php 项目: jhbsz/ossimTest
function insert($id)
{
    $XML_FILE = $_SESSION['XML_FILE'];
    $rule = unserialize($_SESSION['rule']);
    $directive = unserialize($_SESSION['directive']);
    $tab_rules = $directive->rules;
    unset($_SESSION['rule']);
    list($id_dir, $id_rule, $id_father) = explode("-", $id);
    init_file($XML_FILE);
    if (!($dom = domxml_open_file($XML_FILE, DOMXML_LOAD_SUBSTITUTE_ENTITIES))) {
        echo "Error while parsing the document\n";
        exit;
    }
    $directive = getDirectiveFromXML($dom, $id_dir);
    if ($id_father != 0) {
        $tab_rules[$id_father]->nb_child = $tab_rules[$id_father]->nb_child + 1;
    }
    if ($id == $tab_rules[$id_rule]->id || $id_rule > count($tab_rules)) {
        $tab_rules[$id_rule] = $rule;
    } else {
        for ($i = count($tab_rules); $i >= $id_rule; $i--) {
            list($id_dir, $id_rule2, $id_father2) = explode("-", $tab_rules[$i]->id);
            $new_id_rule = $i + 1;
            if ($id_father2 >= $id_rule) {
                $new_id_father = $id_father2 + 1;
            } else {
                $new_id_father = $idfather2;
            }
            $newid = $id_dir . "-" . $new_id_rule . "-" . $new_id_father;
            $tab_rules[$i]->id = $newid;
            $tab_rules[$i + 1] = $tab_rules[$i];
        }
        $tab_rules[$id_rule] = $rule;
    }
    $direct = $directive->directive;
    $rules = $direct->child_nodes();
    foreach ($rules as $rule) {
        $direct->remove_child($rule);
    }
    do_directive($directive, &$tab_rules, $dom);
    $dom->dump_file($XML_FILE);
    release_file($XML_FILE);
    $newlevel = $tab_rules[$id_rule]->level;
    echo "<html><body onload=\"window.open('../viewer/index.php?directive=" . $directive->id . "&level={$newlevel}','right')\"></body></html>";
}
示例#2
0
文件: index.php 项目: jhbsz/ossimTest
    $_SESSION['mini'] = $category_mini;
}
if (!empty($directive_id)) {
    if (is_free($directive_id, $XML_FILE) == "true") {
        $direct = unserialize($_SESSION['directive']);
    } else {
        $direct = getDirectiveFromXML($dom, $directive_id);
        $tab_rules = $direct->rules;
    }
    if ($direct->id != $directive_id) {
        echo "<center><span style='color:red'>" . _("The directive {$directive_id} doesn't exist in {$XML_FILE}") . "</span></center>";
        exit;
    }
    $_SESSION['directive'] = serialize($direct);
    if ($XML_FILE != '/etc/ossim/server/directives.xml') {
        release_file($XML_FILE);
    }
    if (!empty($directive_id)) {
        $direct->printDirective($level, $directive_xml);
    }
    ?>
</table>
<?php 
    $directive_name = Plugin_sid::get_name_by_idsid($conn, "1505", $directive_id);
    list($properties, $num_properties) = Compliance::get_category($conn, "AND category.sid={$directive_id}");
    $iso_groups = ISO27001::get_groups($conn, "WHERE SIDSS_Ref LIKE '{$directive_id}' OR SIDSS_Ref LIKE '{$directive_id},%' OR SIDSS_Ref LIKE '%,{$directive_id}' OR SIDSS_Ref LIKE '%,{$directive_id},%'");
    $pci_groups = PCI::get_groups($conn, "WHERE SIDSS_ref LIKE '{$directive_id}' OR SIDSS_ref LIKE '{$directive_id},%' OR SIDSS_ref LIKE '%,{$directive_id}' OR SIDSS_ref LIKE '%,{$directive_id},%'");
    list($alarms, $num_alarms) = Alarm::get_list3($conn, "", "", 0, "", null, null, null, null, "", $directive_id);
    $kdocs = Repository::get_linked_by_directive($conn, $directive_id);
    ?>
<table class="transparent" height="100%" width="100%">
示例#3
0
function is_free($directive_id, $XML_FILE = "")
{
    if ($XML_FILE == "") {
        $XML_FILE = get_directive_file($directive_id);
    }
    //if (!file_exists($XML_FILE)) return "false";
    init_file($XML_FILE);
    $dom = domxml_open_file($XML_FILE, DOMXML_LOAD_SUBSTITUTE_ENTITIES);
    $count = 1;
    $free = "true";
    foreach ($dom->get_elements_by_tagname('directive') as $directive) {
        $id = $directive->get_attribute('id');
        $name = $directive->get_attribute('name');
        $count++;
        if (strcmp($id, $directive_id) == 0) {
            $free = "false";
        }
    }
    release_file($XML_FILE);
    return $free;
}
示例#4
0
文件: utils.php 项目: jhbsz/ossimTest
    for ($ind = 1; $ind <= count($tab_rules); $ind++) {
        $rule = $tab_rules[$ind];
        list($id_dir, $id_rule, $id_father) = explode("-", $rule->id);
        if ($id_father == 0) {
            $new_node = $tab_rules[$id_rule]->getXMLNode($dom);
            $new_node = $new_directive->append_child($new_node);
            $tab_rules[$id_rule]->rule = $new_node;
            if ($tab_rules[$id_rule]->nb_child > 0) {
                do_rules($id_rule, &$tab_rules, $dom);
            }
        }
    }
    $parent = $directive->directive->parent_node();
    $parent->append_child($new_directive);
    $dom->dump_file($file);
    release_file($file);
    sleep(0.5);
    echo "<html><body onload=\"top.frames['main'].document.location.href='../index.php?level=1&directive=" . $new_id . "&directive_xml=" . $_GET['directive_xml'] . "&category_mini={$mini}'\"></body></html>";
    //echo "<html><body onload=\"top.frames['main'].document.location.href='../index.php?directive=" . $new_id . "&action=copy_directive&id=" . $new_id . "&xml_file=" . $_GET['directive_xml'] . "'\"></body></html>";
    //echo "<html><body><a href=\"../index.php?directive=".$new_id."&action=copy_directive&id=".$new_id."\">test</a></body></html>";
} elseif ($query == "save_category") {
    $file = '/etc/ossim/server/categories.xml';
    if (!($dom = domxml_open_file($file, DOMXML_LOAD_SUBSTITUTE_ENTITIES))) {
        echo _("Error while parsing the document") . "\n";
        exit;
    }
    ossim_valid($_POST["xml_file"], OSS_ALPHA, OSS_DIGIT, OSS_DOT, OSS_SCORE, OSS_NULLABLE, 'illegal:' . _("xml file"));
    ossim_valid($_POST["name"], OSS_ALPHA, OSS_DIGIT, OSS_DOT, OSS_SCORE, OSS_NULLABLE, 'illegal:' . _("name"));
    if (ossim_error()) {
        die(ossim_error());
    }