Compare commits
2 commits
bbfba0d6e4
...
cad62bd3e2
Author | SHA1 | Date | |
---|---|---|---|
|
cad62bd3e2 | ||
|
618b417715 |
4 changed files with 21 additions and 12 deletions
|
@ -217,7 +217,7 @@ def get_model_action(data: dict):
|
||||||
def is_accepted_query(data: dict) -> bool:
|
def is_accepted_query(data: dict) -> bool:
|
||||||
model, action = get_model_action(data)
|
model, action = get_model_action(data)
|
||||||
if model in ['Event', 'Attribute', 'Object', 'Tag',]:
|
if model in ['Event', 'Attribute', 'Object', 'Tag',]:
|
||||||
if action in ['add', 'edit', 'delete', 'publish']:
|
if action in ['add', 'edit', 'delete', 'publish', 'tag']:
|
||||||
# # improved condition below. It blocks some queries
|
# # improved condition below. It blocks some queries
|
||||||
# if data['Log']['change'].startswith('attribute_count'):
|
# if data['Log']['change'].startswith('attribute_count'):
|
||||||
# return False
|
# return False
|
||||||
|
|
|
@ -169,7 +169,7 @@
|
||||||
"inject_uuid": "4c242d49-fcf7-4c76-974b-6d5983c0eff9",
|
"inject_uuid": "4c242d49-fcf7-4c76-974b-6d5983c0eff9",
|
||||||
"reporting_callback": [],
|
"reporting_callback": [],
|
||||||
"requirements": {
|
"requirements": {
|
||||||
"inject_uuid": ""
|
"inject_uuid": "de9f4c9b-dc97-4e84-85f3-859f30d3a3cd"
|
||||||
},
|
},
|
||||||
"sequence": {
|
"sequence": {
|
||||||
"completion_trigger": [
|
"completion_trigger": [
|
||||||
|
@ -340,7 +340,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
".Event.Object[].Attribute[] | select((.type == \"domain\")).value": {
|
".Event.Object[].Attribute[] | select((.type == \"domain\") or (.type == \"hostname\")).value": {
|
||||||
"extract_type": "all",
|
"extract_type": "all",
|
||||||
"comparison": "equals",
|
"comparison": "equals",
|
||||||
"values": [
|
"values": [
|
||||||
|
@ -454,8 +454,8 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
".Event.Object[] | select((.name == \"domain-ip\")).distribution": {
|
".Event.Object[] | select((.name == \"person\")).distribution": {
|
||||||
"comparison": "contains",
|
"comparison": "equals_any",
|
||||||
"values": [
|
"values": [
|
||||||
"0",
|
"0",
|
||||||
"1",
|
"1",
|
||||||
|
|
|
@ -46,6 +46,8 @@ def eval_condition_str(evaluation_config: dict, data_to_validate: str) -> bool:
|
||||||
return len(intersection) == len(values_set)
|
return len(intersection) == len(values_set)
|
||||||
elif comparison_type == 'equals':
|
elif comparison_type == 'equals':
|
||||||
return data_to_validate == values[0]
|
return data_to_validate == values[0]
|
||||||
|
elif comparison_type == 'equals_any':
|
||||||
|
return data_to_validate in values
|
||||||
elif comparison_type == 'regex':
|
elif comparison_type == 'regex':
|
||||||
return re.fullmatch(values[0], data_to_validate)
|
return re.fullmatch(values[0], data_to_validate)
|
||||||
elif comparison_type == 'count':
|
elif comparison_type == 'count':
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
<script setup>
|
<script setup>
|
||||||
import { ref, computed, onMounted } from 'vue'
|
import { ref, computed, onMounted } from 'vue'
|
||||||
import { exercises, selected_exercises, diagnostic, resetAllExerciseProgress, resetLiveLogs, changeExerciseSelection, debouncedGetDiangostic } from "@/socket";
|
import { exercises, selected_exercises, diagnostic, fullReload, resetAllExerciseProgress, resetLiveLogs, changeExerciseSelection, debouncedGetDiangostic } from "@/socket";
|
||||||
import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome'
|
import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome'
|
||||||
import { faScrewdriverWrench, faTrash, faSuitcaseMedical, faGraduationCap, faBan } from '@fortawesome/free-solid-svg-icons'
|
import { faScrewdriverWrench, faTrash, faSuitcaseMedical, faGraduationCap, faBan, faRotate } from '@fortawesome/free-solid-svg-icons'
|
||||||
|
|
||||||
const admin_modal = ref(null)
|
const admin_modal = ref(null)
|
||||||
|
|
||||||
|
@ -45,17 +45,24 @@
|
||||||
|
|
||||||
<div class="flex mb-5 gap-1">
|
<div class="flex mb-5 gap-1">
|
||||||
<button
|
<button
|
||||||
@click="resetAllExerciseProgress()"
|
@click="fullReload()"
|
||||||
class="h-10 min-h-10 px-2 py-1 font-semibold bg-red-600 text-slate-200 hover:bg-red-700 btn btn-sm"
|
class="h-10 min-h-10 px-2 py-1 font-semibold bg-blue-600 text-slate-200 hover:bg-blue-700 btn btn-sm gap-1"
|
||||||
>
|
>
|
||||||
<FontAwesomeIcon :icon="faTrash" class="mr-1"></FontAwesomeIcon>
|
<FontAwesomeIcon :icon="faRotate" size="lg" fixed-width></FontAwesomeIcon>
|
||||||
|
Full refresh
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
@click="resetAllExerciseProgress()"
|
||||||
|
class="h-10 min-h-10 px-2 py-1 font-semibold bg-red-600 text-slate-200 hover:bg-red-700 btn btn-sm gap-1"
|
||||||
|
>
|
||||||
|
<FontAwesomeIcon :icon="faTrash" size="lg" fixed-width></FontAwesomeIcon>
|
||||||
Reset All Exercises
|
Reset All Exercises
|
||||||
</button>
|
</button>
|
||||||
<button
|
<button
|
||||||
@click="resetLiveLogs()"
|
@click="resetLiveLogs()"
|
||||||
class="h-10 min-h-10 px-2 py-1 font-semibold bg-amber-600 text-slate-200 hover:bg-amber-700 btn btn-sm"
|
class="h-10 min-h-10 px-2 py-1 font-semibold bg-amber-600 text-slate-200 hover:bg-amber-700 btn btn-sm gap-1"
|
||||||
>
|
>
|
||||||
<FontAwesomeIcon :icon="faBan" class=""></FontAwesomeIcon>
|
<FontAwesomeIcon :icon="faBan" size="lg"> fixed-width</FontAwesomeIcon>
|
||||||
Clear Live Logs
|
Clear Live Logs
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Reference in a new issue