def _create_closed_ticket(report, user): report.ticket = common.create_ticket(report, attach_new=False) report.save() # Add temp proof(s) for mail content temp_proofs = [] if not report.ticket.proof.count(): temp_proofs = common.get_temp_proofs(report.ticket) # Send email to Provider try: validate_email(report.provider.email.strip()) Logger.info(unicode('Sending email to provider')) common.send_email(report.ticket, [report.provider.email], settings.CODENAMES['not_managed_ip']) report.ticket.save() Logger.info(unicode('Mail sent to provider')) ImplementationFactory.instance.get_singleton_of('MailerServiceBase').close_thread(report.ticket) # Delete temp proof(s) for proof in temp_proofs: Proof.objects.filter(id=proof.id).delete() except (AttributeError, TypeError, ValueError, ValidationError): pass common.close_ticket(report, resolution_codename=settings.CODENAMES['invalid'], user=user) Logger.info(unicode('Ticket %d and report %d closed' % (report.ticket.id, report.id)))
def close_because_all_down(report=None, denied_by=None): """ Create and close a ticket when all report's items are down :param `abuse.models.Report` report: A Cerberus `abuse.models.Report` instance :param int denied_by: The id of the `abuse.models.User` who takes the decision to close the ticket """ if not isinstance(report, Report): try: report = Report.objects.get(id=report) except (AttributeError, ObjectDoesNotExist, TypeError, ValueError): Logger.error(unicode('Report %d cannot be found in DB. Skipping...' % (report))) return if not report.ticket: report.ticket = common.create_ticket(report, denied_by) report.save() # Add temp proof(s) for mail content temp_proofs = [] if not report.ticket.proof.count(): temp_proofs = common.get_temp_proofs(report.ticket) # Send email to Provider try: validate_email(report.provider.email.strip()) Logger.info(unicode('Sending email to provider')) __send_email(report.ticket, report.provider.email, settings.CODENAMES['no_more_content']) report.ticket.save() Logger.info(unicode('Mail sent to provider')) ImplementationFactory.instance.get_singleton_of('MailerServiceBase').close_thread(report.ticket) # Delete temp proof(s) for proof in temp_proofs: Proof.objects.filter(id=proof.id).delete() except (AttributeError, TypeError, ValueError, ValidationError): pass # Closing ticket and add tags common.close_ticket(report, resolution_codename=settings.CODENAMES['no_more_content']) report.ticket.tags.remove(Tag.objects.get(name=settings.TAGS['phishing_autoreopen'])) report.ticket.tags.add(Tag.objects.get(name=settings.TAGS['phishing_autoclosed'])) Logger.info(unicode('Ticket %d and report %d closed' % (report.ticket.id, report.id)))