Example #1
0
$row = (array) trigger($name) + array("Trigger" => $TABLE . "_bi");
if ($_POST) {
    if (!$error && in_array($_POST["Timing"], $trigger_options["Timing"]) && in_array($_POST["Event"], $trigger_options["Event"]) && in_array($_POST["Type"], $trigger_options["Type"])) {
        // don't use drop_create() because there may not be more triggers for the same action
        $on = " ON " . table($TABLE);
        $drop = "DROP TRIGGER " . idf_escape($name) . ($jush == "pgsql" ? $on : "");
        $location = ME . "table=" . urlencode($TABLE);
        if ($_POST["drop"]) {
            query_adminer_redirect($drop, $location, lang('Trigger has been dropped.'));
        } else {
            if ($name != "") {
                queries($drop);
            }
            queries_adminer_redirect($location, $name != "" ? lang('Trigger has been altered.') : lang('Trigger has been created.'), queries(create_trigger($on, $_POST)));
            if ($name != "") {
                queries(create_trigger($on, $row + array("Type" => reset($trigger_options["Type"]))));
            }
        }
    }
    $row = $_POST;
}
page_header($name != "" ? lang('Alter trigger') . ": " . h($name) : lang('Create trigger'), $error, array("table" => $TABLE));
?>

<form action="" method="post" id="form">
<table cellspacing="0">
<tr><th><?php 
echo lang('Time');
?>
<td><?php 
echo html_select("Timing", $trigger_options["Timing"], $row["Timing"], "triggerChange(/^" . preg_quote($TABLE, "/") . "_[ba][iud]\$/, '" . is_adminer_escape($TABLE) . "', this.form);");
 if (isset($_POST['acc_trigger_open'])) {
     $s_triggers = toggle_all_triggers($s_triggers, 'open');
 }
 // 'Close All' button
 if (isset($_POST['acc_trigger_close'])) {
     $s_triggers = toggle_all_triggers($s_triggers, 'close');
 }
 // the Create button on the Triggers panel was pushed
 if (isset($_POST['acc_trigger_create'])) {
     $trigger_add_flag = TRUE;
     $s_triggerdefs = array('table' => NULL, 'type' => NULL, 'status' => NULL, 'source' => "BEGIN\n\nEND !!");
 }
 // create the new trigger ...
 if (isset($_POST['acc_trigger_create_doit'])) {
     save_triggerdefs();
     if (create_trigger($s_triggerdefs) == TRUE) {
         $s_triggers[$s_triggerdefs['name']] = $s_triggerdefs;
         $s_triggers[$s_triggerdefs['name']]['display'] = 'open';
         $s_triggerdefs = array();
         $s_triggers_valid = FALSE;
     } else {
         $trigger_add_flag = TRUE;
     }
 }
 // the Modify button on the Triggers panel was pushed
 if (isset($_POST['acc_trigger_mod']) && $_POST['acc_trigger_mod_name'] != '') {
     $mname = $_POST['acc_trigger_mod_name'];
     $s_triggerdefs = $s_triggers[$mname];
     $s_triggerdefs['name'] = $mname;
     if (empty($s_triggers[$s_triggerdefs['name']]['source'])) {
         $s_triggers[$s_triggerdefs['name']]['source'] = get_trigger_source($s_triggerdefs['name']);
Example #3
0
function display_meta_sign()
{
    echo '<h1>RULES LIST</h1>';
    if (isset($_GET['remove_trigger'])) {
        if (!check_csrf(TRUE)) {
            error('[display_meta_sign] REMOVE TRIGGER CSRF ATTEMPT', 'SECURITY');
        }
        remove_trigger($_GET['remove_trigger']);
    }
    if (isset($_POST['CREATE']) && isset($_POST['field']) && isset($_POST['description']) && isset($_POST['label']) && isset($_POST['criticity']) && isset($_POST['type']) && ($_POST['type'] == 'std' && isset($_POST['field']) && isset($_POST['match']) || $_POST['type'] == 'meta' && isset($_POST['meta_field']) && isset($_POST['meta_match']))) {
        $table = "";
        $description = $_POST['description'];
        $label = $_POST['label'];
        $criticity = $_POST['criticity'];
        $field = '';
        $type = $_POST['type'];
        $match = '';
        if ($type == "std" && isset($_POST['field'])) {
            $field = $_POST['field'];
            $match = $_POST['match'];
        }
        if ($type == "meta" && isset($_POST['meta_field'])) {
            $match = $_POST['meta_match'];
            $field = $_POST['meta_field'];
        }
        create_trigger($description, $label, $criticity, $field, $match, $type);
    }
    $triggerz = get_triggerz();
    echo '<table>';
    while ($res = $triggerz->fetchArray()) {
        $disp = '<a href="' . $_SERVER['PHP_SELF'] . '?meta_sign&view_trigger=' . secure_display($res['name']) . '">VIEW SQL TRIGGER</a>';
        if (isset($_GET['view_trigger']) && $_GET['view_trigger'] == $res['name']) {
            $disp = secure_display($res['sql']);
        }
        echo '<tr><th class="std">' . secure_display($res['name']) . '</th><td>' . $disp . '</td><td><a href="' . $_SERVER['PHP_SELF'] . '?meta_sign&crt=' . gen_csrf(TRUE) . '&remove_trigger=' . secure_display($res['name']) . '" onclick="return confirm(\'Are you sure?\');">REMOVE</a></td></tr>';
    }
    echo '</table>';
    $meta_fields_list = '';
    $meta_fields = get_metadata_names();
    while ($field = $meta_fields->fetchArray()) {
        $meta_fields_list .= '<option value="' . $field['name'] . '">' . secure_display($field['name']) . '</option>';
    }
    echo '<h1>CREATE RULE</h1>
	<form action="' . $_SERVER['PHP_SELF'] . '?meta_sign" method="POST">
		' . gen_csrf() . '
	<table>
		<tr><th class="std">LABEL</th><td class="std"><input type="text" name="label" value=""></td></tr>
		<tr><th class="std">DESCRIPTION</th><td class="std"><input type="text" name="description" value=""></td></tr>
		<tr><th class="std">CRITICITY</th><td class="std"><select name="criticity"><option value="1">High</option><option value="2">Medium</option><option value="3">Low</option></select></td></tr>
		<tr><th class="std">
			<select name="field">
				<option value="md5">MD5</option>
				<option value="sign">SIGNATURE</option>
			</select>
		matches</th><td class="std"><input type="text" name="match" /> (input data is in LIKE SQL statements, use "%" as wildcards)</td><td><input type="radio" name="type" value="std" checked /></td></tr>
		<tr><th class="std">
			<select name="meta_field">
				' . $meta_fields_list . '
			</select>
		matches</th><td class="std"><input type="text" name="meta_match" /> (input data is in LIKE SQL statements, use "%" as wildcards)</td><td><input type="radio" name="type" value="meta" /></td></tr>
		
		<tr><th colspan="2"><input type="submit" name="CREATE" value="CREATE"/></th></tr>
	</table>
	</form>';
}