from enum import Enum import redis from django.conf import settings from django.contrib.auth.models import User from django.utils.translation import gettext_lazy from django.db import models from console.models import Vulnerability from assets.models.assets import AssetManufacturer, OperatingSystem, AssetListGroup from incident.models import IncidentRecommendations, IncidentEffect, IncidentCategory EXPORT_TMP_PATH = '/tmp/export.json' MEDIA_ROOT = getattr(settings, 'MEDIA_ROOT', 'media') CORRELATOR_URL = getattr(settings, 'CORRELATOR_URL', 'http://localhost:5566') STARTUP_UPDATE_NAME = "correlator_startup_tasks" redis_instance = redis.StrictRedis(host=settings.REDIS_HOST, port=settings.REDIS_PORT, db=0) MODEL_NAME_MAPPER = { 'os': OperatingSystem, 'group': AssetListGroup, 'manufacturer': AssetManufacturer, 'vulnerabilities': Vulnerability, 'effects': IncidentEffect, 'close_recommendations': IncidentRecommendations, 'assigned_to': User, 'category': IncidentCategory } class Type(models.IntegerChoices): system = 0, gettext_lazy("System") user = 1, gettext_lazy("User") class RuleParseErrors(Enum): NAME_DESCRIPTION_ERROR = 1 FORMAT_ERROR = 2 class ActionType(models.TextChoices): SYSLOG = "syslog", gettext_lazy("Syslog") HTTP = "http", gettext_lazy("HTTP") INCIDENT = "incident", gettext_lazy("Incident") BASH = "bash", gettext_lazy("Bash") EXECUTABLE = "exec", gettext_lazy("Run executable") ASSET = "asset", gettext_lazy("New asset") FIREWALL = "firewall", gettext_lazy("Firewall rule")