Source code for atomshields.models.issue

# -*- coding:utf8 -*-

import json

[docs]class Issue(object): """ Type of object returned by all checkers. Este es el modelo genĂ©rico que serĂ¡ generado por cada vulnerabilidad encontrada por los checkers y tratada por los modulos de reporte. Attributes: SEVERITY_INFO (str): Name of the incidences of informatic value SEVERITY_LOW (str): Name of incidents with low criticality SEVERITY_MEDIUM (str): Name of incidents with medium criticality SEVERITY_HIGH (str): Name of requests with high criticality SEVERITY_CRITICAL (str): Name of the requests with very high criticality _name (str) : Name of the request _file (str) : File affected by the incident _details (str) : Other details about the incident _severity (str) : Criticism of the incidence _potential (bool) : _checker_name (str) : Name of the module that detected the request """ SEVERITY_INFO = "Info" SEVERITY_LOW = "Low" SEVERITY_MEDIUM = "Medium" SEVERITY_HIGH = "High" SEVERITY_CRITICAL = "Critical" def __init__(self, name=None, file=None, details=None, severity=None, potential=None, checker_name=None): self._name = name self._file = file self._details = details self._severity = severity self._potential = potential self._checker_name = checker_name @property def name(self): """ Getter for 'name' property Returns: string: Issue's name """ return self._name @name.setter def name(self, value): """ Setter for 'name' property Args: value (str): Issue's name """ self._name = value @property def file(self): """ Getter for 'file' property Returns: string: Issue's file """ return self._file @file.setter def file(self, value): """ Setter for 'path' property Args: value (str): Issue's file """ self._file = value @property def severity(self): """ Getter for 'severity' property Returns: string: Issue's severity """ return self._severity @severity.setter def severity(self, value): """ Setter for 'path' property Args: value (str): Issue's severity """ self._severity = value @property def potential(self): """ Getter for 'potential' property Returns: bool: potential is required? """ if self._potential is not None and self._potential: return True else: return False @potential.setter def potential(self, value): """ Setter for 'potential' property Args: value (bool): True if a potential is required. False else """ if value: self._potential = True else: self._potential = False @property def details(self): """ Getter for 'details' property Returns: string: Issue's details """ return self._details @details.setter def details(self, value): """ Setter for 'details' property Args: value (str): Issue's details """ self._details = value @property def checker(self): """ Getter for 'checker' property Returns: string: Issue's checker """ return self._checker_name @checker.setter def checker(self, value): """ Setter for 'checker' property Args: value (str): Issue's checker """ self._checker_name = value def __todict__(self): """ Returns a dictionary with the class representation Returns: dict: class representarion """ return { "name": self.name, "file": self.file, "details": self.details, "severity": self.severity, "potential": self.potential, "checker": self.checker } def __str__(self): """ Return a JSON class representation Returns: str: JSON class representation """ return json.dumps(self.__todict__()) def __unicode__(self): """ Return a JSON class representation (unicode) Returns: unicode: JSON class representation """ return unicode(self.__str__())